plissken 0.2.0 → 0.3.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 46a91e54b2563fa6efad2ec566f056afaa002355
4
- data.tar.gz: 20e616d7f653d16fc4a370835d35d09b3eeefa2c
3
+ metadata.gz: e77d7951d8d19a1f90b7f3a5567f9e3d6f5eb78c
4
+ data.tar.gz: 4e72105f678443e1867ef93ca24720a0a9a1797b
5
5
  SHA512:
6
- metadata.gz: c8c7979285808498f9ff68e3d8da071fa9f403d2be00993be17d6dc50acd7f07e0da70b82629842990922a8739bdc6e27ca73f4f9d705834a4f894e92ab26145
7
- data.tar.gz: b7509676e2defc3260949904c4081e5ae5370b34159086a6802eae81f7f87fd6e431f2f86b03b5d49209394497f1a0a025b962afda542f26c707acf7403fa90c
6
+ metadata.gz: d04ca9cb862e04899a42a9962069b42ea70e2ec3bc5858cac508b924c1f3192b9741fcfdc9f7fe3f20f342c416666497aabf54ca0682c886e51fcfa0d716d90e
7
+ data.tar.gz: 04fbabf6b14945665375dfaa517c80817adea09b92f60c2d9f15beb912b7cf5b43864baf1b8130ac60318c02a398aede366612ff74fc562a3ff4101b515a7cd0
@@ -7,4 +7,5 @@ Style/HashSyntax:
7
7
  AllCops:
8
8
  Exclude:
9
9
  - plissken.gemspec
10
- - Rakefile
10
+ - Rakefile
11
+ - test/helper.rb
data/Gemfile CHANGED
@@ -9,7 +9,7 @@ gem 'symbolize', '~> 4.2'
9
9
  group :development do
10
10
  # gem 'debugger'
11
11
  gem 'rspec', '~> 3.1'
12
- gem 'rdoc', '~> 3.12'
12
+ gem 'rdoc', '~> 4.2'
13
13
  gem 'bundler', '~> 1.6'
14
- gem 'jeweler', '~> 2.0'
14
+ gem 'jeweler', '~> 2.3'
15
15
  end
@@ -1,91 +1,97 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activemodel (4.0.12)
5
- activesupport (= 4.0.12)
6
- builder (~> 3.1.0)
7
- activesupport (4.0.12)
8
- i18n (~> 0.6, >= 0.6.9)
9
- minitest (~> 4.2)
10
- multi_json (~> 1.3)
11
- thread_safe (~> 0.1)
12
- tzinfo (~> 0.3.37)
13
- addressable (2.3.6)
14
- builder (3.1.4)
4
+ activemodel (4.2.7.1)
5
+ activesupport (= 4.2.7.1)
6
+ builder (~> 3.1)
7
+ activesupport (4.2.7.1)
8
+ i18n (~> 0.7)
9
+ json (~> 1.7, >= 1.7.7)
10
+ minitest (~> 5.1)
11
+ thread_safe (~> 0.3, >= 0.3.4)
12
+ tzinfo (~> 1.1)
13
+ addressable (2.5.0)
14
+ public_suffix (~> 2.0, >= 2.0.2)
15
+ builder (3.2.2)
15
16
  descendants_tracker (0.0.4)
16
17
  thread_safe (~> 0.3, >= 0.3.1)
17
18
  diff-lcs (1.2.5)
18
- faraday (0.9.0)
19
+ faraday (0.9.2)
19
20
  multipart-post (>= 1.2, < 3)
20
- git (1.2.8)
21
- github_api (0.12.2)
21
+ git (1.3.0)
22
+ github_api (0.11.3)
22
23
  addressable (~> 2.3)
23
- descendants_tracker (~> 0.0.4)
24
+ descendants_tracker (~> 0.0.1)
24
25
  faraday (~> 0.8, < 0.10)
25
- hashie (>= 3.3)
26
+ hashie (>= 1.2)
26
27
  multi_json (>= 1.7.5, < 2.0)
27
- nokogiri (~> 1.6.3)
28
+ nokogiri (~> 1.6.0)
28
29
  oauth2
