lib/cmds/result.rb in cmds-0.0.4 vs lib/cmds/result.rb in cmds-0.0.5

- old
+ new

@@ -1,26 +1,57 @@ class Cmds + # a {Result} is a simple data structure returned from calling {Cmds#capture} + # on a {Cmds} instance. + # + # it contains the exit status code, standard output and standard error, + # as well as the actual string command issued (after all substitutions). + # + # instances also have a few convenience methods. + # + # @!attribute [r] cmd + # @return [String] the command string that was executed. + # + # @!attribute [r] status + # @return [Fixnum] the command process' exit status code. + # + # @!attribute [r] out + # @return [String] the command process' standard output. + # + # @!attribute [r] err + # @return [String] the command process' standard error. + # class Result attr_reader :cmd, :status, :out, :err - + + # @param cmd [String] {#cmd} attribute. + # @param status [Fixnum] {#status} attribute. + # @param out [String] {#out} attribute. + # @param err [String] {#err} attribute. def initialize cmd, status, out, err @cmd = cmd @status = status @out = out @err = err end - + + # @return [Boolean] true if {#status} is `0`. def ok? @status == 0 end - + + # @return [Boolean] true if {#status} is not `0`. def error? ! ok? end - - # raises an error if there was one - # returns the Result so that it can be chained + + # raises an error if the command failed (exited with a {#status} other + # than `0`). + # + # @return [Result] it's self (so that it can be chained). + # + # @raise [SystemCallError] if the command failed. + # def assert if error? msg = NRSER.squish <<-BLOCK command `#{ @cmd }` exited with status #{ @status } and stderr #{ err.inspect } @@ -29,6 +60,6 @@ raise SystemCallError.new msg, @status end self end # raise_error end -end # class Cmds \ No newline at end of file +end # class Cmds