1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Revert "* lib/yaml.rb: Remove Psych::EngineManager [Bug #8344]"

zzak is not the maintainer of yaml.
This reverts commit r46097.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46102 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2014-05-25 03:33:22 +00:00
parent ecb8378651
commit a95be81ea2
6 changed files with 85 additions and 8 deletions

View file

@ -16,11 +16,6 @@ Sun May 25 11:56:33 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
start cannot exceed the size, the comparison was always false.
[ruby-core:62737] [Bug #9861]
Sun May 25 11:32:42 2014 Zachary Scott <e@zzak.io>
* lib/yaml.rb: Remove Psych::EngineManager [Bug #8344]
* test/psych/*: ditto.
Sun May 25 10:34:15 2014 Zachary Scott <e@zzak.io>
* doc/regexp.rdoc: [DOC] Clarify whitespace matching by @allolex

3
NEWS
View file

@ -120,9 +120,6 @@ with all sufficient information, see the ChangeLog file.
* Prime.prime? now returns false for negative numbers. This method
should not be used to know the number is composite or not. [Bug #7395]
* Psych
* Removed Psych::EngineManager [Bug #8344]
=== Built-in global variables compatibility issues
=== C API updates

View file

@ -12,6 +12,40 @@ end
YAML = Psych # :nodoc:
module Psych # :nodoc:
# For compatibility, deprecated
class EngineManager # :nodoc:
attr_reader :yamler # :nodoc:
def initialize # :nodoc:
@yamler = 'psych'
end
def syck? # :nodoc:
false
end
# Psych is always used and this method has no effect.
#
# This method is still present for compatibility.
#
# You may still use the Syck engine by installing
# the 'syck' gem and using the Syck constant.
def yamler= engine # :nodoc:
case engine
when 'syck' then warn "syck has been removed, psych is used instead"
when 'psych' then @yamler = 'psych'
else
raise(ArgumentError, "bad engine")
end
engine
end
end
ENGINE = EngineManager.new # :nodoc:
end
# YAML Ain't Markup Language
#
# This module provides a Ruby interface for data serialization in YAML format.

View file

@ -0,0 +1,47 @@
require_relative 'helper'
require 'yaml'
module Psych
class TestEngineManager < TestCase
def test_bad_engine
assert_raises(ArgumentError) do
YAML::ENGINE.yamler = 'foooo'
end
end
def test_set_psych
YAML::ENGINE.yamler = 'psych'
assert_equal Psych, YAML
assert_equal 'psych', YAML::ENGINE.yamler
end
A = Struct.new(:name)
def test_dump_types
YAML::ENGINE.yamler = 'psych'
assert_to_yaml ::Object.new
assert_to_yaml Time.now
assert_to_yaml Date.today
assert_to_yaml('a' => 'b')
assert_to_yaml A.new('foo')
assert_to_yaml %w{a b}
assert_to_yaml Exception.new('foo')
assert_to_yaml "hello!"
assert_to_yaml :fooo
assert_to_yaml(1..10)
assert_to_yaml(/hello!~/)
assert_to_yaml 1
assert_to_yaml 1.2
assert_to_yaml Rational(1, 2)
assert_to_yaml Complex(1, 2)
assert_to_yaml true
assert_to_yaml false
assert_to_yaml nil
end
def assert_to_yaml obj
assert obj.to_yaml, "#{obj.class} to_yaml works"
end
end
end

View file

@ -13,6 +13,7 @@ module Psych
class YAMLDBMTest < TestCase
def setup
@engine, YAML::ENGINE.yamler = YAML::ENGINE.yamler, 'psych'
@dir = Dir.mktmpdir("rubytest-file")
File.chown(-1, Process.gid, @dir)
@yamldbm_file = make_tmp_filename("yamldbm")
@ -20,6 +21,7 @@ module Psych
end
def teardown
YAML::ENGINE.yamler = @engine
@yamldbm.clear
@yamldbm.close
FileUtils.remove_entry_secure @dir

View file

@ -7,6 +7,7 @@ module Psych
class YAMLStoreTest < TestCase
def setup
@engine, YAML::ENGINE.yamler = YAML::ENGINE.yamler, 'psych'
@dir = Dir.mktmpdir("rubytest-file")
File.chown(-1, Process.gid, @dir)
@yamlstore_file = make_tmp_filename("yamlstore")
@ -14,6 +15,7 @@ module Psych
end
def teardown
YAML::ENGINE.yamler = @engine
FileUtils.remove_entry_secure @dir
end