alakazam 0.3 → 0.4
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/lib/alakazam/version.rb +1 -1
- data/tests/alakazam_spec.rb +35 -27
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7e546b8e9b56aa661e5dc502703e3ff6d8a516a
|
4
|
+
data.tar.gz: cba0f10b5cd8f9348bbac287a1b0780f4bd22fed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 895345f8dc171978d18f048807f5aa0e91c85cb64db60217bf161b4d8cbc5c401f7f01a4bdb5484fc37c5323ba36e4bd9b6705d33550ee14057b4e552150d144
|
7
|
+
data.tar.gz: d93f479e6621557200d303cd74186705f721b57a392467bc1688d4d9c014f1537c7371c9b9afb61b3d2696f6423ab997be33e77d362ed5d3267697a2ab6ecc4a
|
data/lib/alakazam/version.rb
CHANGED
data/tests/alakazam_spec.rb
CHANGED
@@ -31,35 +31,40 @@ class Shiftry
|
|
31
31
|
end
|
32
32
|
|
33
33
|
class Logger
|
34
|
+
def initialize
|
35
|
+
@i = 0
|
36
|
+
end
|
37
|
+
|
34
38
|
def update(*things)
|
35
|
-
|
39
|
+
@i += 1
|
40
|
+
end
|
41
|
+
|
42
|
+
def counter
|
43
|
+
@i
|
36
44
|
end
|
37
45
|
|
38
46
|
def self.on_fire(*things)
|
39
|
-
|
47
|
+
@@i = 0 if not defined? @@i
|
48
|
+
@@i += 1
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.counter
|
52
|
+
@@i
|
40
53
|
end
|
41
54
|
end
|
42
55
|
|
43
56
|
describe Alakazam do
|
44
57
|
before do
|
45
|
-
|
46
|
-
end
|
47
|
-
|
48
|
-
let(:counter) do
|
49
|
-
counter = $i
|
58
|
+
@counter = 0
|
50
59
|
end
|
51
60
|
|
52
61
|
let(:logger) do
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
let(:shiftry) do
|
57
|
-
shiftry = Shiftry.new
|
62
|
+
->(*things) {
|
63
|
+
@counter += 1
|
64
|
+
}
|
58
65
|
end
|
59
66
|
|
60
|
-
|
61
|
-
$i = 0
|
62
|
-
end
|
67
|
+
let(:shiftry) { Shiftry.new }
|
63
68
|
|
64
69
|
it 'invokes a Proc when notified by observed class' do
|
65
70
|
shiftry.is_observed_by logger
|
@@ -70,7 +75,7 @@ describe Alakazam do
|
|
70
75
|
shiftry.lel
|
71
76
|
shiftry.lel
|
72
77
|
|
73
|
-
counter.should be 2
|
78
|
+
@counter.should be 2
|
74
79
|
end
|
75
80
|
|
76
81
|
it 'invokes a Proc without explicit notify when notified by observed class' do
|
@@ -82,7 +87,7 @@ describe Alakazam do
|
|
82
87
|
shiftry.lel
|
83
88
|
shiftry.lel
|
84
89
|
|
85
|
-
counter.should be 4
|
90
|
+
@counter.should be 4
|
86
91
|
end
|
87
92
|
|
88
93
|
it 'invokes a Proc when notified by a class method of the observed class' do
|
@@ -91,27 +96,30 @@ describe Alakazam do
|
|
91
96
|
Shiftry.lul
|
92
97
|
Shiftry.lul
|
93
98
|
|
94
|
-
counter.should be 2
|
99
|
+
@counter.should be 2
|
95
100
|
end
|
96
101
|
|
97
102
|
it 'invokes the logger\'s custom and default method when notified by observed class' do
|
103
|
+
logger = Logger.new
|
104
|
+
|
98
105
|
shiftry.is_observed_by Logger.new, methods: [ :on_fire, :non_existing_method ]
|
99
|
-
shiftry.is_observed_by
|
106
|
+
shiftry.is_observed_by logger
|
100
107
|
|
101
108
|
shiftry.lol
|
102
109
|
|
103
|
-
counter.should be
|
110
|
+
logger.counter.should be 1
|
111
|
+
Logger.counter.should be 1
|
104
112
|
end
|
105
113
|
|
106
114
|
it 'invokes the logger\'s default method when a variable changes in the observed class' do
|
107
|
-
|
108
|
-
|
109
|
-
shiftry.lal = 3
|
110
|
-
shiftry.lal.should be 3
|
115
|
+
Logger.new.tap { |logger|
|
116
|
+
shiftry.is_observed_by logger, attributes: { var: :lal, notify: 'fired' }
|
111
117
|
|
112
|
-
|
113
|
-
|
118
|
+
shiftry.lal = 3
|
119
|
+
shiftry.lal.should be 3
|
114
120
|
|
115
|
-
|
121
|
+
shiftry.lal = 4
|
122
|
+
shiftry.lal.should be 4
|
123
|
+
}.counter.should be 2
|
116
124
|
end
|
117
125
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alakazam
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.4'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Giovanni Capuano
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|