29
- hashie (3.3.2)
30
- highline (1.6.21)
30
+ hashie (3.4.6)
31
+ highline (1.7.8)
31
32
  i18n (0.7.0)
32
- jeweler (2.0.1)
33
+ jeweler (2.3.2)
33
34
  builder
34
35
  bundler (>= 1.0)
35
36
  git (>= 1.2.5)
36
- github_api
37
+ github_api (~> 0.11.0)
37
38
  highline (>= 1.6.15)
38
39
  nokogiri (>= 1.5.10)
40
+ psych (~> 2.2)
39
41
  rake
40
42
  rdoc
41
- json (1.7.7)
42
- json (1.7.7-java)
43
- jwt (1.2.0)
44
- mini_portile (0.6.2)
45
- minitest (4.6.1)
46
- multi_json (1.10.1)
47
- multi_xml (0.5.5)
43
+ semver2
44
+ json (1.8.6)
45
+ jwt (1.5.6)
46
+ mini_portile2 (2.1.0)
47
+ minitest (5.10.1)
48
+ multi_json (1.12.1)
49
+ multi_xml (0.6.0)
48
50
  multipart-post (2.0.0)
49
- nokogiri (1.6.5)
50
- mini_portile (~> 0.6.0)
51
- nokogiri (1.6.5-java)
52
- oauth2 (1.0.0)
53
- faraday (>= 0.8, < 0.10)
51
+ nokogiri (1.6.8.1)
52
+ mini_portile2 (~> 2.1.0)
53
+ oauth2 (1.3.0)
54
+ faraday (>= 0.8, < 0.11)
54
55
  jwt (~> 1.0)
55
56
  multi_json (~> 1.3)
56
57
  multi_xml (~> 0.5)
57
- rack (~> 1.2)
58
- rack (1.6.0)
59
- rake (10.4.2)
60
- rdoc (3.12.1)
61
- json (~> 1.4)
62
- rspec (3.1.0)
63
- rspec-core (~> 3.1.0)
64
- rspec-expectations (~> 3.1.0)
65
- rspec-mocks (~> 3.1.0)
66
- rspec-core (3.1.7)
67
- rspec-support (~> 3.1.0)
68
- rspec-expectations (3.1.2)
58
+ rack (>= 1.2, < 3)
59
+ psych (2.2.2)
60
+ public_suffix (2.0.5)
61
+ rack (2.0.1)
62
+ rake (12.0.0)
63
+ rdoc (4.3.0)
64
+ rspec (3.5.0)
65
+ rspec-core (~> 3.5.0)
66
+ rspec-expectations (~> 3.5.0)
67
+ rspec-mocks (~> 3.5.0)
68
+ rspec-core (3.5.4)
69
+ rspec-support (~> 3.5.0)
70
+ rspec-expectations (3.5.0)
71
+ diff-lcs (>= 1.2.0, < 2.0)
72
+ rspec-support (~> 3.5.0)
73
+ rspec-mocks (3.5.0)
69
74
  diff-lcs (>= 1.2.0, < 2.0)
70
- rspec-support (~> 3.1.0)
71
- rspec-mocks (3.1.3)
72
- rspec-support (~> 3.1.0)
73
- rspec-support (3.1.2)
75
+ rspec-support (~> 3.5.0)
76
+ rspec-support (3.5.0)
77
+ semver2 (3.4.2)
74
78
  symbolize (4.5.2)
75
79
  activemodel (>= 3.2, < 5)
76
80
  activesupport (>= 3.2, < 5)
77
81
  i18n
78
- thread_safe (0.3.4)
79
- thread_safe (0.3.4-java)
80
- tzinfo (0.3.42)
82
+ thread_safe (0.3.5)
83
+ tzinfo (1.2.2)
84
+ thread_safe (~> 0.1)
81
85
 
82
86
  PLATFORMS
83
- java
84
87
  ruby
85
88
 
86
89
  DEPENDENCIES
87
90
  bundler (~> 1.6)
88
- jeweler (~> 2.0)
89
- rdoc (~> 3.12)
91
+ jeweler (~> 2.3)
92
+ rdoc (~> 4.2)
90
93
  rspec (~> 3.1)
