Class: Rukawa::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/rukawa/runner.rb

Constant Summary collapse

DEFAULT_REFRESH_INTERVAL =
3

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(root_job_net) ⇒ Runner

Returns a new instance of Runner.



13
14
15
# File 'lib/rukawa/runner.rb', line 13

def initialize(root_job_net)
  @root_job_net = root_job_net
end

Class Method Details

.run(job_net, batch_mode = false, refresh_interval = DEFAULT_REFRESH_INTERVAL) ⇒ Object



9
10
11
# File 'lib/rukawa/runner.rb', line 9

def self.run(job_net, batch_mode = false, refresh_interval = DEFAULT_REFRESH_INTERVAL)
  new(job_net).run(batch_mode, refresh_interval)
end

Instance Method Details

#run(batch_mode = false, refresh_interval = DEFAULT_REFRESH_INTERVAL) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/rukawa/runner.rb', line 17

def run(batch_mode = false, refresh_interval = DEFAULT_REFRESH_INTERVAL)
  displayed_at = Time.at(0)
  promise = @root_job_net.run do
    unless batch_mode
      if Time.now - displayed_at >= refresh_interval
        displayed_at = Time.now
        Overview.display_running_status(@root_job_net)
      end
    end
  end
  futures = promise.value

  Overview.display_running_status(@root_job_net) unless batch_mode
  puts "Finished #{@root_job_net.name} in #{@root_job_net.formatted_elapsed_time_from}"

  if futures.all?(&:fulfilled?)
    true
  else
    false
  end
end