class Spud::Shell::Command
Constants
- Handle
Attributes
result[R]
Public Class Methods
call(command, driver: nil, silent: false, handle: STDOUT)
click to toggle source
# File lib/spud/shell/command.rb, line 18 def self.call(command, driver: nil, silent: false, handle: STDOUT) cmd = new(command, driver: driver, silent: silent, handle: handle) cmd.issue! cmd.result end
commander(driver)
click to toggle source
# File lib/spud/shell/command.rb, line 25 def self.commander(driver) Commander.new(driver) end
new(command, driver: nil, silent: false, handle: STDOUT)
click to toggle source
# File lib/spud/shell/command.rb, line 30 def initialize(command, driver: nil, silent: false, handle: STDOUT) @command = command @driver = driver @silent = silent @handle = handle @result = T.let(nil, T.nilable(Result)) end
Public Instance Methods
issue!()
click to toggle source
# File lib/spud/shell/command.rb, line 40 def issue! capturer = StringIO.new Open3.popen2e(@command) do |_, out, thread| @driver&.register_subprocess(thread.pid) loop do line = out.gets break unless line @handle.write line unless @silent capturer.puts line end @result = Result.new(capturer.string, T.cast(thread.value, Process::Status)) end @driver&.register_subprocess(nil) end