module ParamsReady::Builder::GroupingLike
Public Instance Methods
add_predicate(name_or_definition, *args, **opts, &block)
click to toggle source
# File lib/params_ready/query/grouping.rb, line 37 def add_predicate(name_or_definition, *args, **opts, &block) if name_or_definition.is_a? Parameter::AbstractDefinition @definition.add_predicate name_or_definition add name_or_definition else builder = predicate_builder(name_or_definition).instance *args, **opts build_predicate builder, &block end end
build_predicate(builder, &proc)
click to toggle source
# File lib/params_ready/query/grouping.rb, line 31 def build_predicate(builder, &proc) builder.instance_eval(&proc) definition = builder.build add_predicate definition end
method_missing(name, *args, **opts, &proc)
click to toggle source
Calls superclass method
# File lib/params_ready/query/grouping.rb, line 15 def method_missing(name, *args, **opts, &proc) builder_class = predicate_builder(name) if builder_class builder = builder_class.instance *args, **opts build_predicate builder, &proc else super end end
operator(&block)
click to toggle source
# File lib/params_ready/query/grouping.rb, line 47 def operator(&block) definition = Builder.define_grouping_operator(:operator, altn: :op, &block) add definition end
predicate_builder(name)
click to toggle source
# File lib/params_ready/query/grouping.rb, line 8 def predicate_builder(name) symbol = name.to_sym return nil unless Query::PredicateRegistry.has_predicate?(symbol) Query::PredicateRegistry.predicate(symbol) end
respond_to_missing?(name, include_private = false)
click to toggle source
Calls superclass method
# File lib/params_ready/query/grouping.rb, line 25 def respond_to_missing?(name, include_private = false) return true unless predicate_builder(name).nil? super end