Module: Byebug::FileFunctions
- Included in:
- Command, CommandProcessor, InfoFunctions, Interface, RegularState
- Defined in:
- lib/byebug/helper.rb
Overview
Utilities for interaction with files
Instance Method Summary collapse
-
#get_line(filename, lineno) ⇒ Object
Reads line number
lineno
from file namedfilename
. -
#get_lines(filename) ⇒ Object
Reads lines of source file
filename
into an array. -
#n_lines(filename) ⇒ Object
Returns the number of lines in file
filename
in a portable, one-line-at-a-time way. -
#normalize(filename) ⇒ Object
Regularize file name.
Instance Method Details
#get_line(filename, lineno) ⇒ Object
Reads line number lineno
from file named filename
16 17 18 19 20 21 |
# File 'lib/byebug/helper.rb', line 16 def get_line(filename, lineno) File.open(filename) do |f| f.gets until f.lineno == lineno - 1 f.gets end end |
#get_lines(filename) ⇒ Object
Reads lines of source file filename
into an array
9 10 11 |
# File 'lib/byebug/helper.rb', line 9 def get_lines(filename) File.foreach(filename).reduce([]) { |a, e| a << e.chomp } end |
#n_lines(filename) ⇒ Object
Returns the number of lines in file filename
in a portable, one-line-at-a-time way.
27 28 29 |
# File 'lib/byebug/helper.rb', line 27 def n_lines(filename) File.foreach(filename).reduce(0) { |a, _e| a + 1 } end |
#normalize(filename) ⇒ Object
Regularize file name.
34 35 36 37 38 39 40 41 42 |
# File 'lib/byebug/helper.rb', line 34 def normalize(filename) return filename if ['(irb)', '-e'].include?(filename) return File.basename(filename) if Setting[:basename] path = File.(filename) File.exist?(path) ? File.realpath(path) : filename end |