class Activecube::Query::Selector::CombineSelector
Public Class Methods
new(selectors, operator)
click to toggle source
# File lib/activecube/query/selector.rb, line 13 def initialize selectors, operator @selectors = selectors @operator = operator end
Public Instance Methods
append_query(model, cube_query, arel_table, query)
click to toggle source
# File lib/activecube/query/selector.rb, line 34 def append_query model, cube_query, arel_table, query @selectors.each do |s| query = s.append_with!(model, cube_query, arel_table, query) end query.where expression(model, arel_table, cube_query) end
expression(model, arel_table, cube_query)
click to toggle source
# File lib/activecube/query/selector.rb, line 26 def expression model, arel_table, cube_query expr = nil @selectors.each do |s| expr = expr ? expr.send( operator.operation, s.expression(model, arel_table, cube_query)) : s.expression(model, arel_table, cube_query) end expr end
required_column_names()
click to toggle source
# File lib/activecube/query/selector.rb, line 18 def required_column_names @selectors.map(&:required_column_names).uniq end
to_s()
click to toggle source
# File lib/activecube/query/selector.rb, line 22 def to_s "Selector #{operator.operation}(#{@selectors.map(&:to_s).join(',')})" end