mirror of
https://github.com/pry/pry.git
synced 2022-11-09 12:35:05 -05:00
removed module_introspection_helpers.rb
This commit is contained in:
parent
9e7287a18f
commit
28ea23c2bd
2 changed files with 0 additions and 132 deletions
|
@ -2,4 +2,3 @@ require "pry/helpers/base_helpers"
|
|||
require "pry/helpers/options_helpers"
|
||||
require "pry/helpers/command_helpers"
|
||||
require "pry/helpers/text"
|
||||
require "pry/helpers/module_introspection_helpers"
|
||||
|
|
|
@ -1,131 +0,0 @@
|
|||
class Pry
|
||||
module Helpers
|
||||
module ModuleIntrospectionHelpers
|
||||
attr_accessor :module_object
|
||||
|
||||
def module_object
|
||||
if @module_object
|
||||
@module_object
|
||||
else
|
||||
name = args.first
|
||||
@module_object = WrappedModule.from_str(name, target)
|
||||
if @module_object
|
||||
sup = @module_object.ancestors.select do |anc|
|
||||
anc.class == @module_object.wrapped.class
|
||||
end[opts[:super]]
|
||||
@module_object = sup ? Pry::WrappedModule(sup) : nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# @param [String] input
|
||||
# @param [Binding] target The binding context of the input.
|
||||
# @return [Symbol] type of input
|
||||
def input_type(input, target)
|
||||
if input == ""
|
||||
:blank
|
||||
elsif target.eval("defined? #{input} ") =~ /variable|constant/ &&
|
||||
target.eval(input).respond_to?(:source_location)
|
||||
:sourcable_object
|
||||
elsif co = retrieve_code_object_from_string(input, target)
|
||||
co.is_a?(Pry::Method) ? :method : :module
|
||||
elsif target.eval("defined?(#{input})") =~ /variable|constant/
|
||||
:variable_or_constant
|
||||
elsif find_command(input)
|
||||
:command
|
||||
else
|
||||
:unknown
|
||||
end
|
||||
rescue SyntaxError
|
||||
if find_command(input)
|
||||
:command
|
||||
else
|
||||
:unknown
|
||||
end
|
||||
end
|
||||
|
||||
def process(name)
|
||||
input = args.join(" ").gsub(/\"/,"")
|
||||
type = input_type(input, target)
|
||||
|
||||
code_or_doc = case type
|
||||
when :blank
|
||||
process_blank
|
||||
when :sourcable_object
|
||||
process_sourcable_object
|
||||
when :method
|
||||
process_method
|
||||
when :module
|
||||
process_module
|
||||
when :variable_or_constant
|
||||
process_variable_or_constant
|
||||
when :command
|
||||
process_command
|
||||
else
|
||||
saught_in_vain = (input =~ /[.#]/ ? 'undefined method' :
|
||||
input =~ (/::|^[A-Z]/) ? 'uninitialized constant' :
|
||||
input =~ /^$/ ? 'uninitialized global' :
|
||||
'undefined local variable or method')
|
||||
command_error("#{saught_in_vain} `#{input}'", true)
|
||||
end
|
||||
|
||||
render_output(code_or_doc, opts)
|
||||
end
|
||||
|
||||
def process_blank
|
||||
if mod = extract_module_from_internal_binding
|
||||
@module_object = mod
|
||||
process_module
|
||||
elsif meth = extract_method_from_binding
|
||||
@method_object = meth
|
||||
process_method
|
||||
else
|
||||
command_error("no current source", false)
|
||||
end
|
||||
end
|
||||
|
||||
def extract_module_from_internal_binding
|
||||
if args.empty? && internal_binding?(target)
|
||||
mod = target_self.is_a?(Module) ? target_self : target_self.class
|
||||
Pry::WrappedModule(mod)
|
||||
end
|
||||
end
|
||||
|
||||
def extract_method_from_binding
|
||||
Pry::Method.from_binding(target)
|
||||
end
|
||||
|
||||
def process_variable_or_constant
|
||||
name = args.first
|
||||
object = target.eval(name)
|
||||
|
||||
@module_object = Pry::WrappedModule(object.class)
|
||||
process_module
|
||||
end
|
||||
|
||||
def module_start_line(mod, candidate_rank=0)
|
||||
if opts.present?(:'base-one')
|
||||
1
|
||||
else
|
||||
mod.candidate(candidate_rank).line
|
||||
end
|
||||
end
|
||||
|
||||
def use_line_numbers?
|
||||
opts.present?(:b) || opts.present?(:l)
|
||||
end
|
||||
|
||||
def attempt
|
||||
rank = 0
|
||||
begin
|
||||
yield(rank)
|
||||
rescue Pry::CommandError
|
||||
raise if rank > (module_object.number_of_candidates - 1)
|
||||
rank += 1
|
||||
retry
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Reference in a new issue