class MR::ReadModel::FromSubqueryExpression
Attributes
subquery_block[R]
Public Class Methods
new(&block)
click to toggle source
# File lib/mr/read_model/query_expression.rb, line 108 def initialize(&block) raise ArgumentError, "a block must be provided" unless block @subquery_block = block end
Public Instance Methods
ar_relation(params = nil)
click to toggle source
# File lib/mr/read_model/query_expression.rb, line 129 def ar_relation(params = nil) self.record_class.scoped.from(self.from_subquery.build_sql(params)) end
default_find_attr()
click to toggle source
# File lib/mr/read_model/query_expression.rb, line 124 def default_find_attr raise NoFindAttrError, "a `find_attr` has to be specified " \ "when using a from subquery" end
from_subquery()
click to toggle source
lazy-build `FromSubquery` so its block is not evaluated until the read model `query` method is called, cache it so it doesn't have to be rebuilt for every `query` call
# File lib/mr/read_model/query_expression.rb, line 116 def from_subquery @from_subquery ||= FromSubquery.new(&self.subquery_block) end
record_class()
click to toggle source
# File lib/mr/read_model/query_expression.rb, line 120 def record_class self.from_subquery.record_class end