Module: ModulePlus::Identification

Defined in:
lib/module_plus/identification.rb

Instance Method Summary collapse

Instance Method Details

#full_nameObject



8
9
10
# File 'lib/module_plus/identification.rb', line 8

def full_name
  my_klass.to_s
end

#full_namesObject



11
12
13
# File 'lib/module_plus/identification.rb', line 11

def full_names
  full_name.split(/::/)
end

#nest_namesObject



14
15
16
17
18
# File 'lib/module_plus/identification.rb', line 14

def nest_names
  full_names.inject([]) do |list, name|
    list << (list.empty? ? name : "#{list.last}::#{name}")
  end
end

#nestsObject



29
30
31
32
# File 'lib/module_plus/identification.rb', line 29

def nests
  #
  nest_names.map { |name| eval(name) } # rubocop:disable Security/Eval
end

#outer_namesObject



24
25
26
27
# File 'lib/module_plus/identification.rb', line 24

def outer_names
  r = nest_names
  r.take(r.size - 1)
end

#outersObject



38
39
40
# File 'lib/module_plus/identification.rb', line 38

def outers
  outer_names.map { |n| eval(n) } # rubocop:disable Security/Eval
end

#rootObject



34
35
36
# File 'lib/module_plus/identification.rb', line 34

def root
  eval(root_name) # rubocop:disable Security/Eval
end

#root_nameObject



20
21
22
# File 'lib/module_plus/identification.rb', line 20

def root_name
  nest_names.first
end