class Moory::Decoder

Public Class Methods

new(rules:, initial:, ostream:$stdout) click to toggle source
# File lib/moory/decoder.rb, line 5
def initialize(rules:, initial:, ostream:$stdout)
  @initial = initial
  @state = initial
  @ostream = ostream
  configure(rules)
end

Public Instance Methods

decode(string) click to toggle source
# File lib/moory/decoder.rb, line 12
def decode(string)
  string.each_char { |c| issue(c) }
end

Private Instance Methods

configure(rules) click to toggle source
# File lib/moory/decoder.rb, line 18
def configure(rules)
  Loader.load(rules: rules, machine: self)
  repertoire.always = method(:write)
end
write(output=nil) click to toggle source
# File lib/moory/decoder.rb, line 23
def write(output=nil)
  @ostream.write(output) if output
end