Module: Citrus::ModuleNameHelpers

Defined in:
lib/citrus/file.rb

Overview

Some helper methods for rules that alias module_name and don’t want to use Kernel#eval to retrieve Module objects.

Instance Method Summary collapse

Instance Method Details

#module_basenameObject



23
24
25
# File 'lib/citrus/file.rb', line 23

def module_basename
  module_segments.last
end

#module_nameObject

:nodoc:



9
10
11
# File 'lib/citrus/file.rb', line 9

def module_name
  capture(:module_name)
end

#module_namespaceObject



17
18
19
20
21
# File 'lib/citrus/file.rb', line 17

def module_namespace
  module_segments[0...-1].inject(Object) do |namespace, constant|
    constant.empty? ? namespace : namespace.const_get(constant)
  end
end

#module_segmentsObject



13
14
15
# File 'lib/citrus/file.rb', line 13

def module_segments
  @module_segments ||= module_name.value.split('::')
end