Module: MR::ReadModel::Subquery

Included in:
AliasSubquery
Defined in:
lib/mr/read_model/subquery.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#read_model_classObject (readonly)

Returns the value of attribute read_model_class.



5
6
7
# File 'lib/mr/read_model/subquery.rb', line 5

def read_model_class
  @read_model_class
end

Instance Method Details

#build_sql(params = nil) ⇒ Object



26
27
28
# File 'lib/mr/read_model/subquery.rb', line 26

def build_sql(params = nil)
  "(#{self.read_model_class.build_sql(params)})"
end

#initialize(&block) ⇒ Object



7
8
9
10
11
12
13
# File 'lib/mr/read_model/subquery.rb', line 7

def initialize(&block)
  self.instance_eval(&block)
  if !self.read_model_class
    raise ArgumentError, "invalid subquery - " \
                         "use `read_model` to define the subquery"
  end
end

#read_model(&block) ⇒ Object



15
16
17
18
19
20
21
22
23
24
# File 'lib/mr/read_model/subquery.rb', line 15

def read_model(&block)
  @read_model_class = Class.new do
     # TODO - fix circular require
    require 'mr/read_model'
    require 'mr/read_model/set_querying'
    include MR::ReadModel
    include MR::ReadModel::SetQuerying
  end
  @read_model_class.class_eval(&block)
end