alakazam 0.4.1 → 0.4.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: 80c74b1273f97a6ac30b80d1b50441c7d695803f
4
- data.tar.gz: 7f4e8a68a42266d71c80f3ecb3ea65f1c01e33ab
3
+ metadata.gz: 2e28877b78856f39925c092c4919f76283cfd44a
4
+ data.tar.gz: 42763921bcbf8bc6d11561bae3b66af6cc497f42
5
5
  SHA512:
6
- metadata.gz: 75f09ac8cdf9858df87308e33e4740fd889dbbabaad8cae06ba4aed31d5a72771ee962a58c467fbbedd1d8df9d899fbc88b6e51467c307c35866f9ba9025fc84
7
- data.tar.gz: c3e1eacc06e38a51efe7cd265763f9a0ac9e3b327ae360e2dedd564568a7576400579e9e703230ea48597eef73f5a35a88181bc5e4cd0998e9d3aaa7109f79d1
6
+ metadata.gz: 5563afc96544696610e1d17821e7d8c078deb40df3c7abad5563bb65b80c8c128b87b82418b7db702dfa03c382d052e1ad78cfc9ffbb57ed08481df047c3a4b8
7
+ data.tar.gz: f7782cfd9533ab6d67e7593630462b7adf31007d8295ecbe3bf2a9c5bc40ae318437500fb7e78b623e0ca5b6505b57d8b374265ae221656e7243b87cfe7b0983
@@ -9,7 +9,7 @@
9
9
  #++
10
10
 
11
11
  module Alakazam
12
- def add_observer(observer, options = {})
12
+ def add_observer(observer = nil, options = {}, &block)
13
13
  on_change = if options.include? :on_fire
14
14
  options[:on_fire]
15
15
  elsif options.include? :on_change
@@ -34,7 +34,8 @@ module Alakazam
34
34
  end
35
35
  }
36
36
 
37
- __observers__[observer] = { on_change: on_change, methods: methods }
37
+ __observers__[block ] = { on_change: on_change, methods: methods } if block_given?
38
+ __observers__[observer] = { on_change: on_change, methods: methods } if observer
38
39
  end
39
40
  alias_method :is_observed_by, :add_observer
40
41
 
@@ -9,5 +9,5 @@
9
9
  #++
10
10
 
11
11
  module Alakazam
12
- VERSION = '0.4.1'
12
+ VERSION = '0.4.5'
13
13
  end
@@ -66,6 +66,34 @@ describe Alakazam do
66
66
 
67
67
  let(:shiftry) { Shiftry.new }
68
68
 
69
+ it 'invokes the given block when notified by observed class' do
70
+ shiftry.is_observed_by { |*things|
71
+ @counter += 1
72
+ }
73
+
74
+ shiftry.lol
75
+ shiftry.lol
76
+
77
+ shiftry.lel
78
+ shiftry.lel
79
+
80
+ @counter.should be 2
81
+ end
82
+
83
+ it 'invokes the given block without explicit notify when notified by observed class' do
84
+ shiftry.is_observed_by(nil, on_change: false) { |*things|
85
+ @counter += 1
86
+ }
87
+
88
+ shiftry.lol
89
+ shiftry.lol
90
+
91
+ shiftry.lel
92
+ shiftry.lel
93
+
94
+ @counter.should be 4
95
+ end
96
+
69
97
  it 'invokes a Proc when notified by observed class' do
70
98
  shiftry.is_observed_by logger
71
99
 
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.1
4
+ version: 0.4.5
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-03 00:00:00.000000000 Z
11
+ date: 2014-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake