Sha256: 9738ca175dd0db126438926d558309358438a58ba5bd434864d0876643bea788

Contents?: true

Size: 1.08 KB

Versions: 8

Compression:

Stored size: 1.08 KB

Contents

require_relative 'base'

module Legion
  module Extensions
    module Helpers
      module Transport
        include Legion::Extensions::Helpers::Base

        def transport_path
          @transport_path ||= "#{full_path}/transport"
        end

        def transport_class
          @transport_class ||= lex_class::Transport
        end

        def messages
          @messages ||= transport_class::Messages
        end

        def queues
          @queues ||= transport_class::Queues
        end

        def exchanges
          @exchanges ||= transport_class::Exchanges
        end

        def default_exchange
          @default_exchange ||= build_default_exchange
        end

        def build_default_exchange
          exchange = "#{transport_class}::Exchanges::#{lex_const}"
          return Object.const_get(exchange) if transport_class::Exchanges.const_defined? lex_const

          transport_class::Exchanges.const_set(lex_const, Class.new(Legion::Transport::Exchange))
          @default_exchange = Kernel.const_get(exchange)
          @default_exchange
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
legionio-1.2.1 lib/legion/extensions/helpers/transport.rb
legionio-1.2.0 lib/legion/extensions/helpers/transport.rb
legionio-0.4.3 lib/legion/extensions/helpers/transport.rb
legionio-0.4.2 lib/legion/extensions/helpers/transport.rb
legionio-0.4.1 lib/legion/extensions/helpers/transport.rb
legionio-0.4.0 lib/legion/extensions/helpers/transport.rb
legionio-0.3.2 lib/legion/extensions/helpers/transport.rb
legionio-0.3.1 lib/legion/extensions/helpers/transport.rb