happy_hash 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/happy_hash.rb +1 -1
- data/spec/happy_hash_spec.rb +25 -0
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e9ce07ca09d74ae9cf85eefaf342e65829697871
|
4
|
+
data.tar.gz: 4d2a7f7f05c0beeb7165188dec570ded122a0e00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c3a6acb99180c97e827fbca503fb058f47850b984d6493d644b2308c8be33fdb0dddc3d288b0d37eaaaf5f1472a6f23e53e9c14b81c1f1c5f6a31817dc03b4c8
|
7
|
+
data.tar.gz: c91bb0f28ad130baef5714c18b21e4e406401550cd84c5e4b92454c68da2bb0a6eebf4ab2764cad8306b0366fbf636675d0482dd0a8620c14b3fdcaa6b8c3db5
|
data/lib/happy_hash.rb
CHANGED
@@ -10,7 +10,7 @@ class Hash
|
|
10
10
|
def sym_keys(hash, down_case=false)
|
11
11
|
hash.inject({}) { |result, (key, value)|
|
12
12
|
new_key = case key
|
13
|
-
when String then (down_case ? key.
|
13
|
+
when String then (down_case ? key.to_sym : key.underscore.to_sym)
|
14
14
|
else key
|
15
15
|
end
|
16
16
|
new_value = case value
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'happy_hash'
|
2
|
+
|
3
|
+
describe Hash do
|
4
|
+
context 'Given a normal hash with string keys' do
|
5
|
+
let (:string_hash) { { 'keyA' => 'ValA' } }
|
6
|
+
it 'returns a new hash with the keys as symbols' do
|
7
|
+
string_hash.happy_hash.should == { key_a: 'ValA' }
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
context 'Given a normal hash with string keys' do
|
12
|
+
let (:string_hash) { { 'keyA' => 'ValA' } }
|
13
|
+
it 'will return a hash that ignores capitals, and doesnt underscore keys' do
|
14
|
+
string_hash.happy_hash(true).should == { keyA: 'ValA' }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'Given hashes containing arrays containing hashes' do
|
19
|
+
let(:hash) { {'keyA' => [ {'SomeKey' => 'SomeVal'}, {"AnotherKey" => "anotherVal"} ] } }
|
20
|
+
it 'will fix all hashes, not just top level ones' do
|
21
|
+
hash.happy_hash.should == { key_a: [ { some_key: 'SomeVal' }, { another_key: 'anotherVal' } ] }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
metadata
CHANGED
@@ -1,24 +1,25 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: happy_hash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ronnie Howell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01
|
11
|
+
date: 2014-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
|
-
email:
|
14
|
+
email: ronniemhowell@gmail.com
|
15
15
|
executables: []
|
16
16
|
extensions: []
|
17
17
|
extra_rdoc_files: []
|
18
18
|
files:
|
19
|
-
- lib/string.rb
|
20
19
|
- lib/happy_hash.rb
|
21
|
-
|
20
|
+
- lib/string.rb
|
21
|
+
- spec/happy_hash_spec.rb
|
22
|
+
homepage: https://github.com/rhowell/happy_hash
|
22
23
|
licenses:
|
23
24
|
- MIT
|
24
25
|
metadata: {}
|
@@ -38,7 +39,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
38
39
|
version: '0'
|
39
40
|
requirements: []
|
40
41
|
rubyforge_project:
|
41
|
-
rubygems_version: 2.1
|
42
|
+
rubygems_version: 2.2.1
|
42
43
|
signing_key:
|
43
44
|
specification_version: 4
|
44
45
|
summary: Make your hashes happy! Converts strings to symbols, even inside arrays inside
|