Sha256: 4dd73d96b132d8a4174959a784929f55f7de7de601a1faee36d99e9c4c2ce880
Contents?: true
Size: 1.3 KB
Versions: 4
Compression:
Stored size: 1.3 KB
Contents
module Methadone # <b>Methadone Internal - treat as private</b> # # A wrapper/enhancement of Process::Status that handles coersion and expected # nonzero statuses class ProcessStatus # The exit status, either directly from a Process::Status or derived from a non-Int value. attr_reader :exitstatus # Create the ProcessStatus with the given status. # # status:: if this responds to #exitstatus, that method is used to extract the exit code. If it's # and Int, that is used as the exit code. Otherwise, # it's truthiness is used: 0 for truthy, 1 for falsey. # expected:: an Int or Array of Int representing the expected exit status, other than zero, # that represent "success". def initialize(status,expected) @exitstatus = derive_exitstatus(status) @success = ([0] + Array(expected)).include?(@exitstatus) end # True if the exit status was a successul (i.e. expected) one. def success? @success end private def derive_exitstatus(status) status = if status.respond_to? :exitstatus status.exitstatus else status end if status.kind_of? Integer status elsif status 0 else 1 end end end end
Version data entries
4 entries across 4 versions & 1 rubygems