Module: ASModel::SequelHooks
- Defined in:
 - backend/app/model/ASModel_sequel.rb
 
Overview
Hooks for firing behaviour on Sequel::Model events
Defined Under Namespace
Modules: BlobHack
Class Method Summary (collapse)
Instance Method Summary (collapse)
- 
  
    
      - (Object) _save_refresh 
    
    
  
  
  
  
  
  
  
  
  
    
We can save quite a lot of database chatter by only refreshing our top-level records upon save.
 - 
  
    
      - (Object) around_save 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      - (Object) before_create 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      - (Object) before_update 
    
    
  
  
  
  
  
  
  
  
  
    
 
Class Method Details
+ (Object) included(base)
      5 6 7  | 
    
      # File 'backend/app/model/ASModel_sequel.rb', line 5 def self.included(base) base.extend(BlobHack) end  | 
  
Instance Method Details
- (Object) _save_refresh
We can save quite a lot of database chatter by only refreshing our top-level records upon save. Pure-nested records don’t need refreshing, so skip them.
      13 14 15 16 17  | 
    
      # File 'backend/app/model/ASModel_sequel.rb', line 13 def _save_refresh if self.class.respond_to?(:has_jsonmodel?) && self.class.has_jsonmodel? && self.class.my_jsonmodel.schema['uri'] _refresh(this.opts[:server] ? this : this.server(:default)) end end  | 
  
- (Object) around_save
      38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60  | 
    
      # File 'backend/app/model/ASModel_sequel.rb', line 38 def around_save values_to_reapply = {} self.class.blob_columns_to_fix.each do |column| if self[column] values_to_reapply[column] = self[column] self[column] = "around_save_placeholder" end end ret = super if !values_to_reapply.empty? ps = self.class.dataset.where(:id => self.id).prepare(:update, :update_blobs, Hash[values_to_reapply.keys.map {|c| [c, :"$#{c}"]}]) ps.call(Hash[values_to_reapply.map {|k, v| [k, DB.blobify(v)]}]) self.refresh end ret end  | 
  
- (Object) before_create
      19 20 21 22 23 24 25 26  | 
    
      # File 'backend/app/model/ASModel_sequel.rb', line 19 def before_create if RequestContext.get(:current_username) self.created_by = self.last_modified_by = RequestContext.get(:current_username) end self.create_time = Time.now self.system_mtime = self.user_mtime = Time.now super end  | 
  
- (Object) before_update
      29 30 31 32 33 34 35  | 
    
      # File 'backend/app/model/ASModel_sequel.rb', line 29 def before_update if RequestContext.get(:current_username) self.last_modified_by = RequestContext.get(:current_username) end self.system_mtime = Time.now super end  |