class ParamsReady::Query::VariableOperatorPredicateDefinition

Attributes

hash_parameter[R]
hash_parameter_builder[R]

Public Class Methods

new(*args, attribute_name: nil, **opts) click to toggle source
# File lib/params_ready/query/variable_operator_predicate.rb, line 88
def initialize(*args, attribute_name: nil, **opts)
  super *args, **opts
  @attribute_name = attribute_name
  @hash_parameter_builder = Builder.builder(:hash).instance(name, altn: altn)
  @operator_parameter_builder = Builder.builder(:predicate_operator).instance(:operator, altn: :op)
end

Public Instance Methods

finish() click to toggle source
# File lib/params_ready/query/variable_operator_predicate.rb, line 113
def finish
  @hash_parameter = @hash_parameter_builder.build
  @hash_parameter_builder = nil
  @operator_parameter_builder = nil
  @type = nil

  super
end
set_operators(array, &block) click to toggle source
# File lib/params_ready/query/variable_operator_predicate.rb, line 100
def set_operators(array, &block)
  context = Format.instance(:backend)

  operators = array.map do |name|
    PredicateRegistry.operator(name, context)
  end
  @operator_parameter_builder.include do
    constrain :enum, operators
  end
  @operator_parameter_builder.include(&block) unless block.nil?
  @hash_parameter_builder.add @operator_parameter_builder.build
end
set_type(type) click to toggle source
# File lib/params_ready/query/variable_operator_predicate.rb, line 95
def set_type(type)
  @type = type
  @hash_parameter_builder.add @type.finish
end