cloudsmith-api 0.53.3 → 0.53.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -4
  3. data/README.md +4 -4
  4. data/build.json +1 -1
  5. data/docs/EntitlementsCreate.md +3 -0
  6. data/docs/EntitlementsPartialUpdate.md +3 -0
  7. data/docs/EntitlementsRefresh.md +3 -0
  8. data/docs/RepositoryToken.md +4 -0
  9. data/docs/RepositoryTokenRefresh.md +4 -0
  10. data/docs/RepositoryTokenSyncTokens.md +4 -0
  11. data/lib/cloudsmith-api/models/entitlements_create.rb +31 -1
  12. data/lib/cloudsmith-api/models/entitlements_partial_update.rb +31 -1
  13. data/lib/cloudsmith-api/models/entitlements_refresh.rb +31 -1
  14. data/lib/cloudsmith-api/models/repository_token.rb +41 -1
  15. data/lib/cloudsmith-api/models/repository_token_refresh.rb +41 -1
  16. data/lib/cloudsmith-api/models/repository_token_sync_tokens.rb +41 -1
  17. data/lib/cloudsmith-api/version.rb +1 -1
  18. data/spec/models/entitlements_create_spec.rb +18 -0
  19. data/spec/models/entitlements_partial_update_spec.rb +18 -0
  20. data/spec/models/entitlements_refresh_spec.rb +18 -0
  21. data/spec/models/repository_token_refresh_spec.rb +24 -0
  22. data/spec/models/repository_token_spec.rb +24 -0
  23. data/spec/models/repository_token_sync_tokens_spec.rb +24 -0
  24. data/vendor/bundle/ruby/2.6.0/cache/crack-0.4.4.gem +0 -0
  25. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/autotest-fsevent-0.2.17/gem_make.out +1 -1
  26. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/ffi-1.13.1/gem_make.out +2 -2
  27. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.3.1/gem_make.out +1 -1
  28. data/vendor/bundle/ruby/2.6.0/gems/{crack-0.4.3 → crack-0.4.4}/lib/crack.rb +0 -0
  29. data/vendor/bundle/ruby/2.6.0/gems/{crack-0.4.3 → crack-0.4.4}/lib/crack/json.rb +5 -18
  30. data/vendor/bundle/ruby/2.6.0/gems/{crack-0.4.3 → crack-0.4.4}/lib/crack/util.rb +0 -0
  31. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.4/lib/crack/version.rb +3 -0
  32. data/vendor/bundle/ruby/2.6.0/gems/{crack-0.4.3 → crack-0.4.4}/lib/crack/xml.rb +0 -0
  33. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/Makefile +3 -3
  34. data/vendor/bundle/ruby/2.6.0/specifications/{crack-0.4.3.gemspec → crack-0.4.4.gemspec} +3 -15
  35. data/vendor/bundle/ruby/2.6.0/specifications/sys-uname-1.2.1.gemspec +1 -1
  36. metadata +102 -177
  37. data/vendor/bundle/ruby/2.6.0/bin/safe_yaml +0 -27
  38. data/vendor/bundle/ruby/2.6.0/cache/crack-0.4.3.gem +0 -0
  39. data/vendor/bundle/ruby/2.6.0/cache/safe_yaml-1.0.5.gem +0 -0
  40. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/.gitignore +0 -8
  41. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/.travis.yml +0 -14
  42. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/Gemfile +0 -5
  43. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/History +0 -25
  44. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/LICENSE +0 -20
  45. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/README.md +0 -46
  46. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/crack.gemspec +0 -20
  47. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/lib/crack/version.rb +0 -3
  48. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/script/bootstrap +0 -21
  49. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/script/release +0 -42
  50. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/script/test +0 -25
  51. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/data/large_dataset.json +0 -139988
  52. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/data/twittersearch-firefox.json +0 -1
  53. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/data/twittersearch-ie.json +0 -1
  54. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/hash_test.rb +0 -26
  55. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/json_test.rb +0 -91
  56. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/parser_test.rb +0 -27
  57. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/string_test.rb +0 -31
  58. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/test_helper.rb +0 -3
  59. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/xml_test.rb +0 -514
  60. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/.gitignore +0 -3
  61. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/.travis.yml +0 -48
  62. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/CHANGES.md +0 -154
  63. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/Gemfile +0 -11
  64. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/LICENSE.txt +0 -22
  65. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/README.md +0 -191
  66. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/Rakefile +0 -26
  67. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/bin/safe_yaml +0 -75
  68. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/bundle_install_all_ruby_versions.sh +0 -11
  69. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml.rb +0 -94
  70. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/deep.rb +0 -34
  71. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/libyaml_checker.rb +0 -36
  72. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/load.rb +0 -181
  73. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/date.rb +0 -37
  74. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/hexadecimal.rb +0 -12
  75. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb +0 -26
  76. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/psych_handler.rb +0 -99
  77. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/psych_resolver.rb +0 -52
  78. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/resolver.rb +0 -94
  79. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/safe_to_ruby_visitor.rb +0 -29
  80. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/store.rb +0 -39
  81. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/syck_hack.rb +0 -36
  82. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/syck_node_monkeypatch.rb +0 -43
  83. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/syck_resolver.rb +0 -38
  84. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform.rb +0 -41
  85. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_boolean.rb +0 -21
  86. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_date.rb +0 -13
  87. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_float.rb +0 -33
  88. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_integer.rb +0 -26
  89. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_nil.rb +0 -18
  90. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_symbol.rb +0 -17
  91. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/transformation_map.rb +0 -47
  92. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/version.rb +0 -3
  93. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/run_specs_all_ruby_versions.sh +0 -38
  94. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/safe_yaml.gemspec +0 -19
  95. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/exploit.1.9.2.yaml +0 -2
  96. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/exploit.1.9.3.yaml +0 -2
  97. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/issue48.txt +0 -20
  98. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/issue49.yml +0 -0
  99. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/libyaml_checker_spec.rb +0 -69
  100. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/psych_resolver_spec.rb +0 -10
  101. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/resolver_specs.rb +0 -278
  102. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/safe_yaml_spec.rb +0 -731
  103. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/spec_helper.rb +0 -42
  104. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/store_spec.rb +0 -57
  105. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/support/exploitable_back_door.rb +0 -29
  106. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/syck_resolver_spec.rb +0 -10
  107. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/transform/base64_spec.rb +0 -11
  108. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/transform/to_date_spec.rb +0 -60
  109. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/transform/to_float_spec.rb +0 -42
  110. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/transform/to_integer_spec.rb +0 -64
  111. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/transform/to_symbol_spec.rb +0 -51
  112. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/yaml_spec.rb +0 -15
  113. data/vendor/bundle/ruby/2.6.0/specifications/safe_yaml-1.0.5.gemspec +0 -23
