Module: ModelFields

Defined in:
lib/relata/dsl/querys/fields.rb

Class Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/relata/dsl/querys/fields.rb', line 3

def self.extended(base)
  @fields = []    
  base.reflect_on_all_associations.each do |r|
    r.klass.columns.each do |c|
      @fields << c.name if [:string, :text].include? c.type
    end  
  end  

  @fields.each do |field|
    include_method field if field != nil
  end  
   
end

.include_method(field) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/relata/dsl/querys/fields.rb', line 18

def self.include_method(field)
  define_method field do 
          
    @record.reflect_on_all_associations.each do |r|
      @current_field = @current_field.to_s.pluralize if r.macro.to_s.eql? "belongs_to"
    end  

    @current_field = "#{@current_field}.#{field}"
    self
  end
end