GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Pull Request — develop (#140)
by Max
02:52
created

GeneratorAssembler::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
/**
3
 * MageSpec
4
 *
5
 * NOTICE OF LICENSE
6
 *
7
 * This source file is subject to the MIT License, that is bundled with this
8
 * package in the file LICENSE.
9
 * It is also available through the world-wide-web at this URL:
10
 *
11
 * http://opensource.org/licenses/MIT
12
 *
13
 * If you did not receive a copy of the license and are unable to obtain it
14
 * through the world-wide-web, please send an email
15
 * to <[email protected]> so we can send you a copy immediately.
16
 *
17
 * @category   MageTest
18
 * @package    PhpSpec_MagentoExtension
19
 *
20
 * @copyright  Copyright (c) 2012-2013 MageTest team and contributors.
21
 */
22
namespace MageTest\PhpSpec\MagentoExtension\Extension;
23
24
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\BlockGenerator;
25
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\ControllerGenerator;
26
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\ControllerSpecificationGenerator;
27
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\HelperGenerator;
28
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\ModelGenerator;
29
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\Xml\ConfigGenerator;
30
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\Xml\Element\BlockElement;
31
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\Xml\Element\ControllerElement;
32
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\Xml\Element\HelperElement;
33
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\Xml\Element\ModelElement;
34
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\Xml\ModuleGenerator;
35
use MageTest\PhpSpec\MagentoExtension\Configuration\MageLocator;
36
use PhpSpec\Process\Context\JsonExecutionContext;
37
use PhpSpec\ServiceContainer;
38
39
class GeneratorAssembler implements Assembler
40
{
41
    private $configuration;
42
43
    public function __construct(MageLocator $configuration)
44
    {
45
        $this->configuration = $configuration;
46
    }
47
48
    /**
49
     * @param ServiceContainer $container
50
     */
51
    public function build(ServiceContainer $container)
52
    {
53
        $this->setCodeGenerators($container);
54
        $this->setXmlModuleGenerator($container);
55
        $this->setXmlConfigGenerator($container);
56
        $this->setXmlElementGenerators($container);
57
    }
58
59
    /**
60
     * @param ServiceContainer $container
61
     */
62
    private function setCodeGenerators(ServiceContainer $container)
63
    {
64
        $container->define('code_generator.generators.mage_model', function ($c) {
65
            return new ModelGenerator(
66
                $c->get('console.io'),
67
                $c->get('code_generator.templates'),
68
                $c->get('filesystem'),
69
                new JsonExecutionContext()
70
            );
71
        }, ['code_generator.generators']);
72
73
        $container->define('code_generator.generators.mage_block', function ($c) {
74
            return new BlockGenerator(
75
                $c->get('console.io'),
76
                $c->get('code_generator.templates'),
77
                $c->get('filesystem'),
78
                new JsonExecutionContext()
79
            );
80
        }, ['code_generator.generators']);
81
82
        $container->define('code_generator.generators.mage_helper', function ($c) {
83
            return new HelperGenerator(
84
                $c->get('console.io'),
85
                $c->get('code_generator.templates'),
86
                $c->get('filesystem'),
87
                new JsonExecutionContext()
88
            );
89
        }, ['code_generator.generators']);
90
91
        $container->define('code_generator.generators.mage_controller', function($c) {
0 ignored issues
show
Coding Style introduced by
Expected 1 space after FUNCTION keyword; 0 found
Loading history...
92
            return new ControllerGenerator(
93
                $c->get('console.io'),
94
                $c->get('code_generator.templates'),
95
                $c->get('filesystem'),
96
                new JsonExecutionContext()
97
            );
98
        }, ['code_generator.generators']);
99
100
        $container->define('code_generator.generators.controller_specification', function($c) {
0 ignored issues
show
Coding Style introduced by
Expected 1 space after FUNCTION keyword; 0 found
Loading history...
101
            return new ControllerSpecificationGenerator(
102
                $c->get('console.io'),
103
                $c->get('code_generator.templates'),
104
                $c->get('filesystem'),
105
                new JsonExecutionContext()
106
            );
107
        }, ['code_generator.generators']);
108
    }
109
110
    /**
111
     * @param ServiceContainer $container
112
     */
113
    private function setXmlModuleGenerator(ServiceContainer $container)
114
    {
115
        $configuration = $this->configuration;
116
        $container->define('xml_generator.generators.module', function ($c) use ($configuration) {
117
            $suite = $configuration->getConfiguration();
118
            if (isset($suite['src_path'])) {
119
                $etcPath = rtrim($suite['src_path'], '/') . DIRECTORY_SEPARATOR . '..'
120
                    . DIRECTORY_SEPARATOR . 'etc' . DIRECTORY_SEPARATOR . 'modules' . DIRECTORY_SEPARATOR;
121
            } else {
122
                $etcPath = 'app/etc/';
123
            }
124
            $codePool = isset($suite['code_pool']) ? $suite['code_pool'] : 'local';
125
            return new ModuleGenerator(
126
                $etcPath,
127
                $c->get('filesystem'),
128
                $codePool
129
            );
130
        }, ['xml_generator.generators']);
131
    }
132
133
    /**
134
     * @param ServiceContainer $container
135
     */
136
    private function setXmlConfigGenerator(ServiceContainer $container)
137
    {
138
        $configuration = $this->configuration;
139
        $container->define('xml_generator.generators.config', function($c) use ($configuration) {
0 ignored issues
show
Coding Style introduced by
Expected 1 space after FUNCTION keyword; 0 found
Loading history...
140
            $suite = $configuration->getConfiguration();
141
            $srcPath = isset($suite['src_path']) ? rtrim($suite['src_path'], '/') . DIRECTORY_SEPARATOR : 'src';
142
            $codePool = isset($suite['code_pool']) ? $suite['code_pool'] : 'local';
143
            $generator = new ConfigGenerator(
144
                $srcPath,
145
                $c->get('filesystem'),
146
                $c->get('xml.formatter'),
147
                $codePool
148
            );
149
150
            array_map(
151
                array($generator, 'addElementGenerator'),
152
                $c->getByTag('xml_generator.generators.config.element')
153
            );
154
155
            return $generator;
156
        }, ['xml_generator.generators']);
157
    }
158
159
    /**
160
     * @param ServiceContainer $container
161
     */
162
    private function setXmlElementGenerators(ServiceContainer $container)
163
    {
164
        $container->define('xml_generator.generators.config.element.block', function() {
0 ignored issues
show
Coding Style introduced by
Expected 1 space after FUNCTION keyword; 0 found
Loading history...
165
            return new BlockElement();
166
        }, ['xml_generator.generators.config.element']);
167
168
        $container->define('xml_generator.generators.config.element.helper', function() {
0 ignored issues
show
Coding Style introduced by
Expected 1 space after FUNCTION keyword; 0 found
Loading history...
169
            return new HelperElement();
170
        }, ['xml_generator.generators.config.element']);
171
172
        $container->define('xml_generator.generators.config.element.controller', function() {
0 ignored issues
show
Coding Style introduced by
Expected 1 space after FUNCTION keyword; 0 found
Loading history...
173
            return new ControllerElement();
174
        }, ['xml_generator.generators.config.element']);
175
176
        $container->define('xml_generator.generators.config.element.model', function() {
0 ignored issues
show
Coding Style introduced by
Expected 1 space after FUNCTION keyword; 0 found
Loading history...
177
            return new ModelElement();
178
        }, ['xml_generator.generators.config.element']);
179
    }
180
}
181