class Rails::Generators::Database

def all

def all
  @all ||= [
    MySQL.new,
    PostgreSQL.new,
    MariaDB.new,
    SQLite3.new,
  ]
end

def base_package

def base_package
  raise NotImplementedError
end

def build(database_name)

def build(database_name)
  case database_name
  when "mysql" then MySQL.new
  when "postgresql" then PostgreSQL.new
  when "trilogy" then MariaDB.new
  when "sqlite3" then SQLite3.new
  else Null.new
  end
end

def build_package

def build_package
  raise NotImplementedError
end

def feature

def feature
  return unless feature_name
  { feature_name => {} }
end

def feature_name

def feature_name
  raise NotImplementedError
end

def gem

def gem
  raise NotImplementedError
end

def host; end

def host; end

def name

def name
  raise NotImplementedError
end

def port

def port
  raise NotImplementedError
end

def service

def service
  raise NotImplementedError
end

def socket; end

def socket; end

def volume

def volume
  return unless service
  "#{name}-data"
end