Module: Looksee
- Defined in:
- lib/looksee/help.rb,
lib/looksee/clean.rb,
lib/looksee/editor.rb,
lib/looksee/adapter.rb,
lib/looksee/version.rb,
lib/looksee/core_ext.rb,
lib/looksee/inspector.rb,
lib/looksee/columnizer.rb,
lib/looksee/lookup_path.rb,
lib/looksee/adapter/base.rb
Defined Under Namespace
Modules: Adapter, Columnizer, ObjectMixin Classes: Editor, Help, Inspector, LookupPath
Constant Summary collapse
- Config =
Object.const_defined?(:RbConfig) ? ::RbConfig : ::Config
- NoMethodError =
Class.new(RuntimeError)
- NoSourceLocationError =
Class.new(RuntimeError)
- NoSourceFileError =
Class.new(RuntimeError)
- VERSION =
[5, 0, 0]
Class Attribute Summary collapse
-
.adapter ⇒ Object
The interpreter adapter.
-
.default_specifiers ⇒ Object
The default options passed to #look.
-
.default_width ⇒ Object
The width to use for displaying output, when not available in the COLUMNS environment variable.
-
.editor ⇒ Object
The editor command, used for Object#edit.
-
.ruby_engine ⇒ Object
Wrapper around RUBY_ENGINE that’s always defined.
-
.styles ⇒ Object
The default styles to use for the
inspect
strings.
Class Method Summary collapse
-
.[](object, *args) ⇒ Object
Return a Looksee::Inspector for the given
object
. -
.help ⇒ Object
Show a quick reference.
-
.rename(name) ⇒ Object
Rename the #look method, added to every object.
-
.safe_call(mod, name, receiver, *args) ⇒ Object
Call mod#method on receiver, ignoring any overrides in receiver’s class.
Class Attribute Details
.adapter ⇒ Object
The interpreter adapter.
Encapsulates the interpreter-specific functionality.
85 86 87 |
# File 'lib/looksee/clean.rb', line 85 def adapter @adapter end |
.default_specifiers ⇒ Object
The default options passed to #look.
Default: [:public, :protected, :private, :undefined, :overridden]
26 27 28 |
# File 'lib/looksee/clean.rb', line 26 def default_specifiers @default_specifiers end |
.default_width ⇒ Object
The width to use for displaying output, when not available in the COLUMNS environment variable.
Default: 80
34 35 36 |
# File 'lib/looksee/clean.rb', line 34 def default_width @default_width end |
.editor ⇒ Object
The editor command, used for Object#edit.
This string should contain a “%f”, which is replaced with the file name, and/or “%l” which is replaced with the line number. A “%%” is replaced with “%”.
If the LOOKSEE_EDITOR environment variable is set, it is used as the default. Otherwise, we use the following heuristic:
If EDITOR is set, we use that. If it looks like vi, emacs, or textmate, we also append options to position the cursor on the appropriate line. If EDITOR is not set, we use “vi +%l %f”.
78 79 80 |
# File 'lib/looksee/clean.rb', line 78 def editor @editor end |
.ruby_engine ⇒ Object
Wrapper around RUBY_ENGINE that’s always defined.
90 91 92 |
# File 'lib/looksee/clean.rb', line 90 def ruby_engine @ruby_engine end |
.styles ⇒ Object
The default styles to use for the inspect
strings.
This is a hash with keys:
-
: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.
Default:
{
:module => "\e[1;37m%s\e[0m", # white
:public => "\e[1;32m%s\e[0m", # green
:protected => "\e[1;33m%s\e[0m", # yellow
:private => "\e[1;31m%s\e[0m", # red
:undefined => "\e[1;34m%s\e[0m", # blue
:overridden => "\e[1;30m%s\e[0m", # black
}
62 63 64 |
# File 'lib/looksee/clean.rb', line 62 def styles @styles end |
Class Method Details
.[](object, *args) ⇒ Object
Return a Looksee::Inspector for the given object
.
args
is an optional list of specifiers.
* +:public+ - include public methods
* +:protected+ - include public methods
* +:private+ - include public methods
* +:undefined+ - include public methods (see Module#undef_method)
* +:overridden+ - include public methods
* +:nopublic+ - include public methods
* +:noprotected+ - include public methods
* +:noprivate+ - include public methods
* +:noundefined+ - include public methods (see Module#undef_method)
* +:nooverridden+ - include public methods
* a string - only include methods containing this string (may
be used multiple times)
* a regexp - only include methods matching this regexp (may
be used multiple times)
The default (if options is nil or omitted) is given by #default_lookup_path_options.
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/looksee/clean.rb', line 115 def [](object, *args) = {:visibilities => Set[], :filters => Set[]} (Looksee.default_specifiers + args).each do |arg| case arg when String, Regexp [:filters] << arg when :public, :protected, :private, :undefined, :overridden [:visibilities].add(arg) when :nopublic, :noprotected, :noprivate, :noundefined, :nooverridden visibility = arg.to_s.sub(/\Ano/, '').to_sym [:visibilities].delete(visibility) else raise ArgumentError, "invalid specifier: #{arg.inspect}" end end lookup_path = LookupPath.new(object) Inspector.new(lookup_path, ) end |
.help ⇒ Object
Show a quick reference.
137 138 139 |
# File 'lib/looksee/clean.rb', line 137 def help Help.new end |
.rename(name) ⇒ Object
Rename the #look method, added to every object. Example:
rename :_look
This renames Looksee’s #look method to #_look.
For backward compatibility, the old-style invocation is also supported. This is deprecated, and will shortly be removed.
rename :look => :_look
41 42 43 |
# File 'lib/looksee/core_ext.rb', line 41 def self.rename(name) ObjectMixin.rename(name) end |
.safe_call(mod, name, receiver, *args) ⇒ Object
Call mod#method on receiver, ignoring any overrides in receiver’s class.
142 143 144 |
# File 'lib/looksee/clean.rb', line 142 def safe_call(mod, name, receiver, *args) # :nodoc: mod.instance_method(name).bind(receiver).call(*args) end |