module Byebug::FileFunctions
def get_line(filename, lineno)
Reads line number +lineno+ from file named +filename+
def get_line(filename, lineno) File.open(filename) do |f| f.gets until f.lineno == lineno - 1 f.gets end end
def get_lines(filename)
Reads lines of source file +filename+ into an array
def get_lines(filename) File.foreach(filename).reduce([]) { |a, e| a << e.chomp } end
def n_lines(filename)
one-line-at-a-time way.
Returns the number of lines in file +filename+ in a portable,
def n_lines(filename) File.foreach(filename).reduce(0) { |a, _e| a + 1 } end
def normalize(filename)
Regularize file name.
def normalize(filename) return filename if ['(irb)', '-e'].include?(filename) return File.basename(filename) if Setting[:basename] path = File.expand_path(filename) File.exist?(path) ? File.realpath(path) : filename end