Sha256: ba71f7f3271d3bfc058903b008e7663e803f0cebf977ccd06670f137bee6c520

Contents?: true

Size: 631 Bytes

Versions: 21

Compression:

Stored size: 631 Bytes

Contents

module Zeitwerk::RealModName
  UNBOUND_METHOD_MODULE_NAME = Module.instance_method(:name)
  private_constant :UNBOUND_METHOD_MODULE_NAME

  # Returns the real name of the class or module, as set after the first
  # constant to which it was assigned (or nil).
  #
  # The name method can be overridden, hence the indirection in this method.
  #
  # @param mod [Class, Module]
  # @return [String, nil]
  if UnboundMethod.method_defined?(:bind_call)
    def real_mod_name(mod)
      UNBOUND_METHOD_MODULE_NAME.bind_call(mod)
    end
  else
    def real_mod_name(mod)
      UNBOUND_METHOD_MODULE_NAME.bind(mod).call
    end
  end
end

Version data entries

21 entries across 20 versions & 6 rubygems

Version Path
opal-zeitwerk-0.3.0 opal/zeitwerk/real_mod_name.rb
opal-zeitwerk-0.2.4 opal/zeitwerk/real_mod_name.rb
opal-zeitwerk-0.2.3 opal/zeitwerk/real_mod_name.rb
opal-zeitwerk-0.2.2 opal/zeitwerk/real_mod_name.rb
opal-zeitwerk-0.2.1 opal/zeitwerk/real_mod_name.rb
grape-extra_validators-2.0.0 vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.4.0/lib/zeitwerk/real_mod_name.rb
zeitwerk-2.4.0 lib/zeitwerk/real_mod_name.rb
zeitwerk-2.3.1 lib/zeitwerk/real_mod_name.rb
argon-1.3.1 vendor/bundle/ruby/2.7.0/gems/zeitwerk-2.3.0/lib/zeitwerk/real_mod_name.rb
symbolic_enum-1.1.5 vendor/bundle/ruby/2.7.0/gems/zeitwerk-2.3.0/lib/zeitwerk/real_mod_name.rb
zeitwerk-2.3.0 lib/zeitwerk/real_mod_name.rb
opal-zeitwerk-0.2.0 opal/zeitwerk/real_mod_name.rb
opal-zeitwerk-0.1.0 opal/zeitwerk/real_mod_name.rb
opal-zeitwerk-0.0.4 opal/zeitwerk/real_mod_name.rb
zuora_connect_ui-0.10.0 vendor/ruby/2.6.0/gems/zeitwerk-2.2.1/lib/zeitwerk/real_mod_name.rb
zuora_connect_ui-0.10.0 vendor/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/real_mod_name.rb
zeitwerk-2.2.2 lib/zeitwerk/real_mod_name.rb
opal-zeitwerk-0.0.3 opal/zeitwerk/real_mod_name.rb
zuora_connect_ui-0.9.2 vendor/ruby/2.6.0/gems/zeitwerk-2.2.1/lib/zeitwerk/real_mod_name.rb
opal-zeitwerk-0.0.2 opal/zeitwerk/real_mod_name.rb