Class: Psych::Stream
- Inherits:
-
Visitors::YAMLTree
- Object
- Visitors::Visitor
- Visitors::YAMLTree
- Psych::Stream
- Defined in:
- lib/psych/stream.rb
Overview
Psych::Stream is a streaming YAML emitter. It will not buffer your YAML, but send it straight to an IO.
Here is an example use:
stream = Psych::Stream.new($stdout)
stream.start
stream.push({:foo => 'bar'})
stream.finish
YAML will be immediately emitted to $stdout with no buffering.
Psych::Stream#start will take a block and ensure that Psych::Stream#finish is called, so you can do this form:
stream = Psych::Stream.new($stdout)
stream.start do |em|
em.push(:foo => 'bar')
end
Direct Known Subclasses
Defined Under Namespace
Classes: Emitter
Instance Attribute Summary
Attributes inherited from Visitors::Visitor
Instance Method Summary collapse
-
#initialize(io) ⇒ Stream
constructor
Create a new streaming emitter.
-
#start(encoding = Nodes::Stream::UTF8) ⇒ Object
Start streaming using
encoding
.
Methods inherited from Visitors::YAMLTree
#accept, #finish, #push, #tree, #visit_Array, #visit_Class, #visit_Complex, #visit_DateTime, #visit_Exception, #visit_Float, #visit_Hash, #visit_Integer, #visit_NilClass, #visit_Object, #visit_Psych_Omap, #visit_Psych_Set, #visit_Range, #visit_Rational, #visit_Regexp, #visit_String, #visit_Struct, #visit_Symbol, #visit_Time
Methods inherited from Visitors::Visitor
Constructor Details
#initialize(io) ⇒ Stream
Create a new streaming emitter. Emitter will print to io
. See Psych::Stream for an example.
37 38 39 |
# File 'lib/psych/stream.rb', line 37 def initialize io super({}, self.class.const_get(:Emitter).new(io)) end |