camel_snake_keys 0.0.2 → 0.0.3

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: 358339f3f2e43e9dc6f84d134f42c52af2f681f6
4
- data.tar.gz: cd06928f123ca31b93161f7fc1cd37a95b0f33c2
3
+ metadata.gz: fd107c36f9563eb3887c4ab9b4805e2b6ee46796
4
+ data.tar.gz: 9bf618e70270ac65ea28c2ac3346193ba082d526
5
5
  SHA512:
6
- metadata.gz: af6eaf1c168af5c0a2a951635b9ef8e3a797d80e259cb2e12763e9f30dd92080df008e83b2e7e8ddb902f72750c21d58c894d39472f8c00e6182f5f2dfddd1fe
7
- data.tar.gz: 8557a12fbc8e93a6c14056bd1e37375145b8f9b3b0c49e78cd41888785d5327aac0d82d84474936562d28558f873e17f1580295dbcf83a56d4a0a0a68907ff15
6
+ metadata.gz: b8fe1fa43f82a6792ef7e5ac39d3952cf8647d2d326c5939c5f8db64ed70d3c97aa3b9a8d3d122b87fc7f5fa982e5ffacb6ef04b842daaa064ae87f82b2dbd57
7
+ data.tar.gz: 9598f2d06a0123881eff4afde3970a72fe1151409b3ed1c00f59cd04452f4a2b26a5c3eba6cd6c2532456bf9622e606bbeac3dde684b8d7b94ab74c756aa3406
@@ -1,3 +1,8 @@
1
+ 0.0.3 5/11/2016
2
+
3
+ ### Features
4
+
5
+ Preserve any descendent of Hash that accepts a Hash in its initialize method, as with ActiveSupport::HashWithIndifferentAccess and Hashie::Mash
1
6
 
2
7
  0.0.2 5/11/2016
3
8
  ==============
@@ -29,13 +29,8 @@ module CamelSnakeKeys
29
29
  data.map { |v| snake_keys(v) }
30
30
  elsif data.kind_of? Hash
31
31
  hash = Hash[data.map {|k, v| [if_underscore(k), snake_keys(v)] }]
32
- if data.kind_of? Hashie::Mash
33
- Hashie::Mash.new( hash )
34
- elsif data.kind_of? HashWithIndifferentAccess || indifference
35
- HashWithIndifferentAccess.new( hash )
36
- else
37
- hash
38
- end
32
+ hash = hash.with_indifferent_access if indifference
33
+ data.class == Hash ? hash : data.class.new(hash)
39
34
  else
40
35
  data
41
36
  end
@@ -46,13 +41,8 @@ module CamelSnakeKeys
46
41
  data.map { |v| camel_keys(v) }
47
42
  elsif data.kind_of? Hash
48
43
  hash = Hash[data.map {|k, v| [if_camelize(k), camel_keys(v)] }]
49
- if data.kind_of? Hashie::Mash
50
- Hashie::Mash.new( hash )
51
- elsif data.kind_of? HashWithIndifferentAccess || indifference
52
- HashWithIndifferentAccess.new( hash )
53
- else
54
- hash
55
- end
44
+ hash = hash.with_indifferent_access if indifference
45
+ data.class == Hash ? hash : data.class.new(hash)
56
46
  else
57
47
  data
58
48
  end
@@ -1,5 +1,5 @@
1
1
  module CamelSnakeKeys
2
- VERSION = "0.0.2".freeze
2
+ VERSION = "0.0.3".freeze
3
3
 
4
4
  def self.version
5
5
  VERSION
@@ -4,51 +4,109 @@ RSpec.describe Enumerable do
4
4
 
5
5
  context "arrays" do
6
6
  let(:snaked) { [[{true=>false, 1=>1.2, 1.2=>1, nil=>2, :foo_bar=>1, "dark_matter"=>[{:dark_energy=>"aBc", "baz_qux"=>"Frob."}]}]] }
7
- let(:camelized) { [[{true=>false, 1=>1.2, 1.2=>1, nil=>2, :foo_bar=>1, "dark_matter"=>[{:dark_energy=>"aBc", "baz_qux"=>"Frob."}]}]] }
7
+ let(:camelized) { [[{true=>false, 1=>1.2, 1.2=>1, nil=>2, :fooBar=>1, "darkMatter"=>[{:darkEnergy=>"aBc", "bazQux"=>"Frob."}]}]] }
8
+
8
9
  it "should snake case keys of hashes" do
9
10
  camelized.with_snake_keys.should eq snaked
10
11
  end
11
12
 
12
13
  it "should camel case keys of hashes" do
13
- snaked.with_snake_keys.should eq camelized
14
+ snaked.with_camel_keys.should eq camelized
14
15
  end
15
16
  end
16
17
 
17
18
  context "hashes" do
18
19
  let(:snaked) { {false=>true, 1=>1.2, 1.2=>1, nil=>2, :foo_bar=>1, "dark_matter"=>[{:dark_energy=>"aBc", "baz_qux"=>"Frob."}]} }
19
- let(:camelized) { {false=>true, 1=>1.2, 1.2=>1, nil=>2, :foo_bar=>1, "dark_matter"=>[{:dark_energy=>"aBc", "baz_qux"=>"Frob."}]} }
20
+ let(:camelized) { {false=>true, 1=>1.2, 1.2=>1, nil=>2, :fooBar=>1, "darkMatter"=>[{:darkEnergy=>"aBc", "bazQux"=>"Frob."}]} }
21
+
20
22
  it "should snake case keys of hashes" do
