Method: Jets::Stack.new_class
- Defined in:
- lib/jets/stack.rb
.new_class(class_name, &block) ⇒ Object
klass = Jets::Stack.new_class(“Bucket3”)
22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/jets/stack.rb', line 22 def new_class(class_name, &block) # https://stackoverflow.com/questions/4113479/dynamic-class-definition-with-a-class-name # Defining the constant this way gets around: SyntaxError: dynamic constant assignment error klass = Class.new(Jets::Stack) # First klass is an anonymous class. IE: class.name is nil klass = Object.const_set(class_name, klass) # now klass is a named class Jets::Stack.subclasses << klass # mimic inherited hook because # Must run class_eval after adding to subclasses in order for the resource declarations in the # so that the resources get registered to the right subclass. klass.class_eval(&block) klass # return klass end |