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:
parent
373babeaac
commit
def7fab871
4 changed files with 20 additions and 10 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in a new issue