Sha256: f1cbcef6cb27c7d219eac697c30a7fe21d86f4e1f474a040cd33c7f5eea7317c

Contents?: true

Size: 1.02 KB

Versions: 3

Compression:

Stored size: 1.02 KB

Contents

# frozen_string_literal: true

module Orchestration
  module Services
    module ConfigurationBase
      attr_reader :settings, :service_name

      def self.included(base)
        base.extend(ClassMethods)
      end

      module ClassMethods
        def service_name=(val)
          @service_name = val
        end

        def service_name
          return @service_name unless @service_name.nil?

          raise ArgumentError,
                "Must call `self.name=` on #{self.class.service_name}"
        end
      end

      def initialize(env, service_name = nil)
        @env = env
        @service_name = service_name || self.class.service_name
      end

      def host
        'localhost'
      end

      def local_port
        key = @service_name == 'application' ? 'nginx-proxy' : @service_name

        @env.docker_compose_config
            .fetch('services')
            .fetch(key)
            .fetch('ports')
            .first
            .partition(':')
            .first
            .to_i
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
orchestration-0.2.6 lib/orchestration/services/configuration_base.rb
orchestration-0.2.5 lib/orchestration/services/configuration_base.rb
orchestration-0.2.4 lib/orchestration/services/configuration_base.rb