class Rubanok::DSL::Matching::Rule::Clause

Attributes

block[R]
id[R]
to_method_name[R]
values[R]

Public Class Methods

new(id, fields, values, activate_on: fields, activate_always: false, &block) click to toggle source
Calls superclass method
# File lib/rubanok/dsl/matching.rb, line 25
def initialize(id, fields, values, activate_on: fields, activate_always: false, &block)
  super(fields, activate_on: activate_on, activate_always: activate_always)
  @id = id
  @block = block
  @values = Hash[fields.take(values.size).zip(values)].freeze
  @fields = (fields - @values.keys).freeze
end

Public Instance Methods

applicable?(params) click to toggle source
# File lib/rubanok/dsl/matching.rb, line 33
def applicable?(params)
  values.all? { |key, matcher| params.key?(key) && (matcher == params[key]) }
end