class Rubanok::DSL::Matching::Rule

Constants

METHOD_PREFIX

Attributes

clauses[R]

Public Class Methods

new(fields, activate_on: fields, activate_always: false, ignore_empty_values: Rubanok.ignore_empty_values, filter_with: nil) click to toggle source
Calls superclass method
# File lib/rubanok/dsl/matching.rb, line 42
def initialize(fields, activate_on: fields, activate_always: false, ignore_empty_values: Rubanok.ignore_empty_values, filter_with: nil)
  super
  @clauses = []
end

Public Instance Methods

default(&block) click to toggle source
# File lib/rubanok/dsl/matching.rb, line 57
def default(&block)
  clauses << Clause.new("#{to_method_name}_default", fields, [], activate_always: true, &block)
end
having(*values, &block) click to toggle source
# File lib/rubanok/dsl/matching.rb, line 53
def having(*values, &block)
  clauses << Clause.new("#{to_method_name}_#{clauses.size}", fields, values, &block)
end
matching_clause(params) click to toggle source
# File lib/rubanok/dsl/matching.rb, line 47
def matching_clause(params)
  clauses.detect do |clause|
    clause.applicable?(params)
  end
end

Private Instance Methods

build_method_name() click to toggle source

prefix rule method name to avoid collisions

# File lib/rubanok/dsl/matching.rb, line 64
def build_method_name
  "#{METHOD_PREFIX}#{super}"
end