Sha256: fc370cdb3a609f1a371b52a3560a51c669525a94b99b2496830256bf53846b4c

Contents?: true

Size: 1.16 KB

Versions: 6

Compression:

Stored size: 1.16 KB

Contents

module QueueDispatcher
  class RcAndMsg
    attr_accessor :rc, :output, :error_msg


    def self.good_rc(output, args = {})
      rc_and_msg = new
      rc_and_msg.good_rc(output, args)
    end


    def self.bad_rc(error_msg, args = {})
      rc_and_msg = new
      rc_and_msg.bad_rc(error_msg, args)
    end


    # Initializer
    def initialize(args = {})
      @rc = args[:rc].to_i if args[:rc]
      @output = args[:output]
      @error_msg = args[:error_msg]
      self
    end


    # Fake a good RC
    def good_rc(output, args = {})
      @rc = 0
      @output = output
      @error_msg = args[:error_msg]
      self
    end


    # Fake a bad RC
    def bad_rc(error_msg, args = {})
      @rc = 999
      @output = args[:output]
      @error_msg = error_msg
      self
    end


    # Addition
    def +(other)
      rc_and_msg = self.clone
      rc_and_msg.rc += other.rc
      rc_and_msg.output += "\n#{other.output}" if other.output.present?
      rc_and_msg.error_msg += "\n#{other.error_msg}" if other.error_msg.present?
      rc_and_msg
    end


    # Return hash
    def to_hash
      { :rc => @rc, :output => @output, :error_msg => @error_msg }
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
queue_dispatcher-1.1.5 lib/queue_dispatcher/rc_and_msg.rb
queue_dispatcher-1.1.4 lib/queue_dispatcher/rc_and_msg.rb
queue_dispatcher-1.1.3 lib/queue_dispatcher/rc_and_msg.rb
queue_dispatcher-1.1.2 lib/queue_dispatcher/rc_and_msg.rb
queue_dispatcher-1.1.1 lib/queue_dispatcher/rc_and_msg.rb
queue_dispatcher-1.1.0 lib/queue_dispatcher/rc_and_msg.rb