module Platform::Api::Proxy
Public Class Methods
add(klass, proxy_class)
click to toggle source
# File lib/platform/api/proxy.rb, line 5 def self.add(klass, proxy_class) proxy_class.ensure_valid_class_name (Platform::Config.proxies[klass.name] ||= SortedSet.new) << proxy_class end
for(instance, version=nil)
click to toggle source
# File lib/platform/api/proxy.rb, line 27 def self.for(instance, version=nil) return proxy_class_for(instance.class, version).new(instance) end
proxy_class_for(klass, version=nil)
click to toggle source
# File lib/platform/api/proxy.rb, line 10 def self.proxy_class_for(klass, version=nil) unless proxy_array = proxies_for(klass) raise ArgumentError, "No proxy for class: #{klass.name}" end proxy_array = proxy_array.to_a if version.nil? proxy_class = proxy_array.last else version = version.to_i proxy_class = proxy_array.reverse.find {|ii| ii.api_version <= version} end raise ArgumentError "No proxy for version: #{version}" if proxy_class.nil? proxy_class end
reset()
click to toggle source
# File lib/platform/api/proxy.rb, line 31 def self.reset Platform::Config.proxies.clear end
Private Class Methods
proxies_for(klass)
click to toggle source
# File lib/platform/api/proxy.rb, line 37 def self.proxies_for(klass) Platform::Config.load_proxies if Platform::Config.proxies.empty? klass.ancestors.detect {|ii| return Platform::Config.proxies[ii.name] if Platform::Config.proxies.has_key?(ii.name)} return nil end