document_hash 0.0.14 → 0.0.15
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/document_hash/core.rb +11 -3
- data/lib/document_hash/version.rb +1 -1
- data/spec/lib/document_spec.rb +16 -2
- metadata +2 -2
data/lib/document_hash/core.rb
CHANGED
@@ -103,13 +103,21 @@ module DocumentHash
|
|
103
103
|
self
|
104
104
|
end
|
105
105
|
|
106
|
-
def to_hash
|
106
|
+
def to_hash options = {}
|
107
107
|
Hash[
|
108
108
|
self.collect do |k,v|
|
109
|
+
if options[:stringify_keys]
|
110
|
+
key = k.to_s
|
111
|
+
elsif options[:symbolize_keys]
|
112
|
+
key = k.to_sym
|
113
|
+
else
|
114
|
+
key = k
|
115
|
+
end
|
116
|
+
|
109
117
|
if v.is_a? DocumentHash::Core
|
110
|
-
[
|
118
|
+
[ key, v.to_hash ]
|
111
119
|
else
|
112
|
-
[
|
120
|
+
[ key, v ]
|
113
121
|
end
|
114
122
|
end
|
115
123
|
]
|
data/spec/lib/document_spec.rb
CHANGED
@@ -159,18 +159,32 @@ describe DocumentHash::Core do
|
|
159
159
|
subject.touch!
|
160
160
|
end
|
161
161
|
|
162
|
-
it "
|
162
|
+
it "returns a hash" do
|
163
163
|
subject = DocumentHash::Core[{ test: "test" }]
|
164
164
|
hash = subject.to_hash
|
165
165
|
hash.should be_an_instance_of Hash
|
166
166
|
end
|
167
167
|
|
168
|
-
it "
|
168
|
+
it "internal hashes are hashes" do
|
169
169
|
subject = DocumentHash::Core[{ test: { inner: "value" } }]
|
170
170
|
hash = subject.to_hash
|
171
171
|
hash[:test].should be_an_instance_of Hash
|
172
172
|
end
|
173
173
|
|
174
|
+
it "return keys stringified as an option" do
|
175
|
+
subject = DocumentHash::Core[{ test: "test" }]
|
176
|
+
hash = subject.to_hash stringify_keys: true
|
177
|
+
|
178
|
+
hash.keys.all?{ |k| k === String }
|
179
|
+
end
|
180
|
+
|
181
|
+
it "return keys symbolized keys as an option" do
|
182
|
+
subject = DocumentHash::Core[{ test: "test" }]
|
183
|
+
hash = subject.to_hash symbolize_keys: true
|
184
|
+
|
185
|
+
hash.keys.all?{ |k| k === Symbol }
|
186
|
+
end
|
187
|
+
|
174
188
|
it "can access values thru methods" do
|
175
189
|
subject = DocumentHash::Core[{ test: "value" }]
|
176
190
|
subject.test.should == "value"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: document_hash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.15
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2015-04-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|