91
94
  symbolize (~> 4.2)
95
+
96
+ BUNDLED WITH
97
+ 1.13.6
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.3.0
@@ -1,3 +1,4 @@
1
+ # Hash.to_snake_keys
1
2
  class Hash
2
3
  # Recursively converts CamelCase and camelBack JSON-style hash keys to
3
4
  # Rubyish snake_case, suitable for use during instantiation of Ruby
@@ -5,17 +6,21 @@ class Hash
5
6
  #
6
7
  def to_snake_keys(value = self)
7
8
  case value
8
- when Array
9
- value.map { |v| to_snake_keys(v) }
10
- when Hash
11
- Hash[value.map { |k, v| [underscore_key(k).to_sym, to_snake_keys(v)] }]
12
- else
13
- value
9
+ when Array
10
+ value.map { |v| to_snake_keys(v) }
11
+ when Hash
12
+ snake_hash(value)
13
+ else
14
+ value
14
15
  end
15
16
  end
16
17
 
17
18
  private
18
19
 
20
+ def snake_hash(value)
21
+ Hash[value.map { |k, v| [underscore_key(k).to_sym, to_snake_keys(v)] }]
22
+ end
23
+
19
24
  def underscore_key(k)
20
25
  if k.is_a? Symbol
21
26
  underscore(k.to_s).to_sym
@@ -27,11 +32,14 @@ class Hash
27
32
  end
28
33
 
29
34
  def underscore(string)
30
- string.gsub(/::/, '/').
31
- gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
32
- gsub(/([a-z\d])([A-Z])/,'\1_\2').
33
- tr("-", "_").
34
- downcase
35
+ @__memoize_underscore ||= {}
36
+ return @__memoize_underscore[string] if @__memoize_underscore[string]
37
+ @__memoize_underscore[string] =
38
+ string.gsub(/::/, '/')
39
+ .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
40
+ .gsub(/([a-z\d])([A-Z])/, '\1_\2')
41
+ .tr('-', '_')
42
+ .downcase
43
+ @__memoize_underscore[string]
35
44
  end
36
45
  end
37
-
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: plissken 0.2.0 ruby lib
5
+ # stub: plissken 0.3.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "plissken"
9
- s.version = "0.2.0"
9
+ s.version = "0.3.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Dave Hrycyszyn", "Michael Chrisco"]
14
- s.date = "2014-12-31"
14
+ s.date = "2017-01-13"
15
15
  s.description = "\n Have you ever needed to automatically convert JSON-style camelBack or\n CamelCase hash keys into more Rubyish snake_case?\n\n Plissken to the rescue.\n\n This gem recursively converts all camelBack or CamelCase keys in a hash\n structure to snake_case.\n "
16
16
  s.email = "dave.hrycyszyn@headlondon.com"
17
17
  s.extra_rdoc_files = [
@@ -39,7 +39,7 @@ Gem::Specification.new do |s|
39
39
  ]
40
40
  s.homepage = "http://github.com/futurechimp/plissken"
41
41
  s.licenses = ["MIT"]
42
- s.rubygems_version = "2.2.2"
42
+ s.rubygems_version = "2.5.1"
43
43
  s.summary = "Snakify your camel keys when working with JSON APIs"
44
44
 
45
45
  if s.respond_to? :specification_version then
@@ -48,22 +48,22 @@ Gem::Specification.new do |s|
48
48
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
49
49
  s.add_runtime_dependency(%q<symbolize>, ["~> 4.2"])
50
50
  s.add_development_dependency(%q<rspec>, ["~> 3.1"])
51
- s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
51
+ s.add_development_dependency(%q<rdoc>, ["~> 4.2"])
52
52
  s.add_development_dependency(%q<bundler>, ["~> 1.6"])
53
- s.add_development_dependency(%q<jeweler>, ["~> 2.0"])
53
+ s.add_development_dependency(%q<jeweler>, ["~> 2.3"])
54
54
  else
55
55
  s.add_dependency(%q<symbolize>, ["~> 4.2"])
