Sha256: 00f9b6d505a592ecbf09e3d6bc94d8cf77d007bf4999d66348eca14e15ae473c

Contents?: true

Size: 1.84 KB

Versions: 55

Compression:

Stored size: 1.84 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'
          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

55 entries across 55 versions & 2 rubygems

Version Path
eac_tools-0.77.1 sub/avm/lib/avm/instances/base/auto_values/database.rb
eac_tools-0.77.0 sub/avm/lib/avm/instances/base/auto_values/database.rb
eac_tools-0.76.1 sub/avm/lib/avm/instances/base/auto_values/database.rb
eac_tools-0.76.0 sub/avm/lib/avm/instances/base/auto_values/database.rb
eac_tools-0.75.2 sub/avm/lib/avm/instances/base/auto_values/database.rb
eac_tools-0.75.1 sub/avm/lib/avm/instances/base/auto_values/database.rb
eac_tools-0.75.0 sub/avm/lib/avm/instances/base/auto_values/database.rb
eac_tools-0.74.1 sub/avm/lib/avm/instances/base/auto_values/database.rb
eac_tools-0.74.0 sub/avm/lib/avm/instances/base/auto_values/database.rb
avm-0.79.0 lib/avm/instances/base/auto_values/database.rb
eac_tools-0.73.0 sub/avm/lib/avm/instances/base/auto_values/database.rb
eac_tools-0.72.0 sub/avm/lib/avm/instances/base/auto_values/database.rb
avm-0.78.0 lib/avm/instances/base/auto_values/database.rb
eac_tools-0.70.1 sub/avm/lib/avm/instances/base/auto_values/database.rb
avm-0.77.0 lib/avm/instances/base/auto_values/database.rb
eac_tools-0.70.0 sub/avm/lib/avm/instances/base/auto_values/database.rb
avm-0.76.0 lib/avm/instances/base/auto_values/database.rb
eac_tools-0.69.1 sub/avm/lib/avm/instances/base/auto_values/database.rb
avm-0.75.0 lib/avm/instances/base/auto_values/database.rb
eac_tools-0.69.0 sub/avm/lib/avm/instances/base/auto_values/database.rb