module Kernel
Meta-programming Kernel
for Syntactic Sugars
Public Instance Methods
define_class(name, ancestor = Object)
click to toggle source
This method is implemented to dynamically generate class with given name and template. Referenced from Ruby China @param [String] name name of class @param [Class] ancestor class to be inherited @yield inner block to be inserted into class @return [Class] the class defined
# 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)
click to toggle source
Define a batch of error handler with given name @param [Array<Symbol>] args names to be defined @return [nil] nil @example
define_error(:foo_error, :bar_error) => nil, FooError < StandardError and BarError < StandardError would be defined
# 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