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_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_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_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