Passed
Push — main ( 31aa9e...537bf7 )
by Jonas
11:44
created

HasEagerLimit::getEagerLimitGrammar()   A

Complexity

Conditions 5
Paths 5

Size

Total Lines 25
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 16
c 1
b 0
f 0
dl 0
loc 25
rs 9.4222
cc 5
nc 5
nop 0
1
<?php
2
3
namespace Staudenmeir\EloquentEagerLimitXLaravelAdjacencyList\Eloquent\Relations\Traits;
4
5
use Staudenmeir\EloquentEagerLimit\Relations\HasLimit;
6
use Staudenmeir\EloquentEagerLimitXLaravelAdjacencyList\Query\Grammars\MySqlGrammar;
7
use Staudenmeir\EloquentEagerLimitXLaravelAdjacencyList\Query\Grammars\PostgresGrammar;
8
use Staudenmeir\EloquentEagerLimitXLaravelAdjacencyList\Query\Grammars\SQLiteGrammar;
9
use Staudenmeir\EloquentEagerLimitXLaravelAdjacencyList\Query\Grammars\SqlServerGrammar;
10
11
trait HasEagerLimit
12
{
13
    use HasLimit;
14
15
    /**
16
     * Get the eager limit grammar.
17
     *
18
     * @return \Staudenmeir\EloquentEagerLimitXLaravelAdjacencyList\Query\Grammars\EagerLimitGrammar
19
     */
20
    public function getEagerLimitGrammar()
21
    {
22
        $connection = $this->query->getQuery()->getConnection();
23
        $driver = $connection->getDriverName();
24
25
        switch ($driver) {
26
            case 'mysql':
27
                return $connection->withTablePrefix(
28
                    new MySqlGrammar()
29
                );
30
            case 'pgsql':
31
                return $connection->withTablePrefix(
32
                    new PostgresGrammar()
33
                );
34
            case 'sqlite':
35
                return $connection->withTablePrefix(
36
                    new SQLiteGrammar()
37
                );
38
            case 'sqlsrv':
39
                return $connection->withTablePrefix(
40
                    new SqlServerGrammar()
41
                );
42
        }
43
44
        throw new RuntimeException('This database is not supported.'); // @codeCoverageIgnore
0 ignored issues
show
Bug introduced by
The type Staudenmeir\EloquentEage...Traits\RuntimeException was not found. Did you mean RuntimeException? If so, make sure to prefix the type with \.
Loading history...
45
    }
46
}
47