state_inspector 1.0.4 → 1.0.5
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.
- checksums.yaml +4 -4
- data/README.md +9 -0
- data/lib/state_inspector/helper.rb +2 -2
- data/lib/state_inspector/reporter.rb +10 -2
- data/lib/state_inspector/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 72700c70c4a6ff8411cc8d3d4188833605c87e62
|
|
4
|
+
data.tar.gz: e10277112555d4e16efaf567058e9c2734c2dc7c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 62c55544741697c23ae00f3eeeb2db4e58b857bf2aeddf5d7ad96789ff97195843a980ad28c150593c294c58205276b451a4f503672f51c43251f7899a68463c
|
|
7
|
+
data.tar.gz: 2989ba2193539f42d838985208ff4f4b9506b3bf1758a0904c0d819e9221402e8a8a163200e09bf6754aed5ab34f910f94d869a9d390f4c022018a6437a99a0b
|
data/README.md
CHANGED
|
@@ -119,6 +119,15 @@ use `state_inspector.skip_setter_snoops` (before any toggling) or the helper `to
|
|
|
119
119
|
will cleanly remove its anti-setter hook once done (meaning the next `toggle_informant` will inject the
|
|
120
120
|
informant code into all setters).
|
|
121
121
|
|
|
122
|
+
The helper block also pipes in the current observer for the object you're toggling. So you may access
|
|
123
|
+
it within the block by pipe assigning it to a variable.
|
|
124
|
+
|
|
125
|
+
```ruby
|
|
126
|
+
toggle_snoop(m) do |observer|
|
|
127
|
+
observer # Whatever observer happens to be assigned to this object or its class
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
```
|
|
122
131
|
|
|
123
132
|
## Observers
|
|
124
133
|
|
|
@@ -12,7 +12,7 @@ module StateInspector
|
|
|
12
12
|
Reporter[obj] = observer
|
|
13
13
|
end
|
|
14
14
|
obj.toggle_informant
|
|
15
|
-
value = yield Reporter
|
|
15
|
+
value = yield Reporter.get(obj)
|
|
16
16
|
ensure
|
|
17
17
|
obj.toggle_informant
|
|
18
18
|
(old_observer.nil? ? Reporter.drop(obj) : Reporter[obj] = old_observer) if observer
|
|
@@ -26,7 +26,7 @@ module StateInspector
|
|
|
26
26
|
Reporter[obj] = observer
|
|
27
27
|
end
|
|
28
28
|
obj.toggle_informant
|
|
29
|
-
value = yield Reporter
|
|
29
|
+
value = yield Reporter.get(obj)
|
|
30
30
|
ensure
|
|
31
31
|
obj.toggle_informant
|
|
32
32
|
si = obj.respond_to?(:class_exec) ? obj : obj.class
|
|
@@ -18,8 +18,16 @@ module StateInspector
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def has_observer? key
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
reporters.has_key?(key) || (reporters.has_key?(key.class) if key.respond_to?(:class_exec))
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def get key
|
|
25
|
+
unless key.respond_to?(:class_exec)
|
|
26
|
+
unless reporters.has_key?(key)
|
|
27
|
+
return self[key.class]
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
self[key]
|
|
23
31
|
end
|
|
24
32
|
|
|
25
33
|
def drop key
|