class GistGenerator::File

Attributes

file_path[R]
options[R]
repo_path[R]

Public Class Methods

new(repo_path, file_path, options) click to toggle source
# File lib/gist_generator/file.rb, line 6
def initialize(repo_path, file_path, options)
  @repo_path = repo_path
  @file_path = file_path
  @options = options
end

Public Instance Methods

lines() click to toggle source
# File lib/gist_generator/file.rb, line 12
def lines
  @lines ||= Faraday.get(content.download_url).body.lines
end
number_of_lines() click to toggle source
# File lib/gist_generator/file.rb, line 16
def number_of_lines
  lines.length
end

Private Instance Methods

client() click to toggle source
# File lib/gist_generator/file.rb, line 47
def client
  @client ||= Octokit::Client.new
end
commit() click to toggle source
# File lib/gist_generator/file.rb, line 32
def commit
  @commit ||=
    if commit_message_regex
      commits.find { |c| c.commit.message.match? commit_message_regex }
    end
end
commit_message_regex() click to toggle source
# File lib/gist_generator/file.rb, line 39
def commit_message_regex
  options[:commit_message_regex]
end
commits() click to toggle source
# File lib/gist_generator/file.rb, line 43
def commits
  @commits ||= client.commits(repo_path)
end
content() click to toggle source
# File lib/gist_generator/file.rb, line 24
def content
  client.contents repo_path, path: file_path, query: { ref: ref }
end
ref() click to toggle source
# File lib/gist_generator/file.rb, line 28
def ref
  commit ? commit.sha : 'master'
end