class AuxiliaryRails::Application::Query
Public Class Methods
call(*args)
click to toggle source
# File lib/auxiliary_rails/application/query.rb, line 16 def self.call(*args) new(*args).call end
Public Instance Methods
call()
click to toggle source
# File lib/auxiliary_rails/application/query.rb, line 20 def call ensure_proper_relation_types! perform query end
method_missing(method_name, *args, &block)
click to toggle source
Calls superclass method
# File lib/auxiliary_rails/application/query.rb, line 32 def method_missing(method_name, *args, &block) super unless query.respond_to?(method_name) query.send(method_name, *args, &block) end
perform()
click to toggle source
# File lib/auxiliary_rails/application/query.rb, line 28 def perform raise NotImplementedError end
respond_to_missing?(method_name, include_private = false)
click to toggle source
Calls superclass method
# File lib/auxiliary_rails/application/query.rb, line 38 def respond_to_missing?(method_name, include_private = false) query.respond_to?(method_name) || super end
Private Instance Methods
ensure_proper_relation_types!()
click to toggle source
rubocop:disable Metrics/AbcSize, Style/GuardClause
# File lib/auxiliary_rails/application/query.rb, line 45 def ensure_proper_relation_types! if self.class.default_relation.nil? error!('Undefined `default_relation`') end if !queriable_object?(self.class.default_relation) error!('Invalid class of `default_relation`') end if !relation.nil? && !queriable_object?(relation) error!('Invalid class of `relation` option') end end
queriable_object?(object)
click to toggle source
rubocop:enable Metrics/AbcSize, Style/GuardClause
# File lib/auxiliary_rails/application/query.rb, line 58 def queriable_object?(object) object.is_a?(ActiveRecord::Relation) end
query(scoped_query = nil)
click to toggle source
# File lib/auxiliary_rails/application/query.rb, line 62 def query(scoped_query = nil) @query ||= (relation || self.class.default_relation) @query = scoped_query unless scoped_query.nil? @query end