Class: Arcana::RuleSet
- Inherits:
-
Object
- Object
- Arcana::RuleSet
- Defined in:
- lib/arcana.rb
Instance Method Summary collapse
-
#initialize(rules) ⇒ RuleSet
constructor
A new instance of RuleSet.
- #inspect ⇒ Object
- #match(string, result = Result.new(self)) ⇒ Object
- #names ⇒ Object
Constructor Details
#initialize(rules) ⇒ RuleSet
Returns a new instance of RuleSet.
442 443 444 |
# File 'lib/arcana.rb', line 442 def initialize(rules) @rules = rules end |
Instance Method Details
#inspect ⇒ Object
462 463 464 |
# File 'lib/arcana.rb', line 462 def inspect "#<#{self.class} #{@rules.size} rules>" end |
#match(string, result = Result.new(self)) ⇒ Object
446 447 448 449 450 |
# File 'lib/arcana.rb', line 446 def match(string, result=Result.new(self)) @rules.flat_map do |rule| rule.match(string, result) end end |
#names ⇒ Object
452 453 454 455 456 457 458 459 460 |
# File 'lib/arcana.rb', line 452 def names return @names if defined?(@names) @names = {} @rules.each do |rule| next unless rule.pattern.type == "name" @names[rule.pattern.value] = rule end @names end |