class Diachronr::RuleSet

a set of rules, categories, and rewrites applicable to words

Attributes

categories[RW]
options[RW]
rewrites[RW]
rules[RW]

Public Class Methods

load(filename) click to toggle source
# File lib/diachronr/ruleset.rb, line 17
def self.load(filename)
  options = YAML.load_file filename
  rules = options['rules'].map { |a| Diachronr::Rule.new(a) }
  categories = options['categories'].map { |a| Diachronr::Category.new(a) }
  rewrites = options['rewrites'].map { |a| Diachronr::Rewrite.new(a) }
  RuleSet.new rules, categories, rewrites, options
end
new(rules, categories, rewrites, options = {}) click to toggle source
# File lib/diachronr/ruleset.rb, line 10
def initialize(rules, categories, rewrites, options = {})
  @rules = rules
  @categories = categories
  @rewrites = rewrites
  @options = options
end

Public Instance Methods

apply(target) click to toggle source
# File lib/diachronr/ruleset.rb, line 25
def apply(target)
  @rewrites.each do |rewrite|
    target = rewrite.apply target
  end # each

  @rules.each do |rule|
    target = rule.apply target, categories: @categories
  end # each

  @rewrites.each do |rewrite|
    target = rewrite.reverse target
  end # each
  target
end