‘some_object.class.to_s’ doesn’t work because it returns the entire
hierarchy,
i.e ‘SomeModule::SomeClass’. I could do some string ops on that but it
seems
there would be an easier way. Here’s an example:
class MenuStyle
class Button < Style
end
end
class View
def initialize() @delegate = MenuStyle.const_get( self.class.to_s )
end
end
def initialize() @delegate = MenuStyle.const_get( self.class.to_s )
end
end
harp:~ > cat a.rb
#
# creates a class by class name
#
def klass_stamp(hierachy, *a, &b)
ancestors = hierachy.split(%r/::/)
parent = Object
while((child = ancestors.shift))
klass = parent.const_get child
parent = klass
end
klass::new(*a, &b)
end
hth.
-a
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.