class Rails::Generators::Database

def all

def all
  @all ||= [
    MySQL2.new,
    PostgreSQL.new,
    SQLite3.new,
    MariaDBMySQL2.new,
    MariaDBTrilogy.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 MySQL2.new
  when "postgresql" then PostgreSQL.new
  when "trilogy" then Trilogy.new
  when "sqlite3" then SQLite3.new
  when "mariadb-mysql" then MariaDBMySQL2.new
  when "mariadb-trilogy" then MariaDBTrilogy.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 template

def template
  raise NotImplementedError
end

def volume

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