class Zenlish::Inflect::Substitution

Public Class Methods

new(theOriginal, aPattern, theReplacement) click to toggle source
# File lib/zenlish/inflect/substitution.rb, line 9
def initialize(theOriginal, aPattern, theReplacement)
  valid_original = validated_argument(theOriginal)
  valid_pattern = validated_pattern(aPattern)
  valid_replac = validated_argument(theReplacement)
  super([valid_original, valid_pattern, valid_replac])
end

Public Instance Methods

generate(headings, lexeme, values) click to toggle source
# File lib/zenlish/inflect/substitution.rb, line 16
def generate(headings, lexeme, values)
  original = children[0].generate(headings, lexeme, values)
  replacement = children[-1].generate(headings, lexeme, values)

  original.sub(pattern, replacement)
end
pattern() click to toggle source
# File lib/zenlish/inflect/substitution.rb, line 23
def pattern
  children[1]
end

Private Instance Methods

validated_argument(anArgument) click to toggle source
# File lib/zenlish/inflect/substitution.rb, line 52
def validated_argument(anArgument)
  arg = nil
  if anArgument.kind_of?(String)
    arg = LiteralAsIs.new(anArgument)
  elsif anArgument.kind_of?(OutputExpression)
    arg = anArgument
  else
    err_msg = "Expected an OutputExpression, found #{anArgument.inspect}."
    raise StandardError, err_msg
  end

  arg
end
validated_original(theOriginal) click to toggle source
# File lib/zenlish/inflect/substitution.rb, line 29
def validated_original(theOriginal)
  arg = nil
  if theOriginal.kind_of?(String)
    arg = LiteralAsIs.new(theOriginal)
  elsif theOriginal.kind_of?(OutputExpression)
    arg = theOriginal
  else
    err_msg = "Expected an OutputExpression, found '#{theOriginal.inspect}' instead."
    raise StandardError, err_msg
  end

  arg
end
validated_pattern(aPattern) click to toggle source
# File lib/zenlish/inflect/substitution.rb, line 43
def validated_pattern(aPattern)
  unless aPattern.kind_of?(Regexp)
    err_msg = "Expected a Regexp, found #{aPattern.inspect}."
    raise StandardError, err_msg
  end

  aPattern
end