summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/psych/emitter.rb4
-rw-r--r--lib/psych/visitors.rb1
-rw-r--r--lib/psych/visitors/emitter.rb15
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