class MR::ReadModel::SubqueryExpression

Constants

TYPES

Attributes

subquery_args[R]
subquery_block[R]
subquery_type[R]
type[R]

Public Class Methods

new(type, *args, &block) click to toggle source
# File lib/mr/read_model/query_expression.rb, line 66
def initialize(type, *args, &block)
  raise ArgumentError, "a block must be provided" unless block
  @subquery_type  = type
  @subquery_args  = args
  @subquery_block = block
end

Public Instance Methods

apply_to(relation, params = nil) click to toggle source
# File lib/mr/read_model/query_expression.rb, line 80
def apply_to(relation, params = nil)
  relation.send(self.type, self.subquery.build_sql(params))
end
subquery() click to toggle source
# File lib/mr/read_model/query_expression.rb, line 73
def subquery
  @subquery ||= TYPES[self.subquery_type].new(
    *self.subquery_args,
    &self.subquery_block
  )
end