Module: JSI::Memoize

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

Instance Method Summary collapse

Instance Method Details

#jsi_clear_memo(key, *args) ⇒ Object



95
96
97
98
99
100
101
102
103
104
# File 'lib/jsi/util.rb', line 95

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

#jsi_memoize(key, *args_) ⇒ Object



87
88
89
90
91
92
93
# File 'lib/jsi/util.rb', line 87

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