Sha256: 554c3198fba2efcae152435031d8532e64c1302286557097e95c3671b533683e
Contents?: true
Size: 1.31 KB
Versions: 2
Compression:
Stored size: 1.31 KB
Contents
module OptparsePlus # <b>OptparsePlus 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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
optparse-plus-3.0.1 | lib/optparse_plus/process_status.rb |
optparse-plus-3.0.0 | lib/optparse_plus/process_status.rb |