Module: JSI::Util::Memoize

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

Instance Method Summary collapse

Instance Method Details

#jsi_clear_memo(key, *args) ⇒ Object



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

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



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

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