Closed SamGerber-zz closed 7 years ago
It seems to me that passing true here should cause the ivar to continue growing?
$ pry [1] pry(main)> require 'memoist' => true [2] pry(main)> class Thing [2] pry(main)* extend Memoist [2] pry(main)* def grow(opts = {}) [2] pry(main)* @num ||= 0 [2] pry(main)* p 'growing' [2] pry(main)* @num += 1 [2] pry(main)* end [2] pry(main)* memoize :grow [2] pry(main)* end => :grow [3] pry(main)> thing = Thing.new => #<Thing:0x007f90c001b938> [4] pry(main)> thing.grow "growing" => 1 [5] pry(main)> thing.grow => 1 [6] pry(main)> thing.grow(true) "growing" => 2 [7] pry(main)> thing.grow(true) => 2 [8] pry(main)> thing.grow(true) => 2
Like so:
$ pry [1] pry(main)> require 'memoist' => true [2] pry(main)> class Thing [2] pry(main)* extend Memoist [2] pry(main)* def grow(opts) [2] pry(main)* @num ||= 0 [2] pry(main)* p 'growing' [2] pry(main)* @num += 1 [2] pry(main)* end [2] pry(main)* memoize :grow [2] pry(main)* end => :grow [3] pry(main)> thing = Thing.new => #<Thing:0x007f9e42ba2bc8> [4] pry(main)> thing.grow({}) "growing" => 1 [5] pry(main)> thing.grow({}) => 1 [6] pry(main)> thing.grow({}, true) "growing" => 2 [7] pry(main)> thing.grow({}, true) "growing" => 3 [8] pry(main)> thing.grow({}, true) "growing" => 4 [9] pry(main)> thing.grow({}) => 4 [10] pry(main)> thing.grow({hi: true}) "growing" => 5 [11] pry(main)> thing.grow({hi: true}) => 5 [12] pry(main)> thing.grow({hi: true}, true) "growing" => 6
My mistake, this works as expected. opts was swallowing the true. In order to get it to reload, a second argument must be passed: thing.grow({}, true)
opts
thing.grow({}, true)
It seems to me that passing true here should cause the ivar to continue growing?
Like so: