Sha256: cec14a70bce4a90410853c22e7caccbc169b227596d669e74e93821cbcb9eb75

Contents?: true

Size: 1.68 KB

Versions: 59

Compression:

Stored size: 1.68 KB

Contents

# frozen_string_literal: true

require 'avm/instances/entry_keys'

module Avm
  module Instances
    class Base
      module AutoValues
        module Database
          DEFAULT_HOSTNAME = '127.0.0.1'
          DEFAULT_PORTS = {
            'postgresql' => 5432,
            'mysql' => 3306,
            'oracle' => 1521,
            'sqlserver' => 1433
          }.freeze
          DEFAULT_SYSTEM = 'postgresql'

          def auto_database_name
            inherited_entry_value(::Avm::Instances::EntryKeys::DATABASE_ID,
                                  ::Avm::Instances::EntryKeys::DATABASE_NAME) || id
          end

          def auto_database_hostname
            database_auto_common('hostname') || DEFAULT_HOSTNAME
          end

          def auto_database_password
            database_auto_common('password')
          end

          def auto_database_port
            database_auto_common('port') || database_port_by_system
          end

          def auto_database_username
            database_auto_common('username')
          end

          def auto_database_system
            database_auto_common('system') || DEFAULT_SYSTEM
          end

          private

          def database_auto_common(suffix)
            database_key = ::Avm::Instances::EntryKeys.const_get("database_#{suffix}".upcase)
            inherited_entry_value(::Avm::Instances::EntryKeys::DATABASE_ID, database_key) ||
              inherited_entry_value(:host_id, database_key)
          end

          def database_port_by_system
            read_entry_optional(::Avm::Instances::EntryKeys::DATABASE_SYSTEM).if_present do |v|
              DEFAULT_PORTS.fetch(v)
            end
          end
        end
      end
    end
  end
end

Version data entries

59 entries across 59 versions & 1 rubygems

Version Path
avm-tools-0.71.0 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.70.2 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.70.1 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.70.0 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.69.3 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.69.2 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.69.1 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.69.0 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.68.0 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.67.0 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.66.0 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.65.0 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.64.2 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.64.1 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.64.0 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.63.0 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.62.4 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.62.3 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.62.2 lib/avm/instances/base/auto_values/database.rb
avm-tools-0.62.1 lib/avm/instances/base/auto_values/database.rb