Class: Module
- Inherits:
-
Object
- Object
- Module
- Defined in:
- lib/cafe_car/core_ext/module.rb
Instance Method Summary collapse
-
#define_class(name, **macros) ⇒ Object
Shorthand for ‘const_set(name.camelize, Class.new(parent) { … })`.
Instance Method Details
#define_class(name, **macros) ⇒ Object
Shorthand for ‘const_set(name.camelize, Class.new(parent) { … })`. Useful when defining classes in macros.
6 7 8 9 10 11 12 13 14 |
# File 'lib/cafe_car/core_ext/module.rb', line 6 def define_class(name, *, **macros, &) name = name.to_s.camelize raise NameError, "class exists: #{name}" if const_defined?(name, false) klass = Class.new(*) do macros.each { |key, value| send(key, *value) } class_eval(&) if block_given? end const_set name, klass end |