Module: Memoist::InstanceMethods
- Defined in:
- lib/memoist.rb
Instance Method Summary collapse
- #flush_cache(*method_names) ⇒ Object
- #memoize_all ⇒ Object
- #prime_cache(*method_names) ⇒ Object
- #unmemoize_all ⇒ Object
Instance Method Details
#flush_cache(*method_names) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/memoist.rb', line 69 def flush_cache(*method_names) if method_names.empty? prefix = Memoist.unmemoized_prefix+"_" method_names = (methods + private_methods + protected_methods).collect do |method_name| if method_name.to_s.start_with?(prefix) method_name[prefix.length..-1] end end.compact end method_names.each do |method_name| ivar = Memoist.memoized_ivar_for(method_name) remove_instance_variable(ivar) if instance_variable_defined?(ivar) end end |
#memoize_all ⇒ Object
41 42 43 |
# File 'lib/memoist.rb', line 41 def memoize_all prime_cache end |
#prime_cache(*method_names) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/memoist.rb', line 49 def prime_cache(*method_names) if method_names.empty? prefix = Memoist.unmemoized_prefix+"_" method_names = methods.collect do |method_name| if method_name.to_s.start_with?(prefix) method_name[prefix.length..-1] end end.compact end method_names.each do |method_name| if method(Memoist.unmemoized_method_for(method_name)).arity == 0 __send__(method_name) else ivar = Memoist.memoized_ivar_for(method_name) instance_variable_set(ivar, {}) end end end |
#unmemoize_all ⇒ Object
45 46 47 |
# File 'lib/memoist.rb', line 45 def unmemoize_all flush_cache end |