class Pry
Public Instance Methods
children_of(klass)
click to toggle source
# File lib/pry-hier.rb, line 36 def children_of(klass) @classes.select { |obj| obj.superclass == klass } end
colour_name(klass)
click to toggle source
# File lib/pry-hier.rb, line 40 def colour_name(klass) Pry.config.color ? colorize_code(klass) : klass.inspect end
hash_for(klass)
click to toggle source
# File lib/pry-hier.rb, line 29 def hash_for(klass) children = children_of(klass).map(&method(:hash_for)) colour_name(klass).yield_self do |name| children.empty? ? name : { name => children } end end
options(opt)
click to toggle source
# File lib/pry-hier.rb, line 14 def options(opt) opt.on :s, :include_singletons, 'Include singleton classes' end
print_tree_for(klass)
click to toggle source
# File lib/pry-hier.rb, line 20 def print_tree_for(klass) set_class_list(klass) tree = hash_for(klass) case tree when Hash then output.print TTY::Tree.new(hash_for(klass)).render else output.puts colour_name(klass) end end
process()
click to toggle source
# File lib/pry-hier.rb, line 8 def process klass = WrappedModule.from_str(args[0]) raise CommandError, 'class or module name required' unless klass print_tree_for(klass.wrapped) end
set_class_list(klass)
click to toggle source
# File lib/pry-hier.rb, line 44 def set_class_list(klass) @classes = ObjectSpace.each_object.select do |obj| obj.is_a?(Class) && (opts.include_singletons? || ! obj.singleton_class?) end end