Module: Bandit::Memoizable
- Included in:
- EpsilonGreedyPlayer
- Defined in:
- lib/bandit/memoizable.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
-
#memoize(key, time = 60) ⇒ Object
remember a block for some time (60 seconds by default).
Class Method Details
.included(base) ⇒ Object
27 28 29 |
# File 'lib/bandit/memoizable.rb', line 27 def self.included(base) base.extend(ClassMethods) end |
Instance Method Details
#memoize(key, time = 60) ⇒ Object
remember a block for some time (60 seconds by default)
4 5 6 7 8 9 10 11 12 13 |
# File 'lib/bandit/memoizable.rb', line 4 def memoize(key, time=60) @memoized ||= {} @memoized_times ||= {} now = Time.now.to_i if not @memoized.has_key?(key) or now > @memoized_times[key] @memoized[key] = yield @memoized_times[key] = now + time end @memoized[key] end |