Class: GitMassDo::Puller

Inherits:
Object
  • Object
show all
Includes:
Process
Defined in:
lib/git_mass_do/puller.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dir) ⇒ Puller

Returns a new instance of Puller.



7
8
9
# File 'lib/git_mass_do/puller.rb', line 7

def initialize(dir)
  @dir = dir
end

Instance Attribute Details

#dirObject (readonly)

Returns the value of attribute dir.



5
6
7
# File 'lib/git_mass_do/puller.rb', line 5

def dir
  @dir
end

Instance Method Details

#format_result(repositories, statuses) ⇒ Object



24
25
26
27
28
29
# File 'lib/git_mass_do/puller.rb', line 24

def format_result(repositories, statuses)
  repositories.zip(statuses).each do |repo, status|
    puts "Pulled #{repo} successfully" if status && status.success?
    puts "Failed to pull #{repo}" unless status && status.success?
  end
end

#pullObject



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/git_mass_do/puller.rb', line 11

def pull
  dirs = Dir.entries(dir)
    .select { |f| File.directory? f }
    .reject { |f| f =~ /^\./  } # ., .. and .git and the like

  dirs.each do |dir|
    spawn "git -C #{dir} pull -r origin"
  end

  _, statuses = waitall.transpose
  format_result(dirs, statuses)
end