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.



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

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

Instance Method Details

#runObject



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

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