class MR::ReadModel::SetExpression

Constants

OPERATOR_SQL

Attributes

operator_sql[R]
read_model_block[R]

Public Class Methods

new(operator, &block) click to toggle source
# File lib/mr/read_model/query_expression.rb, line 152
def initialize(operator, &block)
  raise ArgumentError, "a block must be provided" unless block
  @operator_sql     = OPERATOR_SQL[operator]
  @read_model_block = block
end

Public Instance Methods

combine_sql(sql, params = nil) click to toggle source
# File lib/mr/read_model/query_expression.rb, line 172
def combine_sql(sql, params = nil)
  "#{sql} #{self.operator_sql} #{self.read_model_class.build_sql(params)}"
end
read_model_class() click to toggle source
# File lib/mr/read_model/query_expression.rb, line 158
def read_model_class
  @read_model_class ||= begin
    c = 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
    c.class_eval(&self.read_model_block)
    c
  end
end