Module: JSI::Memoize

Included in:
JSI, Base, Schema, SchemaClasses
Defined in:
lib/jsi/util.rb

Instance Method Summary collapse

Instance Method Details

#clear_memo(key, *args) ⇒ Object



115
116
117
118
119
120
121
122
123
124
# File 'lib/jsi/util.rb', line 115

def clear_memo(key, *args)
  @memos ||= {}
  if @memos[key]
    if args.empty?
      @memos[key].clear
    else
      @memos[key].delete(args)
    end
  end
end

#memoize(key, *args_) ⇒ Object



107
108
109
110
111
112
113
# File 'lib/jsi/util.rb', line 107

def memoize(key, *args_)
  @memos ||= {}
  @memos[key] ||= Hash.new do |h, args|
    h[args] = yield(*args)
  end
  @memos[key][args_]
end