minor refactoring

This commit is contained in:
Ryan Fitzgerald 2012-01-07 23:56:42 -08:00
parent 266ba33385
commit c6da40778a
1 changed files with 25 additions and 18 deletions

View File

@ -4,7 +4,7 @@ class Pry
case obj
when Code
obj
when ::Method, Pry::Method, UnboundMethod, Proc
when ::Method, UnboundMethod, Proc, Pry::Method
Code.from_method(obj)
else
Code.new(obj)
@ -49,7 +49,7 @@ class Pry
attr_accessor :code_type
# @param [Array<String>] lines
# @param [Array<String>, String, IO] lines
# @param [Fixnum?] (1) start_line
# @param [Symbol?] (:ruby) code_type
def initialize(lines=[], start_line=1, code_type=:ruby)
@ -71,42 +71,49 @@ class Pry
end
alias << push
def before(line_num, lines=1)
return self unless line_num
def select(&blk)
dup.instance_eval do
@lines = @lines.select { |l, ln| ln >= line_num - lines && ln < line_num }
@lines = @lines.select(&blk)
self
end
end
def before(line_num, lines=1)
return self unless line_num
select { |l, ln| ln >= line_num - lines && ln < line_num }
end
def between(start_line, end_line)
return self unless start_line && end_line
start_line -= 1 unless start_line < 0
end_line -= 1 unless end_line < 0
case start_line
when Range
range = start_line
else
start_line -= 1 unless start_line < 1
end_line -= 1 unless end_line < 1
range = start_line..end_line
end
dup.instance_eval do
@lines = @lines[start_line..end_line] || []
@lines = @lines[range] || []
self
end
end
def around(line_num, lines=1)
return self unless line_num
dup.instance_eval do
@lines = @lines.select { |l, ln| ln >= line_num - lines && ln <= line_num + lines }
self
end
select { |l, ln| ln >= line_num - lines && ln <= line_num + lines }
end
def after(line_num, lines=1)
return self unless line_num
select { |l, ln| ln > line_num && ln <= line_num + lines }
end
dup.instance_eval do
@lines = @lines.select { |l, ln| ln > line_num && ln <= line_num + lines }
self
end
def grep(pattern)
return self unless pattern
select { |l, ln| l =~ pattern }
end
# @param [Symbol?] color