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