Class: Quality::Process

Inherits:
Object
  • Object
show all
Defined in:
lib/quality/process.rb

Overview

Wrapper around IO.popen that allows exit status to be mocked in tests.

Instance Method Summary collapse

Constructor Details

#initialize(full_cmd, dependencies = {}) ⇒ Process

Returns a new instance of Process.



7
8
9
10
11
# File 'lib/quality/process.rb', line 7

def initialize(full_cmd,
               dependencies = {})
  @full_cmd = full_cmd
  @popener = dependencies[:popener] || IO
end

Instance Method Details

#runObject



13
14
15
16
17
18
# File 'lib/quality/process.rb', line 13

def run
  @popener.popen(@full_cmd) do |file|
    yield file
  end
  $CHILD_STATUS.exitstatus if $CHILD_STATUS
end