Class: WhalesORM::IncludeRelation

Inherits:
BasicObject
Defined in:
lib/include_relation.rb

Instance Method Summary collapse

Constructor Details

#initialize(class_name, sym_to_include, association) ⇒ IncludeRelation

Returns a new instance of IncludeRelation.



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

def initialize(class_name, sym_to_include, association)
  @query = <<-SQL
    SELECT
      #{class_name.table_name}.*
    FROM
      #{class_name.table_name}
    LEFT OUTER JOIN
      #{association.table_name}
    ON
      #{class_name.table_name}.#{association.primary_key} = #{association.table_name}.#{association.foreign_key}
  SQL
  @class_name = class_name
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args, &blk) ⇒ Object



17
18
19
20
# File 'lib/include_relation.rb', line 17

def method_missing(method, *args, &blk)
  results = self.execute
  results.send(method, *args, &blk)
end

Instance Method Details

#executeObject



26
27
28
29
# File 'lib/include_relation.rb', line 26

def execute
  results = ::DBConnection.execute(@query)
  @class_name.parse_all(results)
end

#loadObject



22
23
24
# File 'lib/include_relation.rb', line 22

def load
  execute
end