Module: Kernel
- Defined in:
- lib/midori/core_ext/define_class.rb
Overview
Meta-programming Kernel for Syntactic Sugars
Instance Method Summary collapse
-
#define_class(name, ancestor = Object) { ... } ⇒ Class
This method is implemented to dynamically generate class with given name and template.
-
#define_error(*args) ⇒ nil
Define a batch of error handler with given name.
Instance Method Details
#define_class(name, ancestor = Object) { ... } ⇒ Class
This method is implemented to dynamically generate class with given name and template. Referenced from Ruby China
10 11 12 13 14 |
# File 'lib/midori/core_ext/define_class.rb', line 10 def define_class(name, ancestor = Object) Object.const_set(name, Class.new(ancestor)) Object.const_get(name).class_eval(&Proc.new) if block_given? Object.const_get(name) end |
#define_error(*args) ⇒ nil
Define a batch of error handler with given name
22 23 24 25 26 27 28 |
# File 'lib/midori/core_ext/define_class.rb', line 22 def define_error(*args) args.each do |arg| class_name = arg.to_s.split('_').collect(&:capitalize).join define_class(class_name, StandardError) end nil end |