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 +4 -4
- data/.rubocop.yml +2 -1
- data/Gemfile +2 -2
- data/Gemfile.lock +61 -55
- data/VERSION +1 -1
- data/lib/plissken/ext/hash/to_snake_keys.rb +20 -12
- data/plissken.gemspec +10 -10
- data/spec/lib/to_snake_keys_spec.rb +30 -32
- data/spec/spec_helper.rb +47 -47
- data/test/plissken/ext/hash/to_snake_keys_test.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e77d7951d8d19a1f90b7f3a5567f9e3d6f5eb78c
|
4
|
+
data.tar.gz: 4e72105f678443e1867ef93ca24720a0a9a1797b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d04ca9cb862e04899a42a9962069b42ea70e2ec3bc5858cac508b924c1f3192b9741fcfdc9f7fe3f20f342c416666497aabf54ca0682c886e51fcfa0d716d90e
|
7
|
+
data.tar.gz: 04fbabf6b14945665375dfaa517c80817adea09b92f60c2d9f15beb912b7cf5b43864baf1b8130ac60318c02a398aede366612ff74fc562a3ff4101b515a7cd0
|
data/.rubocop.yml
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,91 +1,97 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
activemodel (4.
|
5
|
-
activesupport (= 4.
|
6
|
-
builder (~> 3.1
|
7
|
-
activesupport (4.
|
8
|
-
i18n (~> 0.
|
9
|
-
|
10
|
-
|
11
|
-
thread_safe (~> 0.
|
12
|
-
tzinfo (~>
|
13
|
-
addressable (2.
|
14
|
-
|
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.
|
19
|
+
faraday (0.9.2)
|
19
20
|
multipart-post (>= 1.2, < 3)
|
20
|
-
git (1.
|
21
|
-
github_api (0.
|
21
|
+
git (1.3.0)
|
22
|
+
github_api (0.11.3)
|
22
23
|
addressable (~> 2.3)
|
23
|
-
descendants_tracker (~> 0.0.
|
24
|
+
descendants_tracker (~> 0.0.1)
|
24
25
|
faraday (~> 0.8, < 0.10)
|
25
|
-
hashie (>=
|
26
|
+
hashie (>= 1.2)
|
26
27
|
multi_json (>= 1.7.5, < 2.0)
|
27
|
-
nokogiri (~> 1.6.
|
28
|
+
nokogiri (~> 1.6.0)
|
28
29
|
oauth2
|
29
|
-
hashie (3.
|
30
|
-
highline (1.
|
30
|
+
hashie (3.4.6)
|
31
|
+
highline (1.7.8)
|
31
32
|
i18n (0.7.0)
|
32
|
-
jeweler (2.
|
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
|
-
|
42
|
-
json (1.
|
43
|
-
jwt (1.
|
44
|
-
|
45
|
-
minitest (
|
46
|
-
multi_json (1.
|
47
|
-
multi_xml (0.
|
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.
|
50
|
-
|
51
|
-
|
52
|
-
|
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 (
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
rspec-
|
65
|
-
rspec-
|
66
|
-
|
67
|
-
|
68
|
-
|
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.
|
71
|
-
rspec-
|
72
|
-
|
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.
|
79
|
-
|
80
|
-
|
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.
|
89
|
-
rdoc (~>
|
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.
|
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
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
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
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
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
|
-
|
data/plissken.gemspec
CHANGED
@@ -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.
|
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.
|
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 = "
|
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.
|
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>, ["~>
|
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.
|
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>, ["~>
|
57
|
+
s.add_dependency(%q<rdoc>, ["~> 4.2"])
|
58
58
|
s.add_dependency(%q<bundler>, ["~> 1.6"])
|
59
|
-
s.add_dependency(%q<jeweler>, ["~> 2.
|
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>, ["~>
|
64
|
+
s.add_dependency(%q<rdoc>, ["~> 4.2"])
|
65
65
|
s.add_dependency(%q<bundler>, ["~> 1.6"])
|
66
|
-
s.add_dependency(%q<jeweler>, ["~> 2.
|
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
|
-
|
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
|
-
|
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
|
-
|
44
|
-
|
42
|
+
] }
|
43
|
+
end
|
44
|
+
|
45
45
|
describe 'non-destructive snakification' do
|
46
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
90
|
-
|
89
|
+
let(:hash) { { :firstKey => 'fooBar' } }
|
91
90
|
|
92
91
|
describe 'non-destructive snakification' do
|
93
|
-
|
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
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
174
|
+
is_expected.to have_key(:'with spaces')
|
177
175
|
end
|
178
176
|
end
|
179
177
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -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
|
-
|
46
|
-
#
|
47
|
-
#
|
48
|
-
#
|
49
|
-
#
|
50
|
-
config.
|
51
|
-
|
52
|
-
|
53
|
-
#
|
54
|
-
|
55
|
-
#
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
#
|
60
|
-
#
|
61
|
-
|
62
|
-
|
63
|
-
#
|
64
|
-
#
|
65
|
-
#
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
#
|
74
|
-
#
|
75
|
-
#
|
76
|
-
|
77
|
-
|
78
|
-
#
|
79
|
-
#
|
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
|
-
#
|
88
|
-
|
89
|
-
|
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
|
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.
|
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:
|
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: '
|
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: '
|
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.
|
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.
|
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.
|
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
|