File tree Expand file tree Collapse file tree 2 files changed +15
-0
lines changed
Expand file tree Collapse file tree 2 files changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -41,13 +41,26 @@ def [](key)
4141
4242 def []=( key , value )
4343 @logged_in_adapter [ key ] = value if @logged_in
44+ old_value = @logged_out_adapter [ key ]
4445 @logged_out_adapter [ key ] = value
46+
47+ decrement_participation ( key , old_value ) if decrement_participation? ( old_value , value )
4548 end
4649
4750 def delete ( key )
4851 @logged_in_adapter . delete ( key )
4952 @logged_out_adapter . delete ( key )
5053 end
54+
55+ private
56+
57+ def decrement_participation? ( old_value , value )
58+ !old_value . nil? && !value . nil? && old_value != value
59+ end
60+
61+ def decrement_participation ( key , value )
62+ Split . redis . hincrby ( "#{ key } :#{ value } " , 'participant_count' , -1 )
63+ end
5164 end
5265 end
5366end
Original file line number Diff line number Diff line change 2626 it '#[]=' do
2727 expect ( logged_in_adapter_instance ) . to receive ( :[]= ) . with ( 'my_key' , 'my_value' )
2828 expect ( logged_out_adapter_instance ) . to receive ( :[]= ) . with ( 'my_key' , 'my_value' )
29+ expect ( logged_out_adapter_instance ) . to receive ( :[] ) . with ( 'my_key' ) { nil }
2930 subject [ 'my_key' ] = 'my_value'
3031 end
3132
6061 it '#[]=' do
6162 expect_any_instance_of ( logged_in_adapter ) . not_to receive ( :[]= )
6263 expect ( logged_out_adapter_instance ) . to receive ( :[]= ) . with ( 'my_key' , 'my_value' )
64+ expect ( logged_out_adapter_instance ) . to receive ( :[] ) . with ( 'my_key' ) { nil }
6365 subject [ 'my_key' ] = 'my_value'
6466 end
6567
You can’t perform that action at this time.
0 commit comments