Completed
Push — master ( e8ecc6...4bc2d8 )
by Faiz
02:14
created

TranslationListCommand   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 5
c 1
b 0
f 1
lcom 1
cbo 4
dl 0
loc 36
ccs 0
cts 26
cp 0
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A configure() 0 7 1
A execute() 0 11 2
A translations() 0 4 1
1
<?php
2
3
namespace FaizShukri\Quran\Commands;
4
5
use FaizShukri\Quran\Supports\Config;
6
use FaizShukri\Quran\Repositories\Source\XMLRepository;
7
use Symfony\Component\Console\Command\Command;
8
use Symfony\Component\Console\Input\InputInterface;
9
use Symfony\Component\Console\Output\OutputInterface;
10
11
class TranslationListCommand extends Command
12
{
13
    private $source;
14
15
    public function __construct()
16
    {
17
        parent::__construct();
18
        $this->source = new XMLRepository;
19
        $this->source->setConfig(new Config);
20
    }
21
22
    protected function configure()
23
    {
24
        $this
25
            ->setName('translation:list')
26
            ->setDescription('View available translations')
27
        ;
28
    }
29
30
    protected function execute(InputInterface $input, OutputInterface $output)
31
    {
32
        $translations = $this->translations();
33
34
        $output->writeln("<info>Available translations. (For usage, you can use short form, example: </info>en <info>instead of</info> en.sahih <info>)</info>");
35
        foreach($translations as $translation){
36
            $output->writeln("  - <comment>$translation</comment>");
37
        }
38
39
        $output->writeln("");
40
    }
41
42
    private function translations()
43
    {
44
        return $this->source->translations();
45
    }
46
}
47