plissken 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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