mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
0f9307914b
recording YAML parse and emit events. * ext/psych/lib/psych/handler.rb: adding a list of events so that handler classes can more easily be meta-programmed. * test/psych/handlers/test_recorder.rb: tests for the change. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
25 lines
579 B
Ruby
25 lines
579 B
Ruby
require 'psych/helper'
|
|
require 'psych/handlers/recorder'
|
|
|
|
module Psych
|
|
module Handlers
|
|
class TestRecorder < TestCase
|
|
def test_replay
|
|
yaml = "--- foo\n...\n"
|
|
output = StringIO.new
|
|
|
|
recorder = Psych::Handlers::Recorder.new
|
|
parser = Psych::Parser.new recorder
|
|
parser.parse yaml
|
|
|
|
assert_equal 5, recorder.events.length
|
|
|
|
emitter = Psych::Emitter.new output
|
|
recorder.events.each do |m, args|
|
|
emitter.send m, *args
|
|
end
|
|
assert_equal yaml, output.string
|
|
end
|
|
end
|
|
end
|
|
end
|