Class: Martilla::Database

Inherits:
Component show all
Defined in:
lib/martilla/database.rb

Direct Known Subclasses

Mysql, Postgres

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Component

#bash

Constructor Details

#initialize(config) ⇒ Database

Returns a new instance of Database.

Raises:



7
8
9
10
# File 'lib/martilla/database.rb', line 7

def initialize(config)
  @options = config
  raise Error.new(invalid_options_msg) if @options.nil?
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



5
6
7
# File 'lib/martilla/database.rb', line 5

def options
  @options
end

Class Method Details

.create(config = {}) ⇒ Object

When a new DB is supported it needs to go here



21
22
23
24
25
26
27
28
29
30
# File 'lib/martilla/database.rb', line 21

def self.create(config = {})
  case config['type'].downcase
  when 'postgres'
    Postgres.new(config['options'])
  when 'mysql'
    Mysql.new(config['options'])
  else
    raise Error.new("Invalid Database type: #{config['type']}")
  end
end

Instance Method Details

#dump(temp_file:, gzip:) ⇒ Object

Raises:

  • (NotImplementedError)


12
13
14
# File 'lib/martilla/database.rb', line 12

def dump(temp_file:, gzip:)
  raise NotImplementedError, 'You must implement the dump method'
end

#invalid_options_msgObject



16
17
18
# File 'lib/martilla/database.rb', line 16

def invalid_options_msg
  'DB configuration is invalid. Details here: https://github.com/fdoxyz/martilla'
end