module Mimic::Class
Public Class Methods
build(subject_class, &blk)
click to toggle source
# File lib/mimic/class.rb, line 3 def self.build(subject_class, &blk) define_class(subject_class, &blk) end
class_name(cls, class_id)
click to toggle source
# File lib/mimic/class.rb, line 24 def self.class_name(cls, class_id) if cls.name.nil? return "C#{class_id}" else return "#{cls.name.gsub('::', '_')}_#{class_id}" end end
define_class(subject_class, &blk)
click to toggle source
# File lib/mimic/class.rb, line 7 def self.define_class(subject_class, &blk) mimic_class = ::Class.new(subject_class, &blk) set_constant(mimic_class, subject_class) mimic_class end
set_constant(mimic_class, subject_class)
click to toggle source
# File lib/mimic/class.rb, line 13 def self.set_constant(mimic_class, subject_class) class_id = mimic_class.object_id class_name = class_name(subject_class, class_id) unless self.const_defined?(class_name, false) self.const_set(class_name, mimic_class) end class_name end