module ModulePlus::Identification

Public Instance Methods

full_name() click to toggle source
# File lib/module_plus/identification.rb, line 7
def full_name
  my_klass.to_s
end
full_names() click to toggle source
# File lib/module_plus/identification.rb, line 10
def full_names
  full_name.split(/::/)
end
nest_names() click to toggle source
# File lib/module_plus/identification.rb, line 13
def nest_names
  full_names.inject([]) do |list, name|
    list << (list.empty? ? name : "#{list.last}::#{name}")
  end
end
nests() click to toggle source
# File lib/module_plus/identification.rb, line 28
def nests
  #
  nest_names.map { |name| eval(name) } # rubocop:disable Security/Eval
end
outer_names() click to toggle source
# File lib/module_plus/identification.rb, line 23
def outer_names
  r = nest_names
  r.take(r.size - 1)
end
outers() click to toggle source
# File lib/module_plus/identification.rb, line 37
def outers
  outer_names.map { |n| eval(n) } # rubocop:disable Security/Eval
end
root() click to toggle source
# File lib/module_plus/identification.rb, line 33
def root
  eval(root_name) # rubocop:disable Security/Eval
end
root_name() click to toggle source
# File lib/module_plus/identification.rb, line 19
def root_name
  nest_names.first
end

Private Instance Methods

my_klass() click to toggle source
# File lib/module_plus/identification.rb, line 44
def my_klass
  if self.is_a? Module
    self
  else
    self.class
  end
end