class TurboTest::ConstantTracer::Constructor
Public Class Methods
new(original_class)
click to toggle source
# File lib/turbo_test_constant_tracer/constructor.rb, line 6 def initialize(original_class) @klass = original_class @klass_name = original_class.name.gsub("::", "") end
Public Instance Methods
construct()
click to toggle source
# File lib/turbo_test_constant_tracer/constructor.rb, line 11 def construct return ProxyKlass.const_get(@klass_name) if proxy_class_defined? Klass.define(@klass, @klass_name).tap do prepend_equality_operators_to_original_class prepend_equality_operators Numeric prepend_equality_operators Comparable end end
Private Instance Methods
prepend_equality_operators(mod)
click to toggle source
# File lib/turbo_test_constant_tracer/constructor.rb, line 33 def prepend_equality_operators(mod) return unless @klass.ancestors.include?(mod) mod.singleton_class.prepend(CaseEquality) mod.singleton_class.prepend(Equality) end
prepend_equality_operators_to_original_class()
click to toggle source
# File lib/turbo_test_constant_tracer/constructor.rb, line 27 def prepend_equality_operators_to_original_class s_class = @klass.singleton_class s_class.prepend(CaseEquality) s_class.prepend(Equality) end
proxy_class_defined?()
click to toggle source
# File lib/turbo_test_constant_tracer/constructor.rb, line 23 def proxy_class_defined? ProxyKlass.const_defined? @klass_name, false end