Module: ModulePlus::Identification
- Defined in:
- lib/module_plus/identification.rb
Instance Method Summary collapse
- #full_name ⇒ Object
- #full_names ⇒ Object
- #nest_names ⇒ Object
- #nests ⇒ Object
- #outer_names ⇒ Object
- #outers ⇒ Object
- #root ⇒ Object
- #root_name ⇒ Object
Instance Method Details
#full_name ⇒ Object
8 9 10 |
# File 'lib/module_plus/identification.rb', line 8 def full_name my_klass.to_s end |
#full_names ⇒ Object
11 12 13 |
# File 'lib/module_plus/identification.rb', line 11 def full_names full_name.split(/::/) end |
#nest_names ⇒ Object
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 |
#nests ⇒ Object
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_names ⇒ Object
24 25 26 27 |
# File 'lib/module_plus/identification.rb', line 24 def outer_names r = nest_names r.take(r.size - 1) end |
#outers ⇒ Object
38 39 40 |
# File 'lib/module_plus/identification.rb', line 38 def outers outer_names.map { |n| eval(n) } # rubocop:disable Security/Eval end |
#root ⇒ Object
34 35 36 |
# File 'lib/module_plus/identification.rb', line 34 def root eval(root_name) # rubocop:disable Security/Eval end |
#root_name ⇒ Object
20 21 22 |
# File 'lib/module_plus/identification.rb', line 20 def root_name nest_names.first end |