Class: GitMulticast::Statuser
- Inherits:
-
Object
- Object
- GitMulticast::Statuser
- Includes:
- Process
- Defined in:
- lib/git_multicast/statuser.rb
Instance Attribute Summary collapse
-
#dir ⇒ Object
readonly
Returns the value of attribute dir.
Instance Method Summary collapse
- #get_statuses ⇒ Object
-
#initialize(dir) ⇒ Statuser
constructor
A new instance of Statuser.
- #read_output(streams) ⇒ Object
- #statuses ⇒ Object
Constructor Details
#initialize(dir) ⇒ Statuser
Returns a new instance of Statuser.
7 8 9 |
# File 'lib/git_multicast/statuser.rb', line 7 def initialize(dir) @dir = dir end |
Instance Attribute Details
#dir ⇒ Object (readonly)
Returns the value of attribute dir.
5 6 7 |
# File 'lib/git_multicast/statuser.rb', line 5 def dir @dir end |
Instance Method Details
#get_statuses ⇒ Object
11 12 13 14 15 16 |
# File 'lib/git_multicast/statuser.rb', line 11 def get_statuses start_time = Time.now output_status_zip = statuses OutputFormatter.format(output_status_zip, start_time) end |
#read_output(streams) ⇒ Object
35 36 37 38 39 40 |
# File 'lib/git_multicast/statuser.rb', line 35 def read_output(streams) streams.map do |r, w| w.close unless w.closed? r.read end end |
#statuses ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/git_multicast/statuser.rb', line 18 def statuses dirs = Dir.entries(dir) .select { |f| File.directory? f } .reject { |f| f =~ /^\./ } # ., .. and .git and the like streams = dirs.map do |dir| r, w = IO.pipe w.write("Repo: #{dir}\n") spawn("cd #{dir} && git status", out: w, err: w) [r, w] end _, statuses = waitall.transpose output = read_output(streams) output.zip(statuses) end |