class Pry::Command::AmendLine
def amended_input(string)
-
(String)
- A new string with the amendments applied to it.
Parameters:
-
string
(String
) -- The string to amend.
def amended_input(string) input_array = eval_string.each_line.to_a if arg_string == "!" delete_from_array(input_array, line_range) elsif arg_string.start_with?(">") insert_into_array(input_array, line_range) else replace_in_array(input_array, line_range) end input_array.join end
def delete_from_array(array, range)
def delete_from_array(array, range) array.slice!(range) end
def insert_into_array(array, range)
def insert_into_array(array, range) insert_slot = Array(range).first array.insert(insert_slot, arg_string[1..-1] + "\n") end
def line_count
-
(Fixnum)
- The number of lines currently in `eval_string` (the input buffer).
def line_count eval_string.lines.count end
def line_range
-
(Range, Fixnum)
- The lines or line.
def line_range start_line_number, end_line_number = start_and_end_line_number if start_line_number zero_indexed_range_from_one_indexed_numbers(start_line_number, end_line_number) else line_count - 1 end end
def process
def process raise CommandError, "No input to amend." if eval_string.empty? eval_string.replace amended_input(eval_string) run "fix-indent" run "show-input" end
def replace_in_array(array, range)
def replace_in_array(array, range) array[range] = arg_string + "\n" end
def start_and_end_line_number
-
(Array
-, nil)
def start_and_end_line_number start_line_number, end_line_number = args end_line_number ||= start_line_number.to_i [start_line_number.to_i, end_line_number.to_i] if start_line_number end
def zero_indexed_range_from_one_indexed_numbers(start_line_number, end_line_number)
-
(Range)
- The zero-indexed range.
Parameters:
-
end_line_number
(Fixnum
) -- One-indexed number. -
start_line_number
(Fixnum
) -- One-indexed number.
def zero_indexed_range_from_one_indexed_numbers(start_line_number, end_line_number) # FIXME: one_index_number is a horrible name for this method one_index_number(start_line_number)..one_index_number(end_line_number) end