module MR::ReadModel::Querying::ClassMethods

Public Instance Methods

build_sql(params = nil) click to toggle source
# File lib/mr/read_model/querying.rb, line 37
def build_sql(params = nil)
  self.relation.build_sql(params)
end
count(*args) click to toggle source
# File lib/mr/read_model/querying.rb, line 33
def count(*args)
  self.query(*args).count
end
find(id, params = nil) click to toggle source
# File lib/mr/read_model/querying.rb, line 25
def find(id, params = nil)
  self.new(self.relation.build_for_find(id, params || {}).first!)
end
find_attr(column = nil) click to toggle source
# File lib/mr/read_model/querying.rb, line 41
def find_attr(column = nil)
  self.relation.find_attr = column if !column.nil?
  self.relation.find_attr
end
from(record_class) click to toggle source
# File lib/mr/read_model/querying.rb, line 52
def from(record_class)
  relation.from(record_class)
rescue ArgumentError => exception
  raise ArgumentError, exception.message, caller
end
from_subquery(&block) click to toggle source
# File lib/mr/read_model/querying.rb, line 58
def from_subquery(&block)
  relation.from_subquery(&block)
rescue ArgumentError => exception
  raise ArgumentError, exception.message, caller
end
full_join_subquery(&block)
full_outer_join_subquery(&block) click to toggle source
# File lib/mr/read_model/querying.rb, line 90
def full_outer_join_subquery(&block)
  add_subquery_expression(:joins, :full, &block)
rescue InvalidQueryExpressionError, ArgumentError => exception
  raise ArgumentError, exception.message, caller
end
Also aliased as: full_join_subquery
group(*args, &block) click to toggle source
# File lib/mr/read_model/querying.rb, line 109
def group(*args, &block)
  add_query_expression(:group, *args, &block)
rescue InvalidQueryExpressionError, ArgumentError => exception
  raise ArgumentError, exception.message, caller
end
having(*args, &block) click to toggle source
# File lib/mr/read_model/querying.rb, line 115
def having(*args, &block)
  add_query_expression(:having, *args, &block)
rescue InvalidQueryExpressionError, ArgumentError => exception
  raise ArgumentError, exception.message, caller
end
inner_join_subquery(&block) click to toggle source
# File lib/mr/read_model/querying.rb, line 70
def inner_join_subquery(&block)
  add_subquery_expression(:joins, :inner, &block)
rescue InvalidQueryExpressionError, ArgumentError => exception
  raise ArgumentError, exception.message, caller
end
joins(*args, &block) click to toggle source
# File lib/mr/read_model/querying.rb, line 64
def joins(*args, &block)
  add_query_expression(:joins, *args, &block)
rescue InvalidQueryExpressionError, ArgumentError => exception
  raise ArgumentError, exception.message, caller
end
left_join_subquery(&block)
left_outer_join_subquery(&block) click to toggle source
# File lib/mr/read_model/querying.rb, line 76
def left_outer_join_subquery(&block)
  add_subquery_expression(:joins, :left, &block)
rescue InvalidQueryExpressionError, ArgumentError => exception
  raise ArgumentError, exception.message, caller
end
Also aliased as: left_join_subquery
limit(*args, &block) click to toggle source
# File lib/mr/read_model/querying.rb, line 121
def limit(*args, &block)
  add_query_expression(:limit, *args, &block)
rescue InvalidQueryExpressionError, ArgumentError => exception
  raise ArgumentError, exception.message, caller
end
merge(*args, &block) click to toggle source
# File lib/mr/read_model/querying.rb, line 133
def merge(*args, &block)
  add_merge_query_expression(:merge, *args, &block)
rescue InvalidQueryExpressionError, ArgumentError => exception
  raise ArgumentError, exception.message, caller
end
offset(*args, &block) click to toggle source
# File lib/mr/read_model/querying.rb, line 127
def offset(*args, &block)
  add_query_expression(:offset, *args, &block)
rescue InvalidQueryExpressionError, ArgumentError => exception
  raise ArgumentError, exception.message, caller
end
order(*args, &block) click to toggle source
# File lib/mr/read_model/querying.rb, line 103
def order(*args, &block)
  add_merge_query_expression(:order, *args, &block)
rescue InvalidQueryExpressionError, ArgumentError => exception
  raise ArgumentError, exception.message, caller
end
query(params = nil) click to toggle source
# File lib/mr/read_model/querying.rb, line 29
def query(params = nil)
  MR::Query.new(self, self.relation.build_for_all(params || {}))
end
record_class() click to toggle source
# File lib/mr/read_model/querying.rb, line 21
def record_class
  self.relation.from_record_class
end
relation() click to toggle source
# File lib/mr/read_model/querying.rb, line 17
def relation
  @relation ||= Relation.new
end
right_join_subquery(&block)
right_outer_join_subquery(&block) click to toggle source
# File lib/mr/read_model/querying.rb, line 83
def right_outer_join_subquery(&block)
  add_subquery_expression(:joins, :right, &block)
rescue InvalidQueryExpressionError, ArgumentError => exception
  raise ArgumentError, exception.message, caller
end
Also aliased as: right_join_subquery
select(*args, &block) click to toggle source
# File lib/mr/read_model/querying.rb, line 46
def select(*args, &block)
  add_query_expression(:select, *args, &block)
rescue InvalidQueryExpressionError, ArgumentError => exception
  raise ArgumentError, exception.message, caller
end
where(*args, &block) click to toggle source
# File lib/mr/read_model/querying.rb, line 97
def where(*args, &block)
  add_merge_query_expression(:where, *args, &block)
rescue InvalidQueryExpressionError, ArgumentError => exception
  raise ArgumentError, exception.message, caller
end

Private Instance Methods

add_merge_query_expression(type, *args, &block) click to toggle source
# File lib/mr/read_model/querying.rb, line 147
def add_merge_query_expression(type, *args, &block)
  MergeQueryExpression.new(type, *args, &block).tap do |expression|
    relation.query_expressions << expression
  end
end
add_query_expression(type, *args, &block) click to toggle source
# File lib/mr/read_model/querying.rb, line 141
def add_query_expression(type, *args, &block)
  QueryExpression.new(type, *args, &block).tap do |expression|
    relation.query_expressions << expression
  end
end
add_subquery_expression(type, *args, &block) click to toggle source
# File lib/mr/read_model/querying.rb, line 153
def add_subquery_expression(type, *args, &block)
  SubqueryExpression.new(type, *args, &block).tap do |expression|
    relation.query_expressions << expression
  end
end