Module: Sequel::Plugins::LazyAttributes::ClassMethods
- Defined in:
- lib/sequel/plugins/lazy_attributes.rb
Instance Method Summary collapse
- 
  
    
      #freeze  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Freeze lazy attributes module when freezing model class. 
- 
  
    
      #lazy_attributes(*attrs)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Remove the given attributes from the list of columns selected by default. 
Instance Method Details
#freeze ⇒ Object
Freeze lazy attributes module when freezing model class.
| 42 43 44 45 46 | # File 'lib/sequel/plugins/lazy_attributes.rb', line 42 def freeze @lazy_attributes_module.freeze if @lazy_attributes_module super end | 
#lazy_attributes(*attrs) ⇒ Object
Remove the given attributes from the list of columns selected by default. For each attribute given, create an accessor method that allows a lazy lookup of the attribute. Each attribute should be given as a symbol.
| 51 52 53 54 55 56 57 58 59 | # File 'lib/sequel/plugins/lazy_attributes.rb', line 51 def lazy_attributes(*attrs) unless select = dataset.opts[:select] select = dataset.columns.map{|c| Sequel.qualify(dataset.first_source, c)} end db_schema = @db_schema set_dataset(dataset.select(*select.reject{|c| attrs.include?(dataset.send(:_hash_key_symbol, c))})) @db_schema = db_schema attrs.each{|a| define_lazy_attribute_getter(a)} end |