module Supertype::ClassMethods

Add a single method to get a class given the subtype name

Public Instance Methods

subtype_class(name) click to toggle source

Get the class given the name of a subtype @return [Class] the concrete class with the given subtype name

# File lib/nose/util.rb, line 92
def subtype_class(name)
  class_name = self.name.split('::')[0..-2]
  class_name << name.split('_').map do |name_part|
    name_part = name_part[0].upcase + name_part[1..-1]
    name_part.sub 'Id', 'ID'
  end.join
  class_name[-1] = class_name[-1] + self.name.split('::').last

  class_name.reduce(Object) do |mod, name_part|
    mod.const_get(name_part)
  end
end