File tree Expand file tree Collapse file tree 2 files changed +14
-3
lines changed
Expand file tree Collapse file tree 2 files changed +14
-3
lines changed Original file line number Diff line number Diff line change @@ -10,6 +10,12 @@ def add_observer(*args, &block)
1010 observers . add_observer ( *args , &block )
1111 end
1212
13+ # @return [Observable] self
14+ def with_observer ( *args , &block )
15+ add_observer *args , &block
16+ self
17+ end
18+
1319 # @return [Object] the deleted observer
1420 def delete_observer ( *args )
1521 observers . delete_observer ( *args )
Original file line number Diff line number Diff line change @@ -23,14 +23,19 @@ module Concurrent
2323 end
2424
2525 it 'uses the given observer set' do
26- expected = CopyOnWriteObserverSet . new
26+ expected = CopyOnWriteObserverSet . new
2727 subject . observers = expected
2828 subject . observers . should eql expected
2929 end
3030
3131 it 'delegates #add_observer' do
32- observer_set . should_receive ( :add_observer ) . with ( :observer )
33- subject . add_observer ( :observer )
32+ observer_set . should_receive ( :add_observer ) . with ( :observer ) . and_return { |v | v }
33+ subject . add_observer ( :observer ) . should eq :observer
34+ end
35+
36+ it 'delegates #with_observer' do
37+ observer_set . should_receive ( :add_observer ) . with ( :observer ) . and_return { |v | v }
38+ subject . with_observer ( :observer ) . should eq subject
3439 end
3540
3641 it 'delegates #delete_observer' do
You can’t perform that action at this time.
0 commit comments