class Dependor::ClassNameResolver

Attributes

search_modules[R]

Public Class Methods

new(search_modules) click to toggle source
# File lib/dependor/class_name_resolver.rb, line 5
def initialize(search_modules)
  @search_modules = search_modules
end

Public Instance Methods

for_name(name) click to toggle source
# File lib/dependor/class_name_resolver.rb, line 9
def for_name(name)
  class_name = camelize(name)
  modules = search_modules + [Object]
  klass = nil

  modules.each do |mod|
    klass = mod.const_get(class_name) rescue nil
    break if klass
  end

  klass
end

Private Instance Methods

camelize(symbol) click to toggle source
# File lib/dependor/class_name_resolver.rb, line 24
def camelize(symbol)
  string = symbol.to_s
  string = string.gsub(/_\w/) { |match| match[1].upcase }
  return string.gsub(/^\w/) { |match| match.upcase }
end