state_inspector 1.0.4 → 1.0.5

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: 91d767ee5f26bb5a8d1ac2fe4020ce0740e53f56
4
- data.tar.gz: b32d13e6c904410ea7ec8dd58526f3443ec2a372
3
+ metadata.gz: 72700c70c4a6ff8411cc8d3d4188833605c87e62
4
+ data.tar.gz: e10277112555d4e16efaf567058e9c2734c2dc7c
5
5
  SHA512:
6
- metadata.gz: a07daae821a47633196917e6f92370928b508fed1878fe8a7943d93abc0cc19ef49bbc0451ca8a4e245b9006c7787f6584707de1912de0180d714d4f259a3c90
7
- data.tar.gz: f2655063826c0b80f2c4b49cb17f693f5dffd70e41fecf0a631b3a78dd1243ca8288ce31035a8f1b772d205db0196b5bf7d62eeeec6bc8efda0c20435b926801
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[obj]
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[obj]
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
- class_key = key.respond_to?(:class_exec) ? key : key.class
22
- reporters.has_key?(key) || reporters.has_key?(class_key)
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
@@ -1,3 +1,3 @@
1
1
  module StateInspector
2
- VERSION = "1.0.4"
2
+ VERSION = "1.0.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: state_inspector
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel P. Clark