Class: Kuby::Kubernetes::Plugins::RailsApp::Database

Inherits:
Object
  • Object
show all
Defined in:
lib/kuby/kubernetes/plugins/rails_app/database.rb

Constant Summary collapse

ADAPTER_MAP =
{
  'sqlite3' => Sqlite,
  'mysql2' => MySQL,
  'postgresql' => Postgres
}.freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(definition) ⇒ Database

Returns a new instance of Database.



27
28
29
# File 'lib/kuby/kubernetes/plugins/rails_app/database.rb', line 27

def initialize(definition)
  @definition = definition
end

Instance Attribute Details

#definitionObject (readonly)

Returns the value of attribute definition.



25
26
27
# File 'lib/kuby/kubernetes/plugins/rails_app/database.rb', line 25

def definition
  @definition
end

Class Method Details

.get(definition) ⇒ Object



14
15
16
# File 'lib/kuby/kubernetes/plugins/rails_app/database.rb', line 14

def self.get(definition)
  new(definition).database
end

.get_adapter(adapter) ⇒ Object



18
19
20
21
22
23
# File 'lib/kuby/kubernetes/plugins/rails_app/database.rb', line 18

def self.get_adapter(adapter)
  ADAPTER_MAP.fetch(adapter) do
    raise UnsupportedDatabaseError, "Kuby does not support the '#{adapter}'"\
      'database adapter'
  end
end

Instance Method Details

#databaseObject



31
32
33
34
35
# File 'lib/kuby/kubernetes/plugins/rails_app/database.rb', line 31

def database
  @database ||= self.class
    .get_adapter(adapter)
    .new(definition, environment, db_configs)
end