Sha256: 7555f029ca2bd20fcb5b191a9e8b1f2875999e759158c6e279149f3a2097797c

Contents?: true

Size: 1.25 KB

Versions: 4

Compression:

Stored size: 1.25 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 = rc_and_msg.output ? "#{output}\n#{other.output}" : other.output if other.output.present?
      rc_and_msg.error_msg = rc_and_msg.error_msg ? "#{error_msg}\n#{other.error_msg}" : 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

4 entries across 4 versions & 1 rubygems

Version Path
queue_dispatcher-1.1.9 lib/queue_dispatcher/rc_and_msg.rb
queue_dispatcher-1.1.8 lib/queue_dispatcher/rc_and_msg.rb
queue_dispatcher-1.1.7 lib/queue_dispatcher/rc_and_msg.rb
queue_dispatcher-1.1.6 lib/queue_dispatcher/rc_and_msg.rb