Class: CLabs::CaseGen::Criteria
Instance Attribute Summary collapse
-
#equalities ⇒ Object
readonly
Returns the value of attribute equalities.
-
#set_names ⇒ Object
readonly
Returns the value of attribute set_names.
-
#set_values ⇒ Object
readonly
Returns the value of attribute set_values.
Instance Method Summary collapse
-
#initialize(data) ⇒ Criteria
constructor
A new instance of Criteria.
-
#match(hash) ⇒ Object
hash keys should be valid set names and hash values should be valid set values in the named set.
- #parse ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(data) ⇒ Criteria
Returns a new instance of Criteria.
88 89 90 91 92 |
# File 'lib/agents/sets.rb', line 88 def initialize(data) @data = data @equalities = {} parse end |
Instance Attribute Details
#equalities ⇒ Object (readonly)
Returns the value of attribute equalities.
86 87 88 |
# File 'lib/agents/sets.rb', line 86 def equalities @equalities end |
#set_names ⇒ Object (readonly)
Returns the value of attribute set_names.
86 87 88 |
# File 'lib/agents/sets.rb', line 86 def set_names @set_names end |
#set_values ⇒ Object (readonly)
Returns the value of attribute set_values.
86 87 88 |
# File 'lib/agents/sets.rb', line 86 def set_values @set_values end |
Instance Method Details
#match(hash) ⇒ Object
hash keys should be valid set names and hash values should be valid set values in the named set
109 110 111 112 113 114 115 116 117 |
# File 'lib/agents/sets.rb', line 109 def match(hash) # must match all equalities @equalities.each_pair do |eq_name, eq_value| actual_value = hash[eq_name] return false if actual_value.nil? return false if actual_value != eq_value end return true end |
#parse ⇒ Object
94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/agents/sets.rb', line 94 def parse @data.split(/AND/).each do |bit| set_name, set_value = bit.split(/==|=/) set_name.strip!; set_value.strip! if @equalities.keys.include?(set_name) raise ParserException.new("Rule cannot have the same set <#{set_name}> equal to different values <#{@equalities[set_name]}, #{set_value}>") end @equalities[set_name] = set_value end @set_names = @equalities.keys @set_values = @equalities.values end |
#to_s ⇒ Object
119 120 121 |
# File 'lib/agents/sets.rb', line 119 def to_s @data end |