Module: Mimic::Class
- Defined in:
- lib/mimic/class.rb
Class Method Summary collapse
- .build(subject_class, &blk) ⇒ Object
- .class_name(cls, class_id) ⇒ Object
- .define_class(subject_class, &blk) ⇒ Object
- .set_constant(mimic_class, subject_class) ⇒ Object
Class Method Details
.build(subject_class, &blk) ⇒ Object
3 4 5 |
# File 'lib/mimic/class.rb', line 3 def self.build(subject_class, &blk) define_class(subject_class, &blk) end |
.class_name(cls, class_id) ⇒ Object
24 25 26 27 28 29 30 |
# 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) ⇒ Object
7 8 9 10 11 |
# 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) ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# 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 |