21
- camelized.with_snake_keys.should eq snaked
23
+ hash = camelized.with_snake_keys
24
+ hash.class.should == Hash
25
+ hash.should eq snaked
22
26
  end
23
27
 
24
28
  it "should camel case keys of hashes" do
25
- snaked.with_snake_keys.should eq camelized
29
+ hash = snaked.with_camel_keys
30
+ hash.class.should == Hash
31
+ hash.should eq camelized
32
+ end
33
+
34
+ it "should snake case keys of hashes with indifference" do
35
+ hash = camelized.with_snake_keys(true)
36
+ hash.class.should == HashWithIndifferentAccess
37
+ hash.should eq snaked.with_indifferent_access
38
+ hash[:foo_bar].should eq hash["foo_bar"]
26
39
  end
40
+
41
+ it "should camel case keys of hashes with indifference" do
42
+ hash = snaked.with_camel_keys(true)
43
+ hash.class.should == HashWithIndifferentAccess
44
+ hash.should eq camelized.with_indifferent_access
45
+ hash["fooBar"].should eq hash[:fooBar]
46
+ end
47
+
27
48
  end
28
49
 
29
50
  context "hashes with indifferent access" do
30
51
  let(:snaked) { {1.2=>1, 1=>1.2, nil=>2, :foo_bar=>1, "dark_matter"=>[{:dark_energy=>"aBc", "baz_qux"=>"Frob."}]}.with_indifferent_access }
31
- let(:camelized) { { 1.2=>1, 1=>1.2, nil=>2, :foo_bar=>1, "dark_matter"=>[{:dark_energy=>"aBc", "baz_qux"=>"Frob."}]}.with_indifferent_access }
52
+ let(:camelized) { { 1.2=>1, 1=>1.2, nil=>2, :fooBar=>1, "darkMatter"=>[{:darkEnergy=>"aBc", "bazQux"=>"Frob."}]}.with_indifferent_access }
32
53
 
33
54
  it "should snake case keys of hashes" do
34
- camelized.with_snake_keys.should eq snaked
55
+ hash = camelized.with_snake_keys
56
+ hash.class.should == HashWithIndifferentAccess
57
+ hash.should eq snaked
35
58
  end
36
59
 
37
60
  it "should camel case keys of hashes" do
38
- snaked.with_snake_keys.should eq camelized
61
+ hash = snaked.with_camel_keys
62
+ hash.class.should == HashWithIndifferentAccess
63
+ hash.should eq camelized
39
64
  end
65
+
66
+ it "should snake case keys of hashes with indifference" do
67
+ hash = camelized.with_snake_keys(true)
68
+ hash.class.should == HashWithIndifferentAccess
69
+ hash.should eq snaked
70
+ end
71
+
72
+ it "should camel case keys of hashes with indifference" do
73
+ hash = snaked.with_camel_keys(true)
74
+ hash.class.should == HashWithIndifferentAccess
75
+ hash.should eq camelized
76
+ end
77
+
40
78
  end
41
79
 
42
80
  context "mashes" do
43
81
  let(:snaked) { Hashie::Mash.new({1.2=>1, 1=>1.2, nil=>2, :foo_bar=>1, "dark_matter"=>[{:dark_energy=>"aBc", "baz_qux"=>"Frob."}]}) }
44
- let(:camelized) { Hashie::Mash.new({ 1.2=>1, 1=>1.2, nil=>2, :foo_bar=>1, "dark_matter"=>[{:dark_energy=>"aBc", "baz_qux"=>"Frob."}]}) }
82
+ let(:camelized) { Hashie::Mash.new({ 1.2=>1, 1=>1.2, nil=>2, :fooBar=>1, "darkMatter"=>[{:darkEnergy=>"aBc", "bazQux"=>"Frob."}]}) }
45
83
 
46
84
  it "should snake case keys of hashes" do
47
- camelized.with_snake_keys.should eq snaked
85
+ hash = camelized.with_snake_keys
86
+ hash.class.should == Hashie::Mash
87
+ hash.should eq snaked
88
+ hash["fooBar"].should == hash[:fooBar]
48
89
  end
49
90
 
50
91
  it "should camel case keys of hashes" do
51
- snaked.with_snake_keys.should eq camelized
92
+ hash = snaked.with_camel_keys
93
+ hash.class.should == Hashie::Mash
94
+ hash.should eq camelized
95
+ hash["foo_bar"].should == hash[:foo_bar]
96
+ end
97
+
98
+ it "should snake case keys of hashes with redundant indifference" do
99
+ hash = camelized.with_snake_keys(true)
100
+ hash.class.should == Hashie::Mash
101
+ hash.should eq snaked
102
+ hash["foo_bar"].should == hash[:foo_bar]
103
+ end
104
+
105
+ it "should camel case keys of hashes with redundant indifference" do
106
+ hash = snaked.with_camel_keys(true)
107
+ hash.class.should == Hashie::Mash
108
+ hash.should eq camelized
109
+ hash["foo_bar"].should == hash[:foo_bar]
52
110
  end
53
111
 
54
112
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: camel_snake_keys
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Buermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-11 00:00:00.000000000 Z
11
+ date: 2016-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport