зеркало из https://github.com/github/ruby.git
* ext/psych/lib/psych.rb: Syck api compatibility [ruby-core:29157]
* ext/psych/lib/psych/nodes/node.rb: ditto * test/psych/test_psych.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27134 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
c97f5f514a
Коммит
a4dbc2ea10
|
@ -153,10 +153,15 @@ module Psych
|
|||
# Example:
|
||||
#
|
||||
# Psych.dump(['a', 'b']) # => "---\n- a\n- b\n"
|
||||
def self.dump o, options = {}
|
||||
def self.dump o, io = nil, options = {}
|
||||
if Hash === io
|
||||
options = io
|
||||
io = nil
|
||||
end
|
||||
|
||||
visitor = Psych::Visitors::YAMLTree.new options
|
||||
visitor << o
|
||||
visitor.tree.to_yaml
|
||||
visitor.tree.to_yaml io
|
||||
end
|
||||
|
||||
###
|
||||
|
|
|
@ -30,10 +30,12 @@ module Psych
|
|||
# Convert this node to YAML.
|
||||
#
|
||||
# See also Psych::Visitors::Emitter
|
||||
def to_yaml
|
||||
io = StringIO.new
|
||||
Visitors::Emitter.new(io).accept self
|
||||
io.string
|
||||
def to_yaml io = nil
|
||||
real_io = io || StringIO.new
|
||||
|
||||
Visitors::Emitter.new(real_io).accept self
|
||||
return real_io.string unless io
|
||||
io
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
require_relative 'helper'
|
||||
|
||||
require 'stringio'
|
||||
require 'tempfile'
|
||||
|
||||
class TestPsych < Psych::TestCase
|
||||
def test_dump_stream
|
||||
things = [22, "foo \n", {}]
|
||||
|
@ -7,6 +10,22 @@ class TestPsych < Psych::TestCase
|
|||
assert_equal things, Psych.load_stream(stream)
|
||||
end
|
||||
|
||||
def test_dump_file
|
||||
hash = {'hello' => 'TGIF!'}
|
||||
Tempfile.open('fun.yml') do |io|
|
||||
assert_equal io, Psych.dump(hash, io)
|
||||
io.rewind
|
||||
assert_equal Psych.dump(hash), io.read
|
||||
end
|
||||
end
|
||||
|
||||
def test_dump_io
|
||||
hash = {'hello' => 'TGIF!'}
|
||||
stringio = StringIO.new ''
|
||||
assert_equal stringio, Psych.dump(hash, stringio)
|
||||
assert_equal Psych.dump(hash), stringio.string
|
||||
end
|
||||
|
||||
def test_simple
|
||||
assert_equal 'foo', Psych.load("--- foo\n")
|
||||
end
|
||||
|
|
Загрузка…
Ссылка в новой задаче