class XMP::StringInputMethod
A custom InputMethod class used by XMP for evaluating string io.
def eof?
def eof? @exps.empty? end
def gets
Reads the next expression from this printer.
def gets while l = @exps.shift next if /^\s+$/ =~ l l.concat "\n" print @prompt, l break end l end
def initialize
def initialize super @exps = [] end
def puts(exps)
An Encoding::CompatibilityError is raised of the given +exps+'s encoding
Concatenates all expressions in this printer, separated by newlines.
def puts(exps) if @encoding and exps.encoding != @encoding enc = Encoding.compatible?(@exps.join("\n"), exps) if enc.nil? raise Encoding::CompatibilityError, "Encoding in which the passed expression is encoded is not compatible to the preceding's one" else @encoding = enc end else @encoding = exps.encoding end @exps.concat exps.split(/\n/) end