Skip to content

Commit

Permalink
Merge pull request #85 from zvirusz/patch-2
Browse files Browse the repository at this point in the history
Add a support for "not so simple" includes, resolves #60
  • Loading branch information
lisachenko committed Aug 15, 2013
2 parents 98641c8 + c7cb794 commit df96f1c
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 1 deletion.
9 changes: 8 additions & 1 deletion src/Go/Instrument/Transformer/FilterInjectorTransformer.php
Original file line number Diff line number Diff line change
Expand Up @@ -150,8 +150,15 @@ public function transform(StreamMetaData $metadata)

$transformedSource = '';
$isWaitingEnd = false;
$openedBraces = 0;
foreach ($tokenStream as $token) {
if ($isWaitingEnd && ($token === ';' || $token === ',')) {
if ($isWaitingEnd && $token == '(') {
$openedBraces++;
} elseif ($isWaitingEnd && $token == ')') {
$openedBraces--;
}

if ($isWaitingEnd && $openedBraces == 0 && ($token === ';' || $token === ',')) {
$isWaitingEnd = false;
$transformedSource .= ', __DIR__)';
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,4 +109,11 @@ public function testCanRewriteRelativePathsWithFilter()
$this->assertEquals($this->metadata->source, $output);
}

public function testCanTransformWithBraces()
{
$this->metadata->source = file_get_contents(__DIR__ . '/_files/yii_style.php');
self::$transformer->transform($this->metadata);
$this->assertEquals($this->metadata->source, file_get_contents(__DIR__ . '/_files/yii_style_output.php'));
}

}
6 changes: 6 additions & 0 deletions tests/Go/Instrument/Transformer/_files/yii_style.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?php

include($class->method('filename'));
include_once($class->method('filename'));
require($class->method('filename'));
require_once($class->method('filename'));
6 changes: 6 additions & 0 deletions tests/Go/Instrument/Transformer/_files/yii_style_output.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?php

include \Go\Instrument\Transformer\FilterInjectorTransformer::rewrite(($class->method('filename')), __DIR__);
include_once \Go\Instrument\Transformer\FilterInjectorTransformer::rewrite(($class->method('filename')), __DIR__);
require \Go\Instrument\Transformer\FilterInjectorTransformer::rewrite(($class->method('filename')), __DIR__);
require_once \Go\Instrument\Transformer\FilterInjectorTransformer::rewrite(($class->method('filename')), __DIR__);

0 comments on commit df96f1c

Please sign in to comment.