Sha256: 9d0f63b9c04818b87e06907f6594cb5aa33c37a5c4b8fd5b3fc74d454b5e553b

Contents?: true

Size: 1.24 KB

Versions: 4

Compression:

Stored size: 1.24 KB

Contents

# frozen_string_literal: true

module Orchestration
  module Services
    module Application
      class Configuration
        include ConfigurationBase

        self.service_name = 'application'

        def initialize(env, service_name = nil)
          super
          @settings = {} # Included for interface consistency; currently unused.
        end

        def docker_username
          @env.settings.get('docker.username')
        end

        def application_name
          @env.settings.get('docker.repository')
        end

        def friendly_config
          "[#{application_name}] #{host}:#{local_port}"
        end

        def database_settings
          Database::Configuration.new(@env).settings
        end

        def database_url
          settings = database_settings
          return nil if settings.fetch('adapter') == 'sqlite3'

          scheme = settings.fetch('scheme')
          database = settings.fetch('database')
          username = settings.fetch('username')
          password = settings.fetch('password')
          port = DockerCompose::DatabaseService::PORT
          host = Database::Configuration.service_name

          "#{scheme}://#{username}:#{password}@#{host}:#{port}/#{database}"
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
orchestration-0.3.3 lib/orchestration/services/application/configuration.rb
orchestration-0.3.2 lib/orchestration/services/application/configuration.rb
orchestration-0.3.1 lib/orchestration/services/application/configuration.rb
orchestration-0.3.0 lib/orchestration/services/application/configuration.rb