Module: OpenNamespace

Defined in:
lib/open_namespace/version.rb,
lib/open_namespace/class_methods.rb,
lib/open_namespace/open_namespace.rb

Defined Under Namespace

Modules: ClassMethods

Constant Summary collapse

VERSION =

open_namespace version

'0.3.2'

Class Method Summary collapse

Class Method Details

.constant_path(name) ⇒ String

Maps a constant name to a likely file path.

Parameters:

  • name (String, Symbol)

    The constant name.

Returns:

  • (String)

    The file path that the constant is likely to be defined within.

Since:

  • 0.3.0



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/open_namespace/open_namespace.rb', line 19

def OpenNamespace.constant_path(name)
  path = name.to_s.dup

  # back-ported from extlib's String#to_const_path
  path.gsub!(/::/,'/')

  # back-ported from extlib's String#snake_case
  unless path.match(/\A[A-Z]+\z/)
    path.gsub!(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
    path.gsub!(/([a-z])([A-Z])/, '\1_\2')
  end

  path.downcase!
  return path
end

.included(base) ⇒ Object



4
5
6
# File 'lib/open_namespace/open_namespace.rb', line 4

def self.included(base)
  base.extend ClassMethods
end