Module: MR::ReadModel

Includes:
MuchPlugin
Defined in:
lib/mr/read_model.rb,
lib/mr/read_model/data.rb,
lib/mr/read_model/fields.rb,
lib/mr/read_model/querying.rb,
lib/mr/read_model/subquery.rb,
lib/mr/read_model/set_querying.rb,
lib/mr/read_model/query_expression.rb

Defined Under Namespace

Modules: AliasSubquery, ClassMethods, Data, Fields, QueryExpression, Querying, SetQuerying, Subquery Classes: DynamicQueryExpression, Field, FieldSet, FromExpression, FromSubquery, FromSubqueryExpression, JoinSubquery, JsonStructField, JsonStructListField, JsonStructObjField, MergeQueryExpression, NoDataError, NoFromExpressionError, NullFromExpression, Relation, SetExpression, StaticQueryExpression, SubqueryExpression

Constant Summary collapse

InvalidDataError =
Class.new(ArgumentError)
InvalidFieldTypeError =
Class.new(RuntimeError)
InvalidSubqueryError =
Class.new(RuntimeError)
InvalidQueryExpressionError =
Class.new(RuntimeError)
NoFindAttrError =
Class.new(RuntimeError)

Class Method Summary collapse

Class Method Details

.add_select_for_field(read_model_class, name, column_sql = nil, &column_sql_block) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/mr/read_model.rb', line 17

def self.add_select_for_field(read_model_class, name, column_sql = nil, &column_sql_block)
  if column_sql
    read_model_class.select("#{column_sql} AS #{name}")
  elsif column_sql_block
    read_model_class.select do |params|
      "#{column_sql_block.call(params)} AS #{name}"
    end
  end
end