Class: Strategize::RuleGroup

Inherits:
Object
  • Object
show all
Defined in:
lib/strategize/rules/rule_group.rb

Overview

A wrapper around an array of rules

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rules = []) ⇒ RuleGroup

Create new Rule Group

Parameters:

  • rules (Array<Rule>) (defaults to: [])

    rules to be evaluated



9
10
11
# File 'lib/strategize/rules/rule_group.rb', line 9

def initialize(rules = [])
  @rules = rules
end

Instance Attribute Details

#rulesObject (readonly)

Returns the value of attribute rules.



4
5
6
# File 'lib/strategize/rules/rule_group.rb', line 4

def rules
  @rules
end

Instance Method Details

#<<(name, predicate) ⇒ Object



21
22
23
# File 'lib/strategize/rules/rule_group.rb', line 21

def <<(name, predicate)
  add(name, predicate)
end

#add(name, predicate) ⇒ Object

Add [Rule] to the group

Parameters:

  • name (Symbol)

    a descriptive name for the rule

  • predicate (Lambda)

    a function that returns true or false



17
18
19
# File 'lib/strategize/rules/rule_group.rb', line 17

def add(name, predicate)
  @rules.push(Rule.new(name, predicate))
end