Sha256: c6b32e778c8478268da2c23f5cc17623058babdec6a5fc79983f3a1b7d7a1c28

Contents?: true

Size: 1.91 KB

Versions: 45

Compression:

Stored size: 1.91 KB

Contents

# frozen_string_literal: true

require 'avm/instances/entry_keys'

module Avm
  module Instances
    class Base
      module AutoValues
        module Database
          LOCAL_ADDRESS = '127.0.0.1'
          LOCAL_ADDRESSES = [LOCAL_ADDRESS, '::1', 'localhost'].freeze
          DEFAULT_EXTRA = ''
          DEFAULT_HOSTNAME = LOCAL_ADDRESS
          DEFAULT_LIMIT = 5
          DEFAULT_PORTS = {
            'postgresql' => 5432,
            'mysql' => 3306,
            'oracle' => 1521,
            'sqlserver' => 1433
          }.freeze
          DEFAULT_SYSTEM = 'postgresql'
          DEFAULT_TIMEOUT = 5000

          %w[extra hostname limit system timeout].each do |attr|
            define_method "auto_database_#{attr}" do
              database_auto_common(attr) || self.class.const_get("default_#{attr}".upcase)
            end
          end

          %w[username password].each do |attr|
            define_method "auto_database_#{attr}" do
              database_auto_common(attr) || id
            end
          end

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

          def auto_database_port
            database_auto_common('port') || database_port_by_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(::Avm::Instances::EntryKeys::INSTALL_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

45 entries across 45 versions & 2 rubygems

Version Path
avm-0.94.1 lib/avm/instances/base/auto_values/database.rb
eac_tools-0.98.0 sub/avm/lib/avm/instances/base/auto_values/database.rb
avm-0.94.0 lib/avm/instances/base/auto_values/database.rb
eac_tools-0.94.0 sub/avm/lib/avm/instances/base/auto_values/database.rb
avm-0.93.0 lib/avm/instances/base/auto_values/database.rb
eac_tools-0.92.0 sub/avm/lib/avm/instances/base/auto_values/database.rb
avm-0.92.0 lib/avm/instances/base/auto_values/database.rb
eac_tools-0.91.0 sub/avm/lib/avm/instances/base/auto_values/database.rb
avm-0.90.1 lib/avm/instances/base/auto_values/database.rb
eac_tools-0.87.1 sub/avm/lib/avm/instances/base/auto_values/database.rb
avm-0.90.0 lib/avm/instances/base/auto_values/database.rb
eac_tools-0.87.0 sub/avm/lib/avm/instances/base/auto_values/database.rb
avm-0.89.0 lib/avm/instances/base/auto_values/database.rb
eac_tools-0.86.12 sub/avm/lib/avm/instances/base/auto_values/database.rb
avm-0.88.0 lib/avm/instances/base/auto_values/database.rb
eac_tools-0.86.11 sub/avm/lib/avm/instances/base/auto_values/database.rb
avm-0.87.0 lib/avm/instances/base/auto_values/database.rb
eac_tools-0.86.8 sub/avm/lib/avm/instances/base/auto_values/database.rb
avm-0.86.2 lib/avm/instances/base/auto_values/database.rb
eac_tools-0.86.7 sub/avm/lib/avm/instances/base/auto_values/database.rb