class Bookwatch::Ingest::GitCloner

Attributes

version_control_system[R]

Public Class Methods

new(version_control_system) click to toggle source
# File lib/bookwatch/ingest/git_cloner.rb, line 8
def initialize(version_control_system)
  @version_control_system = version_control_system
end

Public Instance Methods

call(source_repo_name: nil, source_ref: "master", destination_parent_dir: nil, destination_dir_name: nil) click to toggle source
# File lib/bookwatch/ingest/git_cloner.rb, line 12
def call(source_repo_name: nil,
         source_ref: "master",
         destination_parent_dir: nil,
         destination_dir_name: nil)
  dest_dir = DestinationDirectory.new(source_repo_name, destination_dir_name)
  copied_to = Pathname(destination_parent_dir).join(dest_dir)
  version_control_system.clone(
    RepoIdentifier.new(source_repo_name),
    dest_dir,
    path: destination_parent_dir,
    checkout: source_ref
  )
  WorkingCopy.new(
    copied_to: copied_to,
    full_name: source_repo_name,
    ref: source_ref
  )
end