Sha256: f770f54f31f9bb159ef3ddb8dd77bd821400d869e41dcb474ded27e976a6d5d6

Contents?: true

Size: 797 Bytes

Versions: 9

Compression:

Stored size: 797 Bytes

Contents

module ContainersManager
  class Consul
    def initialize(configuration, id_provider)
      @configuration = configuration
      @id_provider   = id_provider
    end

    def all_entries
      @all_entries ||= response_from(consul_service_urls)
                         .map { |node| ConsulEntry.new(node, configuration).set_id_provider(id_provider) }
    end

    private

    attr_reader :configuration, :id_provider

    def consul_service_urls
      @configuration.consul_service_urls
    end

    def response_from(param)
      if param.is_a?(String)
        consul_service.services(param)
      elsif param.is_a?(Array)
        param.map { |e| response_from(e) }.flatten
      end
    end

    def consul_service
      @consul_service ||= ConsulService.new(configuration)
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
containers_manager-0.1.13 lib/containers_manager/entities/consul.rb
containers_manager-0.1.12 lib/containers_manager/entities/consul.rb
containers_manager-0.1.11 lib/containers_manager/entities/consul.rb
containers_manager-0.1.10 lib/containers_manager/entities/consul.rb
containers_manager-0.1.9 lib/containers_manager/entities/consul.rb
containers_manager-0.1.8 lib/containers_manager/entities/consul.rb
containers_manager-0.1.7 lib/containers_manager/entities/consul.rb
containers_manager-0.1.6 lib/containers_manager/entities/consul.rb
containers_manager-0.1.5 lib/containers_manager/entities/consul.rb