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

Merge psych-3.0.2 from ruby/psych.

It version changed fallback option to keywoad argument
  on `Yaml.load` method. It break backword compatiblity.

  see detailed discuttion: https://github.com/ruby/psych/issues/340

From: SHIBATA Hiroshi <hsbt@ruby-lang.org>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
hsbt 2017-12-19 09:44:33 +00:00
parent 373babeaac
commit def7fab871
4 changed files with 20 additions and 10 deletions

View file

@ -259,8 +259,8 @@ module Psych
# Psych.load("---\n foo: bar") # => {"foo"=>"bar"}
# Psych.load("---\n foo: bar", symbolize_names: true) # => {:foo=>"bar"}
#
def self.load yaml, filename = nil, fallback = false, symbolize_names: false
result = parse(yaml, filename, fallback)
def self.load yaml, filename = nil, fallback: false, symbolize_names: false
result = parse(yaml, filename, fallback: fallback)
result = result.to_ruby if result
symbolize_names!(result) if symbolize_names
result
@ -300,6 +300,16 @@ module Psych
#
# A Psych::BadAlias exception will be raised if the yaml contains aliases
# but the +aliases+ parameter is set to false.
#
# +filename+ will be used in the exception message if any exception is raised
# while parsing.
#
# When the optional +symbolize_names+ keyword argument is set to a
# true value, returns symbols for keys in Hash objects (default: strings).
#
# Psych.safe_load("---\n foo: bar") # => {"foo"=>"bar"}
# Psych.safe_load("---\n foo: bar", symbolize_names: true) # => {:foo=>"bar"}
#
def self.safe_load yaml, whitelist_classes = [], whitelist_symbols = [], aliases = false, filename = nil, symbolize_names: false
result = parse(yaml, filename)
return unless result
@ -336,7 +346,7 @@ module Psych
# end
#
# See Psych::Nodes for more information about YAML AST.
def self.parse yaml, filename = nil, fallback = false
def self.parse yaml, filename = nil, fallback: false
parse_stream(yaml, filename) do |node|
return node
end
@ -483,9 +493,9 @@ module Psych
# Load the document contained in +filename+. Returns the yaml contained in
# +filename+ as a Ruby object, or if the file is empty, it returns
# the specified default return value, which defaults to an empty Hash
def self.load_file filename, fallback = false
def self.load_file filename, fallback: false
File.open(filename, 'r:bom|utf-8') { |f|
self.load f, filename, FALLBACK.new(fallback)
self.load f, filename, fallback: FALLBACK.new(fallback)
}
end

View file

@ -1,7 +1,7 @@
# frozen_string_literal: true
module Psych
# The version is Psych you're using
VERSION = '3.0.0'
VERSION = '3.0.2'
if RUBY_ENGINE == 'jruby'
DEFAULT_SNAKEYAML_VERSION = '1.18'.freeze

View file

@ -3,10 +3,10 @@
Gem::Specification.new do |s|
s.name = "psych"
s.version = "3.0.0"
s.version = "3.0.2"
s.authors = ["Aaron Patterson", "SHIBATA Hiroshi", "Charles Oliver Nutter"]
s.email = ["aaron@tenderlovemaking.com", "hsbt@ruby-lang.org", "headius@headius.com"]
s.date = "2017-12-01"
s.date = "2017-12-04"
s.summary = "Psych is a YAML parser and emitter"
s.description = <<-DESCRIPTION
Psych is a YAML parser and emitter. Psych leverages libyaml[http://pyyaml.org/wiki/LibYAML]
@ -41,7 +41,7 @@ DESCRIPTION
s.rdoc_options = ["--main", "README.md"]
s.extra_rdoc_files = ["CHANGELOG.rdoc", "README.md"]
s.required_ruby_version = Gem::Requirement.new(">= 1.9.2")
s.required_ruby_version = Gem::Requirement.new(">= 2.2.2")
s.rubygems_version = "2.5.1"
s.required_rubygems_version = Gem::Requirement.new(">= 0")

View file

@ -146,7 +146,7 @@ class TestPsych < Psych::TestCase
def test_load_file_with_fallback
Tempfile.create(['empty', 'yml']) {|t|
assert_equal Hash.new, Psych.load_file(t.path, Hash.new)
assert_equal Hash.new, Psych.load_file(t.path, fallback: Hash.new)
}
end