class GistGenerator::Serializers::Pretty

Attributes

gists[R]
options[R]

Public Class Methods

call(*args) click to toggle source
# File lib/gist_generator/serializers/pretty.rb, line 6
def self.call(*args)
  new(*args).call
end
new(gists, options = {}) click to toggle source
# File lib/gist_generator/serializers/pretty.rb, line 10
def initialize(gists, options = {})
  @gists = gists
  @options = options
end

Public Instance Methods

call() click to toggle source
# File lib/gist_generator/serializers/pretty.rb, line 15
def call
  gists.map { |gist| pretty_print gist }
end

Private Instance Methods

line_separator() click to toggle source
# File lib/gist_generator/serializers/pretty.rb, line 38
def line_separator
  options.fetch(:line_separator, "# ...\n\n")
end
needs_separator?(line_number, index, gist) click to toggle source
# File lib/gist_generator/serializers/pretty.rb, line 42
def needs_separator?(line_number, index, gist)
  line_number < (gist.line_numbers[index + 1] || gist.line_numbers.last) - 1
end
pretty_print(gist) click to toggle source
# File lib/gist_generator/serializers/pretty.rb, line 23
def pretty_print(gist)
  result = []

  result << line_separator if gist.line_numbers.first != 1

  gist.line_numbers.each.with_index do |line_number, i|
    result << gist.numbered_lines[line_number]
    result << line_separator if needs_separator?(line_number, i, gist)
  end

  result << line_separator if gist.line_numbers.last != gist.file_number_of_lines

  result
end