56
56
  s.add_dependency(%q<rspec>, ["~> 3.1"])
57
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
57
+ s.add_dependency(%q<rdoc>, ["~> 4.2"])
58
58
  s.add_dependency(%q<bundler>, ["~> 1.6"])
59
- s.add_dependency(%q<jeweler>, ["~> 2.0"])
59
+ s.add_dependency(%q<jeweler>, ["~> 2.3"])
60
60
  end
61
61
  else
62
62
  s.add_dependency(%q<symbolize>, ["~> 4.2"])
63
63
  s.add_dependency(%q<rspec>, ["~> 3.1"])
64
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
64
+ s.add_dependency(%q<rdoc>, ["~> 4.2"])
65
65
  s.add_dependency(%q<bundler>, ["~> 1.6"])
66
- s.add_dependency(%q<jeweler>, ["~> 2.0"])
66
+ s.add_dependency(%q<jeweler>, ["~> 2.3"])
67
67
  end
68
68
  end
69
69
 
@@ -1,20 +1,19 @@
1
1
  require 'spec_helper'
2
2
 
3
- require File.expand_path(File.dirname(__FILE__) + '/../../lib/plissken')
3
+ require File.expand_path(File.dirname(__FILE__) + '/../../lib/plissken')
4
4
 
5
5
  RSpec.describe 'A Hash' do
6
6
  describe 'with camelBack keys' do
7
7
  describe 'which are JSON-style strings' do
8
8
  describe 'in the simplest case' do
9
-
10
- let(:hash) { [{ 'firstKey' => 'fooBar' }] }
9
+ let(:hash) { [{ 'firstKey' => 'fooBar' }] }
11
10
 
12
11
  describe 'non-destructive snakification' do
13
12
  let(:snaked) { hash.map(&:to_snake_keys) }
14
13
  it 'snakifies the key' do
15
14
  expect(snaked.first).to have_key(:first_key)
16
15
  end
17
-
16
+
18
17
  it 'leaves the key as a string' do
19
18
  expect(snaked.first.keys).to eq([:first_key])
20
19
  end
@@ -30,7 +29,8 @@ RSpec.describe 'A Hash' do
30
29
  end
31
30
 
32
31
  describe 'containing an array of other hashes' do
33
- let(:hash) do {
32
+ let(:hash) do
33
+ {
34
34
  'appleType' => 'Granny Smith',
35
35
  'vegetableTypes' => [
36
36
  { 'potatoType' => 'Golden delicious' },
@@ -39,12 +39,12 @@ RSpec.describe 'A Hash' do
39
39
  { 'billThePeanut' => 'sallyPeanut' },
40
40
  { 'sammyThePeanut' => 'jillPeanut' }
41
41
  ] }
42
- ]}
43
- end
44
-
42
+ ] }
43
+ end
44
+
45
45
  describe 'non-destructive snakification' do
46
- subject(:snaked) { hash.to_snake_keys }
47
- #
46
+ subject(:snaked) { hash.to_snake_keys }
47
+ #
48
48
  it 'recursively snakifies the keys on the top level of the hash' do
49
49
  expect(snaked.include?(:apple_type)).to be_truthy
50
50
  expect(snaked.include?(:vegetable_types)).to be_truthy
@@ -56,12 +56,12 @@ RSpec.describe 'A Hash' do
56
56
 
57
57
  it 'converts second-level keys' do
58
58
  expect(snaked[:vegetable_types].first)
59
- .to have_key(:potato_type)
59
+ .to have_key(:potato_type)
60
60
  end
61
61
 
62
62
  it 'leaves second-level values alone' do
63
63
  expect(snaked[:vegetable_types].first)
64
- .to have_value('Golden delicious')
64
+ .to have_value('Golden delicious')
65
65
  end
66
66
 
67
67
  it 'converts third-level keys' do
@@ -86,11 +86,10 @@ RSpec.describe 'A Hash' do
86
86
 
87
87
  describe 'which are symbols' do
88
88
  describe 'in the simplest case' do
