Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
100.00% |
1 / 1 |
|
100.00% |
9 / 9 |
CRAP | |
100.00% |
20 / 20 |
| Stacker | |
100.00% |
1 / 1 |
|
100.00% |
10 / 10 |
11 | |
100.00% |
20 / 20 |
| __construct | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| start | |
100.00% |
1 / 1 |
1 | |
100.00% |
4 / 4 |
|||
| create | |
100.00% |
1 / 1 |
1 | ||||||
| getStack | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| reset | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| current | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| end | |
100.00% |
1 / 1 |
2 | |
100.00% |
5 / 5 |
|||
| isEmpty | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| getContainer | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| setContainer | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| <?php | |
| /** | |
| * Manages the Loop instances | |
| */ | |
| namespace Radic\BladeExtensions\Helpers; | |
| use Illuminate\Contracts\Container\Container; | |
| /** | |
| * Manages the Loop instances | |
| * | |
| * @package Radic\BladeExtensions | |
| * @subpackage Helpers | |
| * @version 2.1.0 | |
| * @author Robin Radic | |
| * @license MIT License - http://radic.mit-license.org | |
| * @copyright (2011-2014, Robin Radic - Radic Technologies | |
| * @link http://robin.radic.nl/blade-extensions | |
| * | |
| */ | |
| abstract class Stacker | |
| { | |
| protected $container; | |
| /** | |
| * The stack of Loop instances | |
| * | |
| * @var array $stack | |
| */ | |
| protected $stack = array(); | |
| /** | |
| * @inheritDoc | |
| */ | |
| public function __construct(Container $container) | |
| { | |
| $this->container = $container; | |
| } | |
| /** | |
| * Adds a Loop to the stack | |
| */ | |
| public function start() | |
| { | |
| $stackItem = static::create(func_get_args()); | |
| array_push($this->stack, $stackItem); | |
| $stackItem->start(); | |
| return $stackItem; | |
| } | |
| /** | |
| * create | |
| * | |
| * @return mixed | |
| */ | |
| abstract protected function create($args = []); | |
| /** | |
| * Returns the stack | |
| * | |
| * @return array | |
| */ | |
| public function getStack() | |
| { | |
| return $this->stack; | |
| } | |
| /** | |
| * Resets the stack | |
| */ | |
| public function reset() | |
| { | |
| $this->stack = array(); | |
| } | |
| /** | |
| * To be called first inside the foreach loop. Returns the current loop | |
| * | |
| * @return mixed $current The current loop data | |
| */ | |
| public function current() | |
| { | |
| $current = end($this->stack); | |
| return $current; | |
| } | |
| /** | |
| * To be called before the end of the loop | |
| */ | |
| public function end() | |
| { | |
| if (!$this->isEmpty()) { | |
| static::current()->end(); | |
| array_pop($this->stack); | |
| } | |
| } | |
| public function isEmpty() | |
| { | |
| return count($this->stack) === 0; | |
| } | |
| /** | |
| * get container value | |
| * | |
| * @return \Illuminate\Contracts\Container\Container | |
| */ | |
| public function getContainer() | |
| { | |
| return $this->container; | |
| } | |
| /** | |
| * Set the container value | |
| * | |
| * @param \Illuminate\Contracts\Container\Container $container | |
| * @return Stacker | |
| */ | |
| public function setContainer($container) | |
| { | |
| $this->container = $container; | |
| return $this; | |
| } | |
| } |