class MR::ReadModel::Relation
Constants
- FIND_EXCLUDED_TYPES
Attributes
find_attr[W]
from_expression[R]
query_expressions[R]
set_expressions[R]
Public Class Methods
new()
click to toggle source
# File lib/mr/read_model/querying.rb, line 167 def initialize @from_expression = NullFromExpression.new @query_expressions = [] @set_expressions = [] end
Public Instance Methods
build_for_all(params = nil)
click to toggle source
# File lib/mr/read_model/querying.rb, line 198 def build_for_all(params = nil) build_ar_relation_for_all(self.query_expressions, params) end
build_for_find(id, params = nil)
click to toggle source
# File lib/mr/read_model/querying.rb, line 190 def build_for_find(id, params = nil) query_expressions = self.query_expressions.reject do |e| FIND_EXCLUDED_TYPES.include?(e.type) end ar_relation = build_ar_relation_for_all(query_expressions, params) ar_relation.where(self.find_attr => id).limit(1) end
build_sql(params = nil)
click to toggle source
# File lib/mr/read_model/querying.rb, line 202 def build_sql(params = nil) self.build_for_all(params).to_sql.strip end
find_attr()
click to toggle source
# File lib/mr/read_model/querying.rb, line 185 def find_attr @find_attr ||= self.from_expression.default_find_attr end
from(record_class)
click to toggle source
# File lib/mr/read_model/querying.rb, line 173 def from(record_class) @from_expression = FromExpression.new(record_class) end
from_record_class()
click to toggle source
# File lib/mr/read_model/querying.rb, line 181 def from_record_class self.from_expression.record_class end
from_subquery(&block)
click to toggle source
# File lib/mr/read_model/querying.rb, line 177 def from_subquery(&block) @from_expression = FromSubqueryExpression.new(&block) end
Private Instance Methods
build_ar_relation_for_all(query_expressions, params)
click to toggle source
# File lib/mr/read_model/querying.rb, line 208 def build_ar_relation_for_all(query_expressions, params) ar_relation = self.from_expression.ar_relation(params) query_expressions.inject(ar_relation){ |r, e| e.apply_to(r, params) } end