summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/psych/lib/psych.rb20
-rw-r--r--ext/psych/lib/psych/versions.rb2
-rw-r--r--ext/psych/psych.gemspec6
-rw-r--r--test/psych/test_psych.rb2
4 files changed, 20 insertions, 10 deletions
diff --git a/ext/psych/lib/psych.rb b/ext/psych/lib/psych.rb
index 0f14fe445c..a4d5a96dce 100644
--- a/ext/psych/lib/psych.rb
+++ b/ext/psych/lib/psych.rb
@@ -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
diff --git a/ext/psych/lib/psych/versions.rb b/ext/psych/lib/psych/versions.rb
index 79dbe2523c..33993ec837 100644
--- a/ext/psych/lib/psych/versions.rb
+++ b/ext/psych/lib/psych/versions.rb
@@ -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
diff --git a/ext/psych/psych.gemspec b/ext/psych/psych.gemspec
index 23e02da89b..2254d46829 100644
--- a/ext/psych/psych.gemspec
+++ b/ext/psych/psych.gemspec
@@ -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")
diff --git a/test/psych/test_psych.rb b/test/psych/test_psych.rb
index 82906f0af6..2812fd1bd8 100644
--- a/test/psych/test_psych.rb
+++ b/test/psych/test_psych.rb
@@ -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