class RubygemsCheckReplacementVulnerability::Repository

Attributes

repo_url[R]
work_dir[R]

Public Class Methods

new(repo_url, work_dir) click to toggle source
# File lib/rubygems_check_replacement_vulnerability/repository.rb, line 7
def initialize(repo_url, work_dir)
  @repo_url = repo_url
  @work_dir = work_dir
end

Public Instance Methods

checkout(hash) click to toggle source
# File lib/rubygems_check_replacement_vulnerability/repository.rb, line 38
def checkout(hash)
  Dir.chdir(@work_dir) do
    run_command("git checkout #{hash} --quiet")
  end
end
find_file(file, prefix = nil) click to toggle source
# File lib/rubygems_check_replacement_vulnerability/repository.rb, line 44
def find_file(file, prefix = nil)
  array =
    if prefix
      [@work_dir, prefix, file]
    else
      [@work_dir, file]
    end

  Pathname.new(File.join(*array))
end
find_version_tag(version) click to toggle source
# File lib/rubygems_check_replacement_vulnerability/repository.rb, line 34
def find_version_tag(version)
  tags.find { |tag| tag == version || tag == "v#{version}" }
end
git_clone() click to toggle source
# File lib/rubygems_check_replacement_vulnerability/repository.rb, line 12
def git_clone
  Dir.chdir(@work_dir) do
    run_command("git clone #{@repo_url} . --quiet")
  end
end
tags() click to toggle source
# File lib/rubygems_check_replacement_vulnerability/repository.rb, line 18
def tags
  return @tags if @tags

  tags = []

  Dir.chdir(@work_dir) do
    stdout = `git tag`

    stdout.each_line do |line|
      tags << line.strip
    end
  end

  @tags = tags
end