Skip to content
This repository has been archived by the owner on Sep 20, 2021. It is now read-only.

Commit

Permalink
Fix #50 on Github.
Browse files Browse the repository at this point in the history
  • Loading branch information
Hywan committed Feb 5, 2015
1 parent a191132 commit 55e35f5
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 1 deletion.
8 changes: 7 additions & 1 deletion Context.php
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,14 @@ public function offsetGet ( $id ) {
if($value instanceof DynamicCallable)
return $value($this);

if(true === is_callable($value))
if(true === is_callable($value)) {

if( true === is_string($value)
&& false === in_array(strtolower($value), get_defined_functions()['user']))
return $value;

$value = $this->_data[$id] = $value($this);
}

return $value;
}
Expand Down
70 changes: 70 additions & 0 deletions Test/Unit/Bug/Github50.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
<?php

/**
* Hoa
*
*
* @license
*
* New BSD License
*
* Copyright © 2007-2015, Ivan Enderlin. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the Hoa nor the names of its contributors may be
* used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/

namespace Hoa\Ruler\Test\Unit\Bug;

use Hoa\Test;
use Hoa\Ruler as LUT;

/**
* Class \Hoa\Ruler\Test\Unit\Bug\Github50.
*
* See https://github.com/hoaproject/Ruler/issues/50.
*
* @author Ivan Enderlin <[email protected]>
* @copyright Copyright © 2007-2015 Ivan Enderlin.
* @license New BSD License
*/

class Github50 extends Test\Unit\Suite {

public function case_bug ( ) {

$this
->given(
$ruler = new LUT(),
$rule = 'variable',
$context = new LUT\Context(),
$context['variable'] = 'file'
)
->when(function ( ) use ( $ruler, $rule, $context ) {

$ruler->assert($rule, $context);
})
->error()
->notExists();
}
}

0 comments on commit 55e35f5

Please sign in to comment.