Sha256: bd09024c645b25b463840e2ab7985be4c83853571f98e883e234161cd1116d23
Contents?: true
Size: 578 Bytes
Versions: 5
Compression:
Stored size: 578 Bytes
Contents
module Kernel #:nodoc: # This method is implemented to dynamically generate class with given name and template. # Referenced from {Ruby China}[https://ruby-china.org/topics/17382] 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 def define_error(*args) args.each do |arg| class_name = arg.to_s.split('_').map { |word| word[0] = word[0].upcase; word }.join define_class(class_name, StandardError) end end end
Version data entries
5 entries across 5 versions & 1 rubygems