lib/looksee.rb in looksee-0.0.2 vs lib/looksee.rb in looksee-0.1.0
- old
+ new
@@ -30,12 +30,12 @@
# require 'looksee/shortcuts'
# lp some_object
#
# +lp+ returns a LookupPath object, which has +inspect+ defined to
# print things out pretty. By default, it shows public, protected,
-# and overridden methods. They're all colored, which makes showing
-# overridden methods not such a strange idea.
+# undefined, and overridden methods. They're all colored, which makes
+# showing overridden methods not such a strange idea.
#
# Some examples of the other shortcuts:
#
# lpi Array
# some_object.lookup_path
@@ -64,13 +64,15 @@
# recognized:
#
# * +:public+ - include public methods
# * +:protected+ - include protected methods
# * +:private+ - include private methods
+ # * +:undefined+ - include undefined methods (see Module#undef_method)
# * +:overridden+ - include methods overridden by subclasses
#
- # The default (if options is nil or omitted) is [:public].
+ # The default (if options is nil or omitted) is given by
+ # #default_lookup_path_options.
#
def lookup_path(object, *options)
normalized_options = Looksee.default_lookup_path_options.dup
hash_options = options.last.is_a?(Hash) ? options.pop : {}
options.each do |option|
@@ -81,11 +83,12 @@
end
#
# The default options passed to lookup_path.
#
- # Default: <tt>{:public => true, :protected => true, :overridden => true}</tt>
+ # Default: <tt>{:public => true, :protected => true, :undefined =>
+ # true, :overridden => true}</tt>
#
attr_accessor :default_lookup_path_options
#
# The width to use for displaying output, when not available in
@@ -102,10 +105,11 @@
#
# * :module
# * :public
# * :protected
# * :private
+ # * :undefined
# * :overridden
#
# The values are format strings. They should all contain a single
# "%s", which is where the name is inserted.
#
@@ -114,10 +118,11 @@
# {
# :module => "\e[1;37m%s\e[0m",
# :public => "\e[1;32m%s\e[0m",
# :protected => "\e[1;33m%s\e[0m",
# :private => "\e[1;31m%s\e[0m",
+ # :undefined => "\e[1;34m%s\e[0m",
# :overridden => "\e[1;30m%s\e[0m",
# }
#
attr_accessor :styles
@@ -134,17 +139,18 @@
end
modules
end
end
- self.default_lookup_path_options = {:public => true, :protected => true, :overridden => true}
+ self.default_lookup_path_options = {:public => true, :protected => true, :undefined => true, :overridden => true}
self.default_width = 80
self.styles = {
:module => "\e[1;37m%s\e[0m",
:public => "\e[1;32m%s\e[0m",
:protected => "\e[1;33m%s\e[0m",
:private => "\e[1;31m%s\e[0m",
+ :undefined => "\e[1;34m%s\e[0m",
:overridden => "\e[1;30m%s\e[0m",
}
class LookupPath
attr_reader :entries
@@ -160,10 +166,11 @@
# included.
#
# :public
# :protected
# :private
+ # :undefined
# :overridden
#
def self.for(object, options={})
entries = entries_for(object, options)
new(entries)
@@ -224,10 +231,11 @@
def initialize_for(seen, options)
add_methods(Looksee.internal_public_instance_methods(@module).map{|sym| sym.to_s} , :public , seen) if options[:public ]
add_methods(Looksee.internal_protected_instance_methods(@module).map{|sym| sym.to_s}, :protected, seen) if options[:protected]
add_methods(Looksee.internal_private_instance_methods(@module).map{|sym| sym.to_s} , :private , seen) if options[:private ]
+ add_methods(Looksee.internal_undefined_instance_methods(@module).map{|sym| sym.to_s}, :undefined, seen) if options[:undefined]
@methods.sort!
end
def grep(pattern)
methods = []
@@ -254,10 +262,10 @@
name
end
#
# Yield each method along with its visibility (:public,
- # :private, :protected, or :overridden).
+ # :private, :protected, :undefined, or :overridden).
#
def each
@methods.each do |name|
yield name, @visibilities[name]
end