module Memoize
Module Memoize
Public Instance Methods
[](property)
click to toggle source
# File lib/memoize.rb, line 22 def [](property) @memoize = {} unless defined?(@memoize) if (value = @memoize[property]) return value end current_item = @item property_path = '' property.split('.').each do |elem| if property_path.empty? property_path << elem else property_path << '.' << elem end if (val = @memoize[property_path]) current_item = val else begin current_item = current_item.send(elem) rescue StandardError current_item = nil end end break if current_item.nil? @memoize[property_path] = current_item end @memoize[property] = current_item end
[]=(property, value)
click to toggle source
# File lib/memoize.rb, line 67 def []=(property, value) @memoize = {} unless defined?(@memoize) @memoize[property] = value end
clear(property)
click to toggle source
# File lib/memoize.rb, line 58 def clear(property) @memoize = {} unless defined?(@memoize) @memoize.clear[property] if @memoize[property] end
clear_all()
click to toggle source
# File lib/memoize.rb, line 63 def clear_all @memoize = {} end