@@ -1,41 +0,0 @@
1
- require 'base64'
2
-
3
- module SafeYAML
4
- class Transform
5
- TRANSFORMERS = [
6
- Transform::ToSymbol.new,
7
- Transform::ToInteger.new,
8
- Transform::ToFloat.new,
9
- Transform::ToNil.new,
10
- Transform::ToBoolean.new,
11
- Transform::ToDate.new
12
- ]
13
-
14
- def self.to_guessed_type(value, quoted=false, options=nil)
15
- return value if quoted
16
-
17
- if value.is_a?(String)
18
- TRANSFORMERS.each do |transformer|
19
- success, transformed_value = transformer.method(:transform?).arity == 1 ?
20
- transformer.transform?(value) :
21
- transformer.transform?(value, options)
22
-
23
- return transformed_value if success
24
- end
25
- end
26
-
27
- value
28
- end
29
-
30
- def self.to_proper_type(value, quoted=false, tag=nil, options=nil)
31
- case tag
32
- when "tag:yaml.org,2002:binary", "x-private:binary", "!binary"
33
- decoded = Base64.decode64(value)
34
- decoded = decoded.force_encoding(value.encoding) if decoded.respond_to?(:force_encoding)
35
- decoded
36
- else
37
- self.to_guessed_type(value, quoted, options)
38
- end
39
- end
40
- end
41
- end
@@ -1,21 +0,0 @@
1
- module SafeYAML
2
- class Transform
3
- class ToBoolean
4
- include TransformationMap
5
-
6
- set_predefined_values({
7
- "yes" => true,
8
- "on" => true,
9
- "true" => true,
10
- "no" => false,
11
- "off" => false,
12
- "false" => false
13
- })
14
-
15
- def transform?(value)
16
- return false if value.length > 5
17
- return PREDEFINED_VALUES.include?(value), PREDEFINED_VALUES[value]
18
- end
19
- end
20
- end
21
- end
@@ -1,13 +0,0 @@
1
- module SafeYAML
2
- class Transform
3
- class ToDate
4
- def transform?(value)
5
- return true, Date.parse(value) if Parse::Date::DATE_MATCHER.match(value)
6
- return true, Parse::Date.value(value) if Parse::Date::TIME_MATCHER.match(value)
7
- false
8
- rescue ArgumentError
9
- return true, value
10
- end
11
- end
12
- end
13
- end
@@ -1,33 +0,0 @@
1
- module SafeYAML
2
- class Transform
3
- class ToFloat
4
- Infinity = 1.0 / 0.0
5
- NaN = 0.0 / 0.0
6
-
7
- PREDEFINED_VALUES = {
8
- ".inf" => Infinity,
9
- ".Inf" => Infinity,
10
- ".INF" => Infinity,
11
- "-.inf" => -Infinity,
12
- "-.Inf" => -Infinity,
13
- "-.INF" => -Infinity,
14
- ".nan" => NaN,
15
- ".NaN" => NaN,
16
- ".NAN" => NaN,
17
- }.freeze
18
-
19
- MATCHER = /\A[-+]?(?:\d[\d_]*)?\.[\d_]+(?:[eE][-+][\d]+)?\Z/.freeze
20
-
21
- def transform?(value)
22
- return true, Float(value) if MATCHER.match(value)
23
- try_edge_cases?(value)
24
- end
25
-
26
- def try_edge_cases?(value)
27
- return true, PREDEFINED_VALUES[value] if PREDEFINED_VALUES.include?(value)
28
- return true, Parse::Sexagesimal.value(value) if Parse::Sexagesimal::FLOAT_MATCHER.match(value)
29
- return false
30
- end
31
- end
32
- end
33
- end
@@ -1,26 +0,0 @@
1
- module SafeYAML
2
- class Transform
3
- class ToInteger
4
- MATCHERS = Deep.freeze([
5
- /\A[-+]?(0|([1-9][0-9_,]*))\Z/, # decimal
6
- /\A0[0-7]+\Z/, # octal
7
- /\A0x[0-9a-f]+\Z/i, # hexadecimal
8
- /\A0b[01_]+\Z/ # binary
9
- ])
10
-
11
- def transform?(value)
12
- MATCHERS.each_with_index do |matcher, idx|
13
- value = value.gsub(/[_,]/, "") if idx == 0
14
- return true, Integer(value) if matcher.match(value)
15
- end
16
- try_edge_cases?(value)
17
- end
18
-
19
- def try_edge_cases?(value)
20
- return true, Parse::Hexadecimal.value(value) if Parse::Hexadecimal::MATCHER.match(value)
21
- return true, Parse::Sexagesimal.value(value) if Parse::Sexagesimal::INTEGER_MATCHER.match(value)
22
- return false
23
- end
24
- end
25
- end
26
- end
@@ -1,18 +0,0 @@
1
- module SafeYAML
2
- class Transform
3
- class ToNil
4
- include TransformationMap
5
-
6
- set_predefined_values({
7
- "" => nil,
8
- "~" => nil,
9
- "null" => nil
10
- })
11
-
12
- def transform?(value)
13
- return false if value.length > 4
14
- return PREDEFINED_VALUES.include?(value), PREDEFINED_VALUES[value]
15
- end
16
- end
17
- end
18
- end
@@ -1,17 +0,0 @@
1
- module SafeYAML
2
- class Transform
3
- class ToSymbol
4
- def transform?(value, options=SafeYAML::OPTIONS)
5
- if options[:deserialize_symbols] && value =~ /\A:./
6
- if value =~ /\A:(["'])(.*)\1\Z/
7
- return true, $2.sub(/^:/, "").to_sym
8
- else
9
- return true, value.sub(/^:/, "").to_sym
10
- end
11
- end
12
-
13
- return false
14
- end
15
- end
16
- end
17
- end
@@ -1,47 +0,0 @@
1
- module SafeYAML
2
- class Transform
3
- module TransformationMap
4
- def self.included(base)
5
- base.extend(ClassMethods)
6
- end
7
-
8
- class CaseAgnosticMap < Hash
9
- def initialize(*args)
10
- super
11
- end
12
-
13
- def include?(key)
14
- super(key.downcase)
15
- end
16
-
17
- def [](key)
18
- super(key.downcase)
19
- end
20
-
21
- # OK, I actually don't think it's all that important that this map be
22
- # frozen.
23
- def freeze
24
- self
25
- end
26
- end
27
-
28
- module ClassMethods
29
- def set_predefined_values(predefined_values)
30
- if SafeYAML::YAML_ENGINE == "syck"
31
- expanded_map = predefined_values.inject({}) do |hash, (key, value)|
32
- hash[key] = value
33
- hash[key.capitalize] = value
34
- hash[key.upcase] = value
35
- hash
36
- end
37
- else
38
- expanded_map = CaseAgnosticMap.new
39
- expanded_map.merge!(predefined_values)
40
- end
41
-
42
- self.const_set(:PREDEFINED_VALUES, expanded_map.freeze)
43
- end
44
- end
45
- end
46
- end
47
- end
@@ -1,3 +0,0 @@
1
- module SafeYAML
2
- VERSION = "1.0.5"
3
- end
@@ -1,38 +0,0 @@
1
- #!/bin/bash
2
-
3
- [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
4
-
5
- rvm use 1.8.7
6
- bundle exec rake spec
7
-
8
- rvm use 1.9.2
9
- YAMLER=syck bundle exec rake spec
10
-
11
- YAMLER=psych bundle exec rake spec
12
-
13
- rvm use 1.9.3
14
- YAMLER=syck bundle exec rake spec
15
-
16
- YAMLER=psych bundle exec rake spec
17
-
18
- rvm use 2.0.0
19
- bundle exec rake spec
20
-
21
- rvm use 2.1.0
22
- bundle exec rake spec
23
-
24
- rvm use 2.1.1
25
- bundle exec rake spec
26
-
27
- rvm use 2.1.2
28
- bundle exec rake spec
29
-
30
- rvm use ruby-head
31
- bundle exec rake spec
32
-
33
- rvm use jruby
34
- JRUBY_OPTS=--1.8 bundle exec rake spec
35
-
36
- JRUBY_OPTS=--1.9 bundle exec rake spec
37
-
38
- JRUBY_OPTS=--2.0 bundle exec rake spec
@@ -1,19 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- require File.join(File.dirname(__FILE__), "lib", "safe_yaml", "version")
3
-
4
- Gem::Specification.new do |gem|
5
- gem.name = "safe_yaml"
6
- gem.version = SafeYAML::VERSION
7
- gem.authors = "Dan Tao"
8
- gem.email = "daniel.tao@gmail.com"
9
- gem.description = %q{Parse YAML safely}
10
- gem.summary = %q{SameYAML provides an alternative implementation of YAML.load suitable for accepting user input in Ruby applications.}
11
- gem.homepage = "https://github.com/dtao/safe_yaml"
12
- gem.license = "MIT"
13
- gem.files = `git ls-files`.split($\)
14
- gem.test_files = gem.files.grep(%r{^spec/})
15
- gem.require_paths = ["lib"]
16
- gem.executables = ["safe_yaml"]
17
-
18
- gem.required_ruby_version = ">= 1.8.7"
19
- end
@@ -1,2 +0,0 @@
1
- --- !ruby/object:ExploitableBackDoor
2
- foo: bar
@@ -1,2 +0,0 @@
1
- --- !ruby/hash:ExploitableBackDoor
2
- foo: bar
@@ -1,20 +0,0 @@
1
- ---
2
- title: Blah
3
- key: value
4
- ---
5
-
6
- I'm going to inject a bunch of YAML-looking stuff below and it should all just get ignored.
7
-
8
- foo: bar
9
-
10
- - foo
11
- - bar
12
-
13
- :foo
14
- 42
15
- ~
16
-
17
- ---
18
- text: |
19
- Look, I'm another YAML document!
20
- ---
@@ -1,69 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe SafeYAML::LibyamlChecker do
4
- describe "check_libyaml_version" do
5
- REAL_YAML_ENGINE = SafeYAML::YAML_ENGINE
6
- REAL_LIBYAML_VERSION = SafeYAML::LibyamlChecker::LIBYAML_VERSION
7
-
8
- let(:libyaml_patched) { false }
9
-
10
- before :each do
11
- allow(SafeYAML::LibyamlChecker).to receive(:libyaml_patched?).and_return(libyaml_patched)
12
- end
13
-
14
- after :each do
15
- silence_warnings do
16
- SafeYAML::YAML_ENGINE = REAL_YAML_ENGINE
17
- SafeYAML::LibyamlChecker::LIBYAML_VERSION = REAL_LIBYAML_VERSION
18
- end
19
- end
20
-
21
- def test_libyaml_version_ok(expected_result, yaml_engine, libyaml_version=nil)
22
- silence_warnings do
23
- SafeYAML.const_set("YAML_ENGINE", yaml_engine)
24
- SafeYAML::LibyamlChecker.const_set("LIBYAML_VERSION", libyaml_version)
25
- expect(SafeYAML::LibyamlChecker.libyaml_version_ok?).to eq(expected_result)
26
- end
27
- end
28
-
29
- unless defined?(JRUBY_VERSION)
30
- it "issues no warnings when 'Syck' is the YAML engine" do
31
- test_libyaml_version_ok(true, "syck")
32
- end
33
-
34
- it "issues a warning if Psych::LIBYAML_VERSION is not defined" do
35
- test_libyaml_version_ok(false, "psych")
36
- end
37
-
38
- it "issues a warning if Psych::LIBYAML_VERSION is < 0.1.6" do
39
- test_libyaml_version_ok(false, "psych", "0.1.5")
40
- end
41
-
42
- it "issues no warning if Psych::LIBYAML_VERSION is == 0.1.6" do
43
- test_libyaml_version_ok(true, "psych", "0.1.6")
44
- end
45
-
46
- it "issues no warning if Psych::LIBYAML_VERSION is > 0.1.6" do
47
- test_libyaml_version_ok(true, "psych", "1.0.0")
48
- end
49
-
50
- it "does a proper version comparison (not just a string comparison)" do
51
- test_libyaml_version_ok(true, "psych", "0.1.10")
52
- end
53
-
54
- context "when the system has a known patched libyaml version" do
55
- let(:libyaml_patched) { true }
56
-
57
- it "issues no warning, even when Psych::LIBYAML_VERSION < 0.1.6" do
58
- test_libyaml_version_ok(true, "psych", "0.1.4")
59
- end
60
- end
61
- end
62
-
63
- if defined?(JRUBY_VERSION)
64
- it "issues no warning, as JRuby doesn't use libyaml" do
65
- test_libyaml_version_ok(true, "psych", "0.1.4")
66
- end
67
- end
68
- end
69
- end
@@ -1,10 +0,0 @@
1
- require "spec_helper"
2
-
3
- if SafeYAML::YAML_ENGINE == "psych"
4
- require "safe_yaml/psych_resolver"
5
-
6
- describe SafeYAML::PsychResolver do
7
- include ResolverSpecs
8
- let(:resolver) { SafeYAML::PsychResolver.new }
9
- end
10
- end
@@ -1,278 +0,0 @@
1
- module ResolverSpecs
2
- def self.included(base)
3
- base.module_eval do
4
- let(:resolver) { nil }
5
- let(:result) { @result }
6
-
7
- before :each do
8
- # See the comment in the first before :each block in safe_yaml_spec.rb.
9
- require "safe_yaml"
10
- end
11
-
12
- def parse(yaml)
13
- tree = YAML.parse(yaml.unindent)
14
- @result = resolver.resolve_node(tree)
15
- end
16
-
17
- # Isn't this how I should've been doing it all along?
18
- def parse_and_test(yaml)
19
- safe_result = parse(yaml)
20
-
21
- exception_thrown = nil
22
-
23
- unsafe_result = begin
24
- YAML.unsafe_load(yaml)
25
- rescue Exception => e
26
- exception_thrown = e
27
- end
28
-
29
- if exception_thrown
30
- # If the underlying YAML parser (e.g. Psych) threw an exception, I'm
31
- # honestly not sure what the right thing to do is. For now I'll just
32
- # print a warning. Should SafeYAML fail when Psych fails?
33
- Kernel.warn "\n"
34
- Kernel.warn "Discrepancy between SafeYAML and #{SafeYAML::YAML_ENGINE} on input:\n"
35
- Kernel.warn "#{yaml.unindent}\n"
36
- Kernel.warn "SafeYAML result:"
37
- Kernel.warn "#{safe_result.inspect}\n"
38
- Kernel.warn "#{SafeYAML::YAML_ENGINE} result:"
39
- Kernel.warn "#{exception_thrown.inspect}\n"
40
-
41
- else
42
- expect(safe_result).to eq(unsafe_result)
43
- end
44
- end
45
-
46
- context "by default" do
47
- it "translates maps to hashes" do
48
- parse <<-YAML
49
- potayto: potahto
50
- tomayto: tomahto
51
- YAML
52
-
53
- expect(result).to eq({
54
- "potayto" => "potahto",
55
- "tomayto" => "tomahto"
56
- })
57
- end
58
-
59
- it "translates sequences to arrays" do
60
- parse <<-YAML
61
- - foo
62
- - bar
63
- - baz
64
- YAML
65
-
66
- expect(result).to eq(["foo", "bar", "baz"])
67
- end
68
-
69
- it "translates most values to strings" do
70
- parse "string: value"
71
- expect(result).to eq({ "string" => "value" })
72
- end
73
-
74
- it "does not deserialize symbols" do
75
- parse ":symbol: value"
76
- expect(result).to eq({ ":symbol" => "value" })
77
- end
78
-
79
- it "translates valid integral numbers to integers" do
80
- parse "integer: 1"
81
- expect(result).to eq({ "integer" => 1 })
82
- end
83
-
84
- it "translates valid decimal numbers to floats" do
85
- parse "float: 3.14"
86
- expect(result).to eq({ "float" => 3.14 })
87
- end
88
-
89
- it "translates valid dates" do
90
- parse "date: 2013-01-24"
91
- expect(result).to eq({ "date" => Date.parse("2013-01-24") })
92
- end
93
-
94
- it "translates valid true/false values to booleans" do
95
- parse <<-YAML
96
- - yes
97
- - true
98
- - no
99
- - false
100
- YAML
101
-
102
- expect(result).to eq([true, true, false, false])
103
- end
104
-
105
- it "translates valid nulls to nil" do
106
- parse <<-YAML
107
- -
108
- - ~
109
- - null
110
- YAML
111
-
112
- expect(result).to eq([nil] * 3)
113
- end
114
-
115
- it "matches the behavior of the underlying YAML engine w/ respect to capitalization of boolean values" do
116
- parse_and_test <<-YAML
117
- - true
118
- - True
119
- - TRUE
120
- - tRue
121
- - TRue
122
- - False
123
- - FALSE
124
- - fAlse
125
- - FALse
126
- YAML
127
-
128
- # using Syck: [true, true, true, "tRue", "TRue", false, false, "fAlse", "FALse"]
129
- # using Psych: all booleans
130
- end
131
-
132
- it "matches the behavior of the underlying YAML engine w/ respect to capitalization of nil values" do
133
- parse_and_test <<-YAML
134
- - Null
135
- - NULL
136
- - nUll
137
- - NUll
138
- YAML
139
-
140
- # using Syck: [nil, nil, "nUll", "NUll"]
141
- # using Psych: all nils
142
- end
143
-
144
- it "translates quoted empty strings to strings (not nil)" do
145
- parse "foo: ''"
146
- expect(result).to eq({ "foo" => "" })
147
- end
148
-
149
- it "correctly reverse-translates strings encoded via #to_yaml" do
150
- parse "5.10".to_yaml
151
- expect(result).to eq("5.10")
152
- end
153
-
154
- it "does not specially parse any double-quoted strings" do
155
- parse <<-YAML
156
- - "1"
157
- - "3.14"
158
- - "true"
159
- - "false"
160
- - "2013-02-03"
161
- - "2013-02-03 16:27:00 -0600"
162
- YAML
163
-
164
- expect(result).to eq(["1", "3.14", "true", "false", "2013-02-03", "2013-02-03 16:27:00 -0600"])
165
- end
166
-
167
- it "does not specially parse any single-quoted strings" do
168
- parse <<-YAML
169
- - '1'
170
- - '3.14'
171
- - 'true'
172
- - 'false'
173
- - '2013-02-03'
174
- - '2013-02-03 16:27:00 -0600'
175
- YAML
176
-
177
- expect(result).to eq(["1", "3.14", "true", "false", "2013-02-03", "2013-02-03 16:27:00 -0600"])
178
- end
179
-
180
- it "deals just fine with nested maps" do
181
- parse <<-YAML
182
- foo:
183
- bar:
184
- marco: polo
185
- YAML
186
-
187
- expect(result).to eq({ "foo" => { "bar" => { "marco" => "polo" } } })
188
- end
189
-
190
- it "deals just fine with nested sequences" do
191
- parse <<-YAML
192
- - foo
193
- -
194
- - bar1
195
- - bar2
196
- -
197
- - baz1
198
- - baz2
199
- YAML
200
-
201
- expect(result).to eq(["foo", ["bar1", "bar2", ["baz1", "baz2"]]])
202
- end
203
-
204
- it "applies the same transformations to keys as to values" do
205
- parse <<-YAML
206
- foo: string
207
- :bar: symbol
208
- 1: integer
209
- 3.14: float
210
- 2013-01-24: date
211
- YAML
212
-
213
- expect(result).to eq({
214
- "foo" => "string",
215
- ":bar" => "symbol",
216
- 1 => "integer",
217
- 3.14 => "float",
218
- Date.parse("2013-01-24") => "date",
219
- })
220
- end
221
-
222
- it "applies the same transformations to elements in sequences as to all values" do
223
- parse <<-YAML
224
- - foo
225
- - :bar
226
- - 1
227
- - 3.14
228
- - 2013-01-24
229
- YAML
230
-
231
- expect(result).to eq(["foo", ":bar", 1, 3.14, Date.parse("2013-01-24")])
232
- end
233
- end
234
-
235
- context "for Ruby version #{RUBY_VERSION}" do
236
- it "translates valid time values" do
237
- parse "time: 2013-01-29 05:58:00 -0800"
238
- expect(result).to eq({ "time" => Time.utc(2013, 1, 29, 13, 58, 0) })
239
- end
240
-
241
- it "applies the same transformation to elements in sequences" do
242
- parse "- 2013-01-29 05:58:00 -0800"
243
- expect(result).to eq([Time.utc(2013, 1, 29, 13, 58, 0)])
244
- end
245
-
246
- it "applies the same transformation to keys" do
247
- parse "2013-01-29 05:58:00 -0800: time"
248
- expect(result).to eq({ Time.utc(2013, 1, 29, 13, 58, 0) => "time" })
249
- end
250
- end
251
-
252
- context "with symbol deserialization enabled" do
253
- before :each do
254
- SafeYAML::OPTIONS[:deserialize_symbols] = true
255
- end
256
-
257
- after :each do
258
- SafeYAML.restore_defaults!
259
- end
260
-
261
- it "translates values starting with ':' to symbols" do
262
- parse "symbol: :value"
263
- expect(result).to eq({ "symbol" => :value })
264
- end
265
-
266
- it "applies the same transformation to keys" do
267
- parse ":bar: symbol"
268
- expect(result).to eq({ :bar => "symbol" })
269
- end
270
-
271
- it "applies the same transformation to elements in sequences" do
272
- parse "- :bar"
273
- expect(result).to eq([:bar])
274
- end
275
- end
276
- end
277
- end
278
- end