module TurboTestRubyRefinements::ModuleName
Constants
- ANONYMOUS_CLASS_MATCHER
Public Instance Methods
translated_name()
click to toggle source
# File lib/turbo_test_ruby_refinements/module/name.rb, line 54 def translated_name return if name.nil? name.gsub(TurboTestRubyRefinements::ModuleName::ANONYMOUS_CLASS_MATCHER) do |_match| obj = Fiddle::Pointer.new(Integer(Regexp.last_match(2))).to_value obj.turbo_test_name end end
turbo_test_name()
click to toggle source
Resolves singleton class names to the name of the class
class AClass;end AClass.singleton_class.name
> “#<Class:AClass>”¶ ↑
AClass.turbo_test_name
> “AClass”¶ ↑
anonymous = class << AClass; class SomeClass; self; end; end anonymous.name
> “#<Class:0x00007fd72a1bce30>::SomeClass”¶ ↑
anonymous.turbo_test_name
> “AClass::SomeClass”¶ ↑
# File lib/turbo_test_ruby_refinements/module/name.rb, line 23 def turbo_test_name return translated_name unless singleton_class? obj = ObjectSpace.each_object(self).first case obj when Module obj.turbo_test_name else obj.class.turbo_test_name end end
turbo_test_original_class()
click to toggle source
Returns either self for a class or the class from which a class is the singleton class
class AClass;end AClass.singleton_class.name
> Class¶ ↑
AClass.singleton_class.turbo_test_original_class
> AClass¶ ↑
# File lib/turbo_test_ruby_refinements/module/name.rb, line 42 def turbo_test_original_class return self unless singleton_class? obj = ObjectSpace.each_object(self).first case obj when Module obj.turbo_test_original_class else obj.class.turbo_test_original_class end end