89
- let(:hash) { { :firstKey => 'fooBar' } }
90
-
89
+ let(:hash) { { :firstKey => 'fooBar' } }
91
90
 
92
91
  describe 'non-destructive snakification' do
93
- subject(:snaked) { hash.to_snake_keys }
92
+ subject(:snaked) { hash.to_snake_keys }
94
93
 
95
94
  it 'snakifies the key' do
96
95
  expect(snaked).to have_key(:first_key)
@@ -109,20 +108,21 @@ RSpec.describe 'A Hash' do
109
108
  end
110
109
  end
111
110
  end
112
- #
111
+ #
113
112
  describe 'containing an array of other hashes' do
114
- let(:hash) do {
113
+ let(:hash) do
114
+ {
115
115
  :appleType => 'Granny Smith',
116
116
  :vegetableTypes => [
117
- { :potatoType => 'Golden delicious' },
118
- { :otherTuberType => 'peanut' },
119
- { :peanutNamesAndSpouses => [
120
- { :billThePeanut => 'sallyPeanut' },
121
- { :sammyThePeanut => 'jillPeanut' }
122
- ] }
123
- ]}
117
+ { :potatoType => 'Golden delicious' },
118
+ { :otherTuberType => 'peanut' },
119
+ { :peanutNamesAndSpouses => [
120
+ { :billThePeanut => 'sallyPeanut' },
121
+ { :sammyThePeanut => 'jillPeanut' }
122
+ ] }
123
+ ] }
124
124
  end
125
- #
125
+ #
126
126
  describe 'non-destructive snakification' do
127
127
  subject(:snaked) { hash.to_snake_keys }
128
128
  #
@@ -137,12 +137,12 @@ RSpec.describe 'A Hash' do
137
137
 
138
138
  it 'converts second-level keys' do
139
139
  expect(snaked[:vegetable_types].first)
140
- .to have_key(:potato_type)
140
+ .to have_key(:potato_type)
141
141
  end
142
142
 
143
143
  it 'leaves second-level values alone' do
144
144
  expect(snaked[:vegetable_types].first)
145
- .to have_value('Golden delicious')
145
+ .to have_value('Golden delicious')
146
146
  end
147
147
 
148
148
  it 'converts third-level keys' do
@@ -167,13 +167,11 @@ RSpec.describe 'A Hash' do
167
167
  end
168
168
 
169
169
  describe 'strings with spaces in them' do
170
-
171
- let(:hash) { { 'With Spaces' => 'FooBar' } }
172
- subject { hash.to_snake_keys }
173
-
170
+ let(:hash) { { 'With Spaces' => 'FooBar' } }
171
+ subject { hash.to_snake_keys }
174
172
 
175
173
  it "doesn't get snaked, although it does get downcased" do
176
- is_expected.to have_key(:'with spaces')
174
+ is_expected.to have_key(:'with spaces')
177
175
  end
178
176
  end
179
177
  end
@@ -40,51 +40,51 @@ RSpec.configure do |config|
40
40
  mocks.verify_partial_doubles = true
41
41
  end
42
42
 
