Sha256: 09a7fffb72407ff9ccf231ece7f512c2a175f3612d2b582b6c9e44af5a0e749f

Contents?: true

Size: 1.06 KB

Versions: 24

Compression:

Stored size: 1.06 KB

Contents

# encoding: utf-8

module AMQ
  module Client
    module StatusMixin
      VALUES = [:opened, :closed, :opening, :closing].freeze

      class ImproperStatusError < ArgumentError
        def initialize(value)
          super("Value #{value.inspect} isn't permitted. Choose one of: #{AMQ::Client::StatusMixin::VALUES.inspect}")
        end
      end

      attr_reader :status
      def status=(value)
        if VALUES.include?(value)
          @status = value
        else
          raise ImproperStatusError.new(value)
        end
      end

      def opened?
        @status == :opened
      end
      alias open? opened?

      def closed?
        @status == :closed
      end



      def opening?
        @status == :opening
      end

      def closing?
        @status == :closing
      end


      def opened!
        @status = :opened
      end # opened!

      def closed!
        @status = :closed
      end # closed!



      def opening!
        @status = :opening
      end # opening!

      def closing!
        @status = :closing
      end # closing!
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
amq-client-0.7.0.alpha3 lib/amq/client/mixins/status.rb
amq-client-0.7.0.alpha2 lib/amq/client/mixins/status.rb
amq-client-0.7.0.alpha1 lib/amq/client/mixins/status.rb
amq-client-0.5.0 lib/amq/client/mixins/status.rb