Module: MemoizeTtl
- Defined in:
- lib/memoize_ttl.rb,
lib/memoize_ttl/version.rb
Constant Summary collapse
- VERSION =
"0.0.2"
Instance Method Summary collapse
Instance Method Details
#memoize_ttl(name, ttl_seconds, &block) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/memoize_ttl.rb', line 5 def memoize_ttl(name, ttl_seconds, &block) class_variable_set("@@block_#{name}", block) module_eval <<-EOS, __FILE__, __LINE__ + 1 def #{name} if !@#{name}.nil? && @#{name}_expire_at > Time.now return @#{name} end @#{name} = instance_exec(&@@block_#{name}) @#{name}_expire_at = Time.now + #{ttl_seconds} @#{name} end EOS end |