43
- # The settings below are suggested to provide a good initial experience
44
- # with RSpec, but feel free to customize to your heart's content.
45
- =begin
46
- # These two settings work together to allow you to limit a spec run
47
- # to individual examples or groups you care about by tagging them with
48
- # `:focus` metadata. When nothing is tagged with `:focus`, all examples
49
- # get run.
50
- config.filter_run :focus
51
- config.run_all_when_everything_filtered = true
52
-
53
- # Limits the available syntax to the non-monkey
54
- patched syntax that is recommended.
55
- # For more details, see:
56
-
57
- config.disable_monkey_patching!
58
-
59
- # This setting enables warnings. It's recommended, but in some cases may
60
- # be too noisy due to issues in dependencies.
61
- config.warnings = true
62
-
63
- # Many RSpec users commonly either run the entire suite or an individual
64
- # file, and it's useful to allow more verbose output when running an
65
- # individual spec file.
66
- if config.files_to_run.one?
67
- # Use the documentation formatter for detailed output,
68
- # unless a formatter has already been configured
69
- # (e.g. via a command-line flag).
70
- config.default_formatter = 'doc'
71
- end
72
-
73
- # Print the 10 slowest examples and example groups at the
74
- # end of the spec run, to help surface which specs are running
75
- # particularly slow.
76
- config.profile_examples = 10
77
-
78
- # Run specs in random order to surface order dependencies. If you find an
79
- # order dependency and want to debug it, you can fix the order by providing
80
- # the seed, which is printed after each run.
81
- # --seed 1234
82
- config.order = :random
83
-
84
- # Seed global randomization in this process using the `--seed` CLI option.
85
- # Setting this allows you to use `--seed` to deterministically reproduce
86
- # test failures related to randomization by passing the same `--seed` value
87
- # as the one that triggered the failure.
88
- Kernel.srand config.seed
89
- =end
43
+ # The settings below are suggested to provide a good initial experience
44
+ # with RSpec, but feel free to customize to your heart's content.
45
+ # # These two settings work together to allow you to limit a spec run
46
+ # # to individual examples or groups you care about by tagging them with
47
+ # # `:focus` metadata. When nothing is tagged with `:focus`, all examples
48
+ # # get run.
49
+ # config.filter_run :focus
50
+ # config.run_all_when_everything_filtered = true
51
+ #
52
+ # # Limits the available syntax to the non-monkey
53
+ # patched syntax that is recommended.
54
+ # # For more details, see:
55
+ #
56
+ # config.disable_monkey_patching!
57
+ #
58
+ # # This setting enables warnings. It's recommended, but in some cases may
59
+ # # be too noisy due to issues in dependencies.
60
+ # config.warnings = true
61
+ #
62
+ # # Many RSpec users commonly either run the entire suite or an individual
63
+ # # file, and it's useful to allow more verbose output when running an
64
+ # # individual spec file.
65
+ # if config.files_to_run.one?
66
+ # # Use the documentation formatter for detailed output,
67
+ # # unless a formatter has already been configured
68
+ # # (e.g. via a command-line flag).
69
+ # config.default_formatter = 'doc'
70
+ # end
71
+ #
72
+ # # Print the 10 slowest examples and example groups at the
73
+ # # end of the spec run, to help surface which specs are running
74
+ # # particularly slow.
75
+ # config.profile_examples = 10
76
+ #
77
+ # # Run specs in random order to surface order dependencies. If you find an
78
+ # # order dependency and want to debug it,
79
+ # you can fix the order by providing
80
+ # # the seed, which is printed after each run.
81
+ # # --seed 1234
82
+ # config.order = :random
83
+ #
84
+ # # Seed global randomization in this process using the `--seed` CLI option.
85
+ # # Setting this allows you to use `--seed` to deterministically reproduce
86
+ # # test failures related to randomization by
87
+ # # passing the same `--seed` value
88
+ # # as the one that triggered the failure.
89
+ # Kernel.srand config.seed
90
90
  end
@@ -181,4 +181,4 @@ describe 'A Hash' do
181
181
  assert @snaked.keys.include? 'with spaces'
182
182
  end
183
183
  end
184
- end
184
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: plissken
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dave Hrycyszyn
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-12-31 00:00:00.000000000 Z
12
+ date: 2017-01-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: symbolize
@@ -45,14 +45,14 @@ dependencies:
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '3.12'
48
+ version: '4.2'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '3.12'
55
+ version: '4.2'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: bundler
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -73,14 +73,14 @@ dependencies:
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '2.0'
76
+ version: '2.3'
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '2.0'
83
+ version: '2.3'
84
84
  description: "\n Have you ever needed to automatically convert JSON-style camelBack
85
85
  or\n CamelCase hash keys into more Rubyish snake_case?\n\n Plissken to the
86
86
  rescue.\n\n This gem recursively converts all camelBack or CamelCase keys in
@@ -129,7 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
129
  version: '0'
130
130
  requirements: []
131
131
  rubyforge_project:
132
- rubygems_version: 2.2.2
132
+ rubygems_version: 2.5.1
133
133
  signing_key:
134
134
  specification_version: 4
135
135
  summary: Snakify your camel keys when working with JSON APIs