document_hash 0.0.12 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -45,6 +45,16 @@ module DocumentHash
45
45
  values.select{|v| v.is_a? self.class }.each{ |v| v.reset! }
46
46
  end
47
47
 
48
+ def touch!
49
+ self.each do |key, value|
50
+ if value.is_a? self.class
51
+ value.touch!
52
+ else
53
+ changed_key key,value
54
+ end
55
+ end
56
+ end
57
+
48
58
  def merge other
49
59
  dup.merge! other
50
60
  end
@@ -1,3 +1,3 @@
1
1
  module DocumentHash
2
- VERSION = "0.0.12"
2
+ VERSION = "0.0.13"
3
3
  end
@@ -135,13 +135,37 @@ describe DocumentHash::Core do
135
135
  subject[:inner][:attribute].should == "hola"
136
136
  end
137
137
 
138
- it "converts itself to a hash", focus:true do
138
+ it "has a touch functionality that re runs the after change callback" do
139
+ subject = DocumentHash::Core[ { test: :value } ]
140
+ test_mock = mock("test")
141
+ test_mock.should_receive(:callback_mock).with( [:test], :value )
142
+
143
+ subject.after_change do |path,value|
144
+ test_mock.callback_mock path, value
145
+ end
146
+
147
+ subject.touch!
148
+ end
149
+
150
+ it "has a touch functionality that handle deeper hashes" do
151
+ subject = DocumentHash::Core[ { inner: { attribute: :value } } ]
152
+ test_mock = mock("test")
153
+ test_mock.should_receive(:callback_mock).with( [:inner, :attribute], :value )
154
+
155
+ subject.after_change do |path,value|
156
+ test_mock.callback_mock path, value
157
+ end
158
+
159
+ subject.touch!
160
+ end
161
+
162
+ it "converts itself to a hash" do
139
163
  subject = DocumentHash::Core[{ test: "test" }]
140
164
  hash = subject.to_hash
141
165
  hash.should be_an_instance_of Hash
142
166
  end
143
167
 
144
- it "converts internal hashes to hash", focus: true do
168
+ it "converts internal hashes to hash" do
145
169
  subject = DocumentHash::Core[{ test: { inner: "value" } }]
146
170
  hash = subject.to_hash
147
171
  hash[:test].should be_an_instance_of Hash
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.12
4
+ version: 0.0.13
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: 2013-05-30 00:00:00.000000000 Z
12
+ date: 2013-11-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec