Completed
Pull Request — master (#200)
by Erin
03:42 queued 01:45
created

InputDefinition   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 0
Metric Value
dl 0
loc 41
rs 10
c 0
b 0
f 0
wmc 2
lcom 0
cbo 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 17 1
A option() 0 7 1
1
<?php
2
namespace Peridot\Console;
3
4
use Symfony\Component\Console\Input\InputArgument;
5
use Symfony\Component\Console\Input\InputDefinition as Definition;
6
use Symfony\Component\Console\Input\InputOption;
7
8
/**
9
 * The InputDefinition for Peridot defines what command line arguments
10
 * and options are available by default.
11
 *
12
 * @package Peridot\Console
13
 */
14
class InputDefinition extends Definition
15
{
16
    /**
17
     * Define input definition for peridot
18
     */
19
    public function __construct()
20
    {
21
        parent::__construct([]);
22
        $this->addArgument(new InputArgument('path', InputArgument::OPTIONAL | InputArgument::IS_ARRAY, 'The path to a directory or file containing specs', ['spec', 'specs', 'test', 'tests']));
23
24
        $this->addOption(new InputOption('focus', 'f', InputOption::VALUE_REQUIRED, 'Run tests matching <pattern>'));
25
        $this->addOption(new InputOption('skip', 's', InputOption::VALUE_REQUIRED, 'Skip tests matching <pattern>'));
26
        $this->addOption(new InputOption('grep', 'g', InputOption::VALUE_REQUIRED, 'Run tests with filenames matching <pattern> <comment>(default: *.spec.php)</comment>'));
27
        $this->addOption(new InputOption('no-colors', 'C', InputOption::VALUE_NONE, 'Disable output colors'));
28
        $this->addOption(new InputOption('--force-colors', null, InputOption::VALUE_NONE, 'Force output colors'));
29
        $this->addOption(new InputOption('reporter', 'r', InputOption::VALUE_REQUIRED, 'Select which reporter to use <comment>(default: spec)</comment>'));
30
        $this->addOption(new InputOption('bail', 'b', InputOption::VALUE_NONE, 'Stop on failure'));
31
        $this->addOption(new InputOption('configuration', 'c', InputOption::VALUE_REQUIRED, 'A php file containing peridot configuration'));
32
        $this->addOption(new InputOption('reporters', null, InputOption::VALUE_NONE, 'List all available reporters'));
33
        $this->addOption(new InputOption('--version', '-V', InputOption::VALUE_NONE, 'Display the Peridot version number'));
34
        $this->addOption(new InputOption('--help', '-h', InputOption::VALUE_NONE, 'Display this help message.'));
35
    }
36
37
    /**
38
     * Add an option
39
     *
40
     * @param  string $name
41
     * @param  null        $shortcut
42
     * @param  null        $mode
43
     * @param  string      $description
44
     * @param  null        $default
45
     * @return InputDefinition
46
     */
47
    public function option($name, $shortcut = null, $mode = null, $description = '', $default = null)
48
    {
49
        $option = new InputOption($name, $shortcut, $mode, $description, $default);
50
        $this->addOption($option);
51
52
        return $this;
53
    }
54
}
55