Class: Bookwatch::Ingest::GitCloner

Inherits:
Object
  • Object
show all
Defined in:
lib/bookwatch/ingest/git_cloner.rb

Instance Method Summary collapse

Constructor Details

#initialize(version_control_system) ⇒ GitCloner

Returns a new instance of GitCloner.



8
9
10
# File 'lib/bookwatch/ingest/git_cloner.rb', line 8

def initialize(version_control_system)
  @version_control_system = version_control_system
end

Instance Method Details

#call(source_repo_name: nil, source_ref: "master", destination_parent_dir: nil, destination_dir_name: nil) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 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