Class: Arcana::RuleSet

Inherits:
Object
  • Object
show all
Defined in:
lib/arcana.rb

Instance Method Summary collapse

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

#inspectObject



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

#namesObject



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