@@ -67,9 +67,9 @@ def age
67
67
68
68
memoize :name , :age
69
69
70
- def sleep ( initial_delay , hours = 8 , mins = 5 )
70
+ def sleep ( hours , mins = 5 , seconds : 0 )
71
71
@counter . call ( :sleep )
72
- hours
72
+ hours * 3600 + mins * 60 + seconds
73
73
end
74
74
memoize :sleep
75
75
@@ -241,19 +241,25 @@ def test_memoization
241
241
242
242
3 . times { assert_equal 'Josh' , @person . name }
243
243
assert_equal 1 , @person . name_calls
244
+
245
+ 3 . times { assert_equal 'Josh' , @person . name ( memoist_reload : true ) }
246
+ assert_equal 4 , @person . name_calls
244
247
end
245
248
246
249
def test_memoize_with_optional_arguments
247
- assert_equal 4 , @person . sleep ( 4 , 4 )
250
+ assert_equal 15000 , @person . sleep ( 4 , 10 )
248
251
assert_equal 1 , @person . sleep_calls
249
252
250
- 3 . times { assert_equal 4 , @person . sleep ( 4 , 4 ) }
253
+ 3 . times { assert_equal 15000 , @person . sleep ( 4 , 10 ) }
251
254
assert_equal 1 , @person . sleep_calls
252
255
256
+ 3 . times { assert_equal 15000 , @person . sleep ( 4 , 10 , seconds : 0 ) }
257
+ assert_equal 2 , @person . sleep_calls
258
+
253
259
# There has been exactly one sleep call due to memoization
254
260
# Now, with reload, we'll have 3 more calls
255
- 3 . times { assert_equal 10 , @person . sleep ( 4 , 10 , memoist_reload : true ) }
256
- assert_equal 4 , @person . sleep_calls
261
+ 3 . times { assert_equal 15000 , @person . sleep ( 4 , 10 , memoist_reload : true ) }
262
+ assert_equal 5 , @person . sleep_calls
257
263
end
258
264
259
265
def test_memoize_with_options_hash
@@ -295,6 +301,8 @@ def test_reloadable
295
301
assert_equal 2 , @calculator . counter
296
302
assert_equal 3 , @calculator . counter ( true )
297
303
assert_equal 3 , @calculator . counter
304
+ assert_equal 4 , @calculator . counter ( memoist_reload : true )
305
+ assert_equal 4 , @calculator . counter
298
306
end
299
307
300
308
def test_flush_cache
0 commit comments