Sha256: 51c61aaf89044f225d1c9e4112a95361eaba02059675b45d83c41d20681d569d
Contents?: true
Size: 911 Bytes
Versions: 4
Compression:
Stored size: 911 Bytes
Contents
module Inch module CodeObject module Proxy class << self def for(code_object) @cache ||= {} if proxy_object = @cache[cache_key(code_object)] proxy_object else @cache[cache_key(code_object)] = class_for(code_object).new(code_object) end end private def class_for(code_object) class_name = code_object.class.to_s.split('::').last eval("::Inch::CodeObject::Proxy::#{class_name}") rescue Base end def cache_key(o) o.path end end end end end require_relative 'proxy/base' require_relative 'proxy/namespace_object' require_relative 'proxy/class_object' require_relative 'proxy/constant_object' require_relative 'proxy/method_object' require_relative 'proxy/method_parameter_object' require_relative 'proxy/module_object'
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
inch-0.1.3 | lib/inch/code_object/proxy.rb |
inch-0.1.2 | lib/inch/code_object/proxy.rb |
inch-0.1.1 | lib/inch/code_object/proxy.rb |
inch-0.1.0 | lib/inch/code_object/proxy.rb |