class Arcana::RuleSet

Public Class Methods

new(rules) click to toggle source
# File lib/arcana.rb, line 442
def initialize(rules)
  @rules = rules
end

Public Instance Methods

inspect() click to toggle source
# File lib/arcana.rb, line 462
def inspect
  "#<#{self.class} #{@rules.size} rules>"
end
match(string, result=Result.new(self)) click to toggle source
# 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() click to toggle source
# 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