diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/psych/emitter.rb | 4 | ||||
-rw-r--r-- | lib/psych/visitors.rb | 1 | ||||
-rw-r--r-- | lib/psych/visitors/emitter.rb | 15 |
3 files changed, 20 insertions, 0 deletions
diff --git a/lib/psych/emitter.rb b/lib/psych/emitter.rb new file mode 100644 index 0000000..b06ad3a --- /dev/null +++ b/lib/psych/emitter.rb @@ -0,0 +1,4 @@ +module Psych + class Emitter < Psych::Handler + end +end diff --git a/lib/psych/visitors.rb b/lib/psych/visitors.rb index 45b4b58..df58e2e 100644 --- a/lib/psych/visitors.rb +++ b/lib/psych/visitors.rb @@ -1,2 +1,3 @@ require 'psych/visitors/visitor' require 'psych/visitors/to_ruby' +require 'psych/visitors/emitter' diff --git a/lib/psych/visitors/emitter.rb b/lib/psych/visitors/emitter.rb new file mode 100644 index 0000000..ff3832b --- /dev/null +++ b/lib/psych/visitors/emitter.rb @@ -0,0 +1,15 @@ +module Psych + module Visitors + class Emitter < Psych::Visitors::Visitor + def initialize io + @handler = Psych::Emitter.new io + end + + visitor_for(Nodes::Stream) do |o| + @handler.start_stream o.encoding + o.children.each { |c| c.accept self } + @handler.end_stream + end + end + end +end |