public static function buildDataSource(array $config, $result)
{
$dsType = isset($config['source']) ? $config['source'] : 'mysql';
$dsClass = '\\Psecio\\Gatekeeper\\DataSource\\' . ucwords($dsType);
if (!class_exists($dsClass)) {
throw new \InvalidArgumentException('Data source type "' . $dsType . '" not valid!');
}
try {
$datasource = new $dsClass($result);
return $datasource;
} catch (\Exception $e) {
throw new \Exception('Error creating data source "' . $dsType . '" (' . $e->getMessage() . ')');
}
}