Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/rubygems/yaml_serializer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,7 @@ def build_dependency(node)
d = Gem::Dependency.allocate
d.instance_variable_set(:@name, hash["name"])

d.instance_variable_set(:@requirement, hash["requirement"])
d.instance_variable_set(:@requirement, hash["requirement"] || hash["version_requirements"])

type = hash["type"]
type = type ? type.to_s.sub(/^:/, "").to_sym : :runtime
Expand Down
20 changes: 20 additions & 0 deletions test/rubygems/test_gem_safe_yaml.rb
Original file line number Diff line number Diff line change
Expand Up @@ -921,6 +921,26 @@ def test_load_version_requirement_old_tag
assert_equal [[">=", Gem::Version.new("1.0")]], req.requirements
end

def test_load_dependency_version_version_requirement_old_tag
yaml = <<~YAML
- !ruby/object:Gem::Dependency
name: test-unit
type: :development
version_requirement:
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - ">="
- !ruby/object:Gem::Version
version: 2.0.2
version:
YAML

deps = yaml_load(yaml, permitted_classes: Gem::SafeYAML::PERMITTED_CLASSES)
assert_not_nil(deps.first)

assert_equal [[">=", Gem::Version.new("2.0.2")]], deps.first.requirement.requirements
end

def test_load_platform_from_value_field
yaml = "!ruby/object:Gem::Platform\nvalue: x86-linux\n"
plat = yaml_load(yaml, permitted_classes: Gem::SafeYAML::PERMITTED_CLASSES)
Expand Down
Loading