class GistGenerator::Gist

Attributes

params[R]

Public Class Methods

new(params) click to toggle source
# File lib/gist_generator/gist.rb, line 5
def initialize(params)
  @params = params
end

Public Instance Methods

file_number_of_lines() click to toggle source
# File lib/gist_generator/gist.rb, line 23
def file_number_of_lines
  file.number_of_lines
end
line_numbers() click to toggle source
# File lib/gist_generator/gist.rb, line 15
def line_numbers
  @line_numbers ||= parsed_line_numbers || all_line_numbers
end
lines() click to toggle source
# File lib/gist_generator/gist.rb, line 9
def lines
  return file.lines unless line_numbers

  line_numbers.map { |line| file.lines[line - 1] }
end
numbered_lines() click to toggle source
# File lib/gist_generator/gist.rb, line 19
def numbered_lines
  @numbered_lines ||= line_numbers.zip(lines).to_h
end

Private Instance Methods

all_line_numbers() click to toggle source
# File lib/gist_generator/gist.rb, line 39
def all_line_numbers
  Array(1..file.number_of_lines)
end
file() click to toggle source
# File lib/gist_generator/gist.rb, line 31
def file
  @file ||= File.new(params[:repo_path], params[:file_path], params)
end
parsed_line_numbers() click to toggle source
# File lib/gist_generator/gist.rb, line 35
def parsed_line_numbers
  params[:line_numbers]&.map { |n| Array(n) }&.flatten
end