1: <?php
2:
3: namespace Mockery\Generator;
4:
5: use Mockery\Generator\StringManipulation\Pass\Pass;
6:
7: class StringManipulationGenerator implements Generator
8: {
9: protected $passes = array();
10:
11: public function __construct(array $passes)
12: {
13: $this->passes = $passes;
14: }
15:
16: public function generate(MockConfiguration $config)
17: {
18: $code = file_get_contents(__DIR__ . '/../Mock.php');
19: $className = $config->getName() ?: $config->generateName();
20:
21: $namedConfig = $config->rename($className);
22:
23: foreach ($this->passes as $pass) {
24: $code = $pass->apply($code, $namedConfig);
25: }
26:
27: return new MockDefinition($namedConfig, $code);
28: }
29:
30: public function addPass(Pass $pass)
31: {
32: $this->passes[] = $pass;
33: }
34: }
35: