Sha256: 4e80aedebaf32837e8edb250c632a938b8a07b535d570d619b6ba719e419d848

Contents?: true

Size: 1.05 KB

Versions: 44

Compression:

Stored size: 1.05 KB

Contents

# encoding: utf-8

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

      class ImproperStatusError < ArgumentError
        def initialize(value)
          super("Value #{value.inspect} isn't permitted. Choose one of: #{AMQ::Client::Openable::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

44 entries across 44 versions & 1 rubygems

Version Path
amq-client-0.7.0.alpha27 lib/amq/client/openable.rb
amq-client-0.7.0.alpha26 lib/amq/client/openable.rb
amq-client-0.7.0.alpha25 lib/amq/client/openable.rb
amq-client-0.7.0.alpha24 lib/amq/client/openable.rb