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

TranslationListCommand::execute()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 11
ccs 0
cts 9
cp 0
rs 9.4285
cc 2
eloc 6
nc 2
nop 2
crap 6
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