module Ecoportal::API::Common::BaseClass

Public Instance Methods

class_resolver(name, klass) click to toggle source
# File lib/ecoportal/api/common/base_class.rb, line 6
def class_resolver(name, klass)
  define_singleton_method(name) { resolve_class(klass) }
  define_method(name) { self.class.resolve_class(klass) }
end
resolve_class(klass) click to toggle source
# File lib/ecoportal/api/common/base_class.rb, line 11
def resolve_class(klass)
  @resolved ||= {}
  @resolved[klass] ||=
    case klass
      when Class
        klass
      when String
        Kernel.const_get(klass)
      when Symbol
        resolve_class(self.send(klass))
      else
        raise "Unknown class: #{klass}"
    end
end