PK ?V@u u
composer.locknu W+A {
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "9bd762f5d0061e8c00a930ef6d807c44",
"packages": [
{
"name": "henrikbjorn/lurker",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/henrikbjorn/Lurker.git",
"reference": "d13372695bf7853edc104bd6ee2ac3deaa92acc2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/henrikbjorn/Lurker/zipball/d13372695bf7853edc104bd6ee2ac3deaa92acc2",
"reference": "d13372695bf7853edc104bd6ee2ac3deaa92acc2",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"symfony/config": "~2.2",
"symfony/event-dispatcher": "~2.2"
},
"suggest": {
"ext-inotify": ">=0.1.6"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-0": {
"Lurker": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Yaroslav Kiliba",
"email": "om.dattaya@gmail.com"
},
{
"name": "Konstantin Kudryashov",
"email": "ever.zet@gmail.com"
},
{
"name": "Henrik Bjrnskov",
"email": "henrik@bjrnskov.dk"
}
],
"description": "Resource Watcher.",
"keywords": [
"filesystem",
"resource",
"watching"
],
"time": "2014-12-15 08:28:08"
},
{
"name": "symfony/config",
"version": "v2.6.1",
"target-dir": "Symfony/Component/Config",
"source": {
"type": "git",
"url": "https://github.com/symfony/Config.git",
"reference": "84c0c150c1520995f09ea9e47e817068b353cb0f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Config/zipball/84c0c150c1520995f09ea9e47e817068b353cb0f",
"reference": "84c0c150c1520995f09ea9e47e817068b353cb0f",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"symfony/filesystem": "~2.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.6-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\Config\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Symfony Config Component",
"homepage": "http://symfony.com",
"time": "2014-12-02 20:19:20"
},
{
"name": "symfony/console",
"version": "v2.6.1",
"target-dir": "Symfony/Component/Console",
"source": {
"type": "git",
"url": "https://github.com/symfony/Console.git",
"reference": "ef825fd9f809d275926547c9e57cbf14968793e8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Console/zipball/ef825fd9f809d275926547c9e57cbf14968793e8",
"reference": "ef825fd9f809d275926547c9e57cbf14968793e8",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"psr/log": "~1.0",
"symfony/event-dispatcher": "~2.1",
"symfony/process": "~2.1"
},
"suggest": {
"psr/log": "For using the console logger",
"symfony/event-dispatcher": "",
"symfony/process": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.6-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\Console\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Symfony Console Component",
"homepage": "http://symfony.com",
"time": "2014-12-02 20:19:20"
},
{
"name": "symfony/event-dispatcher",
"version": "v2.6.1",
"target-dir": "Symfony/Component/EventDispatcher",
"source": {
"type": "git",
"url": "https://github.com/symfony/EventDispatcher.git",
"reference": "720fe9bca893df7ad1b4546649473b5afddf0216"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/720fe9bca893df7ad1b4546649473b5afddf0216",
"reference": "720fe9bca893df7ad1b4546649473b5afddf0216",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"psr/log": "~1.0",
"symfony/config": "~2.0",
"symfony/dependency-injection": "~2.6",
"symfony/expression-language": "~2.6",
"symfony/stopwatch": "~2.2"
},
"suggest": {
"symfony/dependency-injection": "",
"symfony/http-kernel": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.6-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\EventDispatcher\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Symfony EventDispatcher Component",
"homepage": "http://symfony.com",
"time": "2014-12-02 20:19:20"
},
{
"name": "symfony/filesystem",
"version": "v2.6.1",
"target-dir": "Symfony/Component/Filesystem",
"source": {
"type": "git",
"url": "https://github.com/symfony/Filesystem.git",
"reference": "ff6efc95256cb33031933729e68b01d720b5436b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Filesystem/zipball/ff6efc95256cb33031933729e68b01d720b5436b",
"reference": "ff6efc95256cb33031933729e68b01d720b5436b",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.6-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\Filesystem\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Symfony Filesystem Component",
"homepage": "http://symfony.com",
"time": "2014-12-02 20:19:20"
},
{
"name": "symfony/finder",
"version": "v2.6.1",
"target-dir": "Symfony/Component/Finder",
"source": {
"type": "git",
"url": "https://github.com/symfony/Finder.git",
"reference": "0d3ef7f6ec55a7af5eca7914eaa0dacc04ccc721"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Finder/zipball/0d3ef7f6ec55a7af5eca7914eaa0dacc04ccc721",
"reference": "0d3ef7f6ec55a7af5eca7914eaa0dacc04ccc721",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.6-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\Finder\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Symfony Finder Component",
"homepage": "http://symfony.com",
"time": "2014-12-02 20:19:20"
},
{
"name": "symfony/process",
"version": "v2.6.1",
"target-dir": "Symfony/Component/Process",
"source": {
"type": "git",
"url": "https://github.com/symfony/Process.git",
"reference": "bf0c9bd625f13b0b0bbe39919225cf145dfb935a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Process/zipball/bf0c9bd625f13b0b0bbe39919225cf145dfb935a",
"reference": "bf0c9bd625f13b0b0bbe39919225cf145dfb935a",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.6-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\Process\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Symfony Process Component",
"homepage": "http://symfony.com",
"time": "2014-12-02 20:19:20"
}
],
"packages-dev": [
{
"name": "andrewsville/php-token-reflection",
"version": "1.4.0",
"source": {
"type": "git",
"url": "https://github.com/Andrewsville/PHP-Token-Reflection.git",
"reference": "e6d0ac2baf66cdf154be34c3d2a2aa1bd4b426ee"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Andrewsville/PHP-Token-Reflection/zipball/e6d0ac2baf66cdf154be34c3d2a2aa1bd4b426ee",
"reference": "e6d0ac2baf66cdf154be34c3d2a2aa1bd4b426ee",
"shasum": ""
},
"require": {
"ext-tokenizer": "*",
"php": ">=5.3.0"
},
"type": "library",
"autoload": {
"psr-0": {
"TokenReflection": "./"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3"
],
"authors": [
{
"name": "Ondřej Nešpor",
"homepage": "https://github.com/andrewsville"
},
{
"name": "Jaroslav Hanslík",
"homepage": "https://github.com/kukulich"
}
],
"description": "Library emulating the PHP internal reflection using just the tokenized source code.",
"homepage": "http://andrewsville.github.com/PHP-Token-Reflection/",
"keywords": [
"library",
"reflection",
"tokenizer"
],
"time": "2014-08-06 16:37:08"
},
{
"name": "codeception/aspect-mock",
"version": "0.4.2",
"source": {
"type": "git",
"url": "https://github.com/Codeception/AspectMock.git",
"reference": "54041bf77c982f34e2d4b066c8d860733a48f1c1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Codeception/AspectMock/zipball/54041bf77c982f34e2d4b066c8d860733a48f1c1",
"reference": "54041bf77c982f34e2d4b066c8d860733a48f1c1",
"shasum": ""
},
"require": {
"lisachenko/go-aop-php": "~0.4.0",
"php": ">=5.4.0"
},
"require-dev": {
"codeception/codeception": "@stable",
"codeception/specify": "*",
"codeception/verify": "*"
},
"type": "library",
"autoload": {
"psr-0": {
"AspectMock": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"authors": [
{
"name": "Michael Bodnarchuk",
"email": "davert.php@mailican.com",
"homepage": "http://codeception.com"
}
],
"description": "Experimental Mocking Framework powered by Aspects",
"time": "2014-05-09 04:09:47"
},
{
"name": "codeception/codeception",
"version": "2.0.9",
"source": {
"type": "git",
"url": "https://github.com/Codeception/Codeception.git",
"reference": "0094191ac0d6e87821fba41de002103ebe79a279"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Codeception/Codeception/zipball/0094191ac0d6e87821fba41de002103ebe79a279",
"reference": "0094191ac0d6e87821fba41de002103ebe79a279",
"shasum": ""
},
"require": {
"ext-json": "*",
"ext-mbstring": "*",
"facebook/webdriver": "~0.4",
"guzzlehttp/guzzle": "~4.0|~5.0",
"php": ">=5.4.0",
"phpunit/phpunit": "~4.0",
"symfony/browser-kit": "~2.4",
"symfony/console": "~2.4",
"symfony/css-selector": "~2.4",
"symfony/dom-crawler": "~2.4,!=2.4.5",
"symfony/event-dispatcher": "~2.4",
"symfony/finder": "~2.4",
"symfony/yaml": "~2.4"
},
"require-dev": {
"codeception/specify": "~0.3",
"codegyre/robo-ci": "@dev",
"facebook/php-sdk": "~3.2",
"flow/jsonpath": "~0.1",
"monolog/monolog": "~1.8",
"pda/pheanstalk": "~2.0",
"phpseclib/phpseclib": "~0.3.6",
"videlalvaro/php-amqplib": "~2.4"
},
"suggest": {
"codeception/phpbuiltinserver": "Extension to start and stop PHP built-in web server for your tests",
"codeception/specify": "BDD-style code blocks",
"codeception/verify": "BDD-style assertions",
"monolog/monolog": "Log test steps",
"phpseclib/phpseclib": "Extension required to use the SFTP option in the FTP Module."
},
"bin": [
"codecept"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.1-dev"
}
},
"autoload": {
"psr-0": {
"Codeception": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Bodnarchuk",
"email": "davert@mail.ua",
"homepage": "http://codegyre.com"
}
],
"description": "BDD-style testing framework",
"homepage": "http://codeception.com/",
"keywords": [
"BDD",
"TDD",
"acceptance testing",
"functional testing",
"unit testing"
],
"time": "2014-12-19 23:54:20"
},
{
"name": "codeception/verify",
"version": "0.2.7",
"source": {
"type": "git",
"url": "https://github.com/Codeception/Verify.git",
"reference": "66e5074905f4d9590ddb805d123fe632f4baa488"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Codeception/Verify/zipball/66e5074905f4d9590ddb805d123fe632f4baa488",
"reference": "66e5074905f4d9590ddb805d123fe632f4baa488",
"shasum": ""
},
"require-dev": {
"phpunit/phpunit": "3.7.*"
},
"type": "library",
"autoload": {
"files": [
"src/Codeception/function.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"authors": [
{
"name": "Michael Bodnarchuk",
"email": "davert.php@mailican.com",
"homepage": "http://codeception.com"
}
],
"description": "BDD assertion library for PHPUnit",
"time": "2014-01-22 14:40:33"
},
{
"name": "doctrine/annotations",
"version": "v1.2.3",
"source": {
"type": "git",
"url": "https://github.com/doctrine/annotations.git",
"reference": "eeda578cbe24a170331a1cfdf78be723412df7a4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/annotations/zipball/eeda578cbe24a170331a1cfdf78be723412df7a4",
"reference": "eeda578cbe24a170331a1cfdf78be723412df7a4",
"shasum": ""
},
"require": {
"doctrine/lexer": "1.*",
"php": ">=5.3.2"
},
"require-dev": {
"doctrine/cache": "1.*",
"phpunit/phpunit": "4.*"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.3.x-dev"
}
},
"autoload": {
"psr-0": {
"Doctrine\\Common\\Annotations\\": "lib/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
}
],
"description": "Docblock Annotations Parser",
"homepage": "http://www.doctrine-project.org",
"keywords": [
"annotations",
"docblock",
"parser"
],
"time": "2014-12-20 20:49:38"
},
{
"name": "doctrine/instantiator",
"version": "1.0.4",
"source": {
"type": "git",
"url": "https://github.com/doctrine/instantiator.git",
"reference": "f976e5de371104877ebc89bd8fecb0019ed9c119"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/f976e5de371104877ebc89bd8fecb0019ed9c119",
"reference": "f976e5de371104877ebc89bd8fecb0019ed9c119",
"shasum": ""
},
"require": {
"php": ">=5.3,<8.0-DEV"
},
"require-dev": {
"athletic/athletic": "~0.1.8",
"ext-pdo": "*",
"ext-phar": "*",
"phpunit/phpunit": "~4.0",
"squizlabs/php_codesniffer": "2.0.*@ALPHA"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-0": {
"Doctrine\\Instantiator\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com",
"homepage": "http://ocramius.github.com/"
}
],
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
"homepage": "https://github.com/doctrine/instantiator",
"keywords": [
"constructor",
"instantiate"
],
"time": "2014-10-13 12:58:55"
},
{
"name": "doctrine/lexer",
"version": "v1.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/lexer.git",
"reference": "2f708a85bb3aab5d99dab8be435abd73e0b18acb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/lexer/zipball/2f708a85bb3aab5d99dab8be435abd73e0b18acb",
"reference": "2f708a85bb3aab5d99dab8be435abd73e0b18acb",
"shasum": ""
},
"require": {
"php": ">=5.3.2"
},
"type": "library",
"autoload": {
"psr-0": {
"Doctrine\\Common\\Lexer\\": "lib/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com",
"homepage": "http://www.instaclick.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com",
"homepage": "https://github.com/schmittjoh",
"role": "Developer of wrapped JMSSerializerBundle"
}
],
"description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
"homepage": "http://www.doctrine-project.org",
"keywords": [
"lexer",
"parser"
],
"time": "2013-01-12 18:59:04"
},
{
"name": "facebook/webdriver",
"version": "v0.5.1",
"source": {
"type": "git",
"url": "https://github.com/facebook/php-webdriver.git",
"reference": "bbcb697efb394d17bd9ec3d467e7da847cde4509"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/facebook/php-webdriver/zipball/bbcb697efb394d17bd9ec3d467e7da847cde4509",
"reference": "bbcb697efb394d17bd9ec3d467e7da847cde4509",
"shasum": ""
},
"require": {
"php": ">=5.3.19"
},
"require-dev": {
"phpdocumentor/phpdocumentor": "2.*",
"phpunit/phpunit": "3.7.*"
},
"type": "library",
"autoload": {
"classmap": [
"lib/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"description": "A php client for WebDriver",
"homepage": "https://github.com/facebook/php-webdriver",
"keywords": [
"facebook",
"php",
"selenium",
"webdriver"
],
"time": "2014-11-05 20:53:09"
},
{
"name": "guzzlehttp/guzzle",
"version": "5.1.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
"reference": "f1085bb4e023766a66b7b051914ec73bdf7202b5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/f1085bb4e023766a66b7b051914ec73bdf7202b5",
"reference": "f1085bb4e023766a66b7b051914ec73bdf7202b5",
"shasum": ""
},
"require": {
"guzzlehttp/ringphp": "~1.0",
"php": ">=5.4.0"
},
"require-dev": {
"ext-curl": "*",
"phpunit/phpunit": "~4.0",
"psr/log": "~1.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "5.0-dev"
}
},
"autoload": {
"psr-4": {
"GuzzleHttp\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
}
],
"description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients",
"homepage": "http://guzzlephp.org/",
"keywords": [
"client",
"curl",
"framework",
"http",
"http client",
"rest",
"web service"
],
"time": "2014-12-19 20:27:15"
},
{
"name": "guzzlehttp/ringphp",
"version": "1.0.5",
"source": {
"type": "git",
"url": "https://github.com/guzzle/RingPHP.git",
"reference": "a903f51b692427318bc813217c0e6505287e79a4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/RingPHP/zipball/a903f51b692427318bc813217c0e6505287e79a4",
"reference": "a903f51b692427318bc813217c0e6505287e79a4",
"shasum": ""
},
"require": {
"guzzlehttp/streams": "~3.0",
"php": ">=5.4.0",
"react/promise": "~2.0"
},
"require-dev": {
"ext-curl": "*",
"phpunit/phpunit": "~4.0"
},
"suggest": {
"ext-curl": "Guzzle will use specific adapters if cURL is present"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0-dev"
}
},
"autoload": {
"psr-4": {
"GuzzleHttp\\Ring\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
}
],
"time": "2014-12-11 05:50:32"
},
{
"name": "guzzlehttp/streams",
"version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/streams.git",
"reference": "47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/streams/zipball/47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5",
"reference": "47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5",
"shasum": ""
},
"require": {
"php": ">=5.4.0"
},
"require-dev": {
"phpunit/phpunit": "~4.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.0-dev"
}
},
"autoload": {
"psr-4": {
"GuzzleHttp\\Stream\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
}
],
"description": "Provides a simple abstraction over streams of data",
"homepage": "http://guzzlephp.org/",
"keywords": [
"Guzzle",
"stream"
],
"time": "2014-10-12 19:18:40"
},
{
"name": "jakubledl/dissect",
"version": "v1.0.1",
"source": {
"type": "git",
"url": "https://github.com/jakubledl/dissect.git",
"reference": "d3a391de31e45a247e95cef6cf58a91c05af67c4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/jakubledl/dissect/zipball/d3a391de31e45a247e95cef6cf58a91c05af67c4",
"reference": "d3a391de31e45a247e95cef6cf58a91c05af67c4",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"symfony/console": "~2.1"
},
"suggest": {
"symfony/console": "for the command-line tool"
},
"bin": [
"bin/dissect.php",
"bin/dissect"
],
"type": "library",
"autoload": {
"psr-0": {
"Dissect": [
"src/"
]
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"unlicense"
],
"authors": [
{
"name": "Jakub Lédl",
"email": "jakubledl@gmail.com"
}
],
"description": "Lexing and parsing in pure PHP",
"homepage": "https://github.com/jakubledl/dissect",
"keywords": [
"ast",
"lexing",
"parser",
"parsing"
],
"time": "2013-01-29 21:29:14"
},
{
"name": "lisachenko/go-aop-php",
"version": "0.4.3",
"source": {
"type": "git",
"url": "https://github.com/lisachenko/go-aop-php.git",
"reference": "cfa8237aed54cb7a77bfefbedc8ab365f9360b90"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/lisachenko/go-aop-php/zipball/cfa8237aed54cb7a77bfefbedc8ab365f9360b90",
"reference": "cfa8237aed54cb7a77bfefbedc8ab365f9360b90",
"shasum": ""
},
"require": {
"andrewsville/php-token-reflection": "~1.3",
"doctrine/annotations": "~1.0",
"jakubledl/dissect": "~1.0",
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "0.4-dev"
}
},
"autoload": {
"psr-0": {
"Go": "src/"
},
"files": [
"src/Go/Instrument/ClassLoading/AopComposerLoader.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Lissachenko Alexander",
"homepage": "https://github.com/lisachenko"
}
],
"description": "Library for aspect-oriented programming in PHP.",
"homepage": "http://go.aopphp.com/",
"keywords": [
"aop",
"aspect",
"library",
"php"
],
"time": "2013-11-03 10:00:46"
},
{
"name": "natxet/CssMin",
"version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/natxet/CssMin.git",
"reference": "afdcdbdb5fc332313f47a79ae60346df3e69a572"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/natxet/CssMin/zipball/afdcdbdb5fc332313f47a79ae60346df3e69a572",
"reference": "afdcdbdb5fc332313f47a79ae60346df3e69a572",
"shasum": ""
},
"require": {
"php": ">=5.0"
},
"type": "library",
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Joe Scylla",
"email": "joe.scylla@gmail.com",
"homepage": "https://profiles.google.com/joe.scylla"
}
],
"description": "Minifying CSS",
"homepage": "http://code.google.com/p/cssmin/",
"keywords": [
"css",
"minify"
],
"time": "2013-07-02 20:53:35"
},
{
"name": "patchwork/jsqueeze",
"version": "v1.0.5",
"source": {
"type": "git",
"url": "https://github.com/tchwork/jsqueeze.git",
"reference": "2587913cf62143d896943b248b21651314911e2c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/tchwork/jsqueeze/zipball/2587913cf62143d896943b248b21651314911e2c",
"reference": "2587913cf62143d896943b248b21651314911e2c",
"shasum": ""
},
"require": {
"php": ">=5.1.4"
},
"type": "library",
"autoload": {
"psr-0": {
"JSqueeze": "class/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"(Apache-2.0 or GPL-2.0)"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
}
],
"description": "Efficient JavaScript minification in PHP",
"homepage": "https://github.com/tchwork/jsqueeze",
"keywords": [
"compression",
"javascript",
"minification"
],
"time": "2014-11-08 10:03:23"
},
{
"name": "phpunit/php-code-coverage",
"version": "2.0.13",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "0e7d2eec5554f869fa7a4ec2d21e4b37af943ea5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/0e7d2eec5554f869fa7a4ec2d21e4b37af943ea5",
"reference": "0e7d2eec5554f869fa7a4ec2d21e4b37af943ea5",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"phpunit/php-file-iterator": "~1.3",
"phpunit/php-text-template": "~1.2",
"phpunit/php-token-stream": "~1.3",
"sebastian/environment": "~1.0",
"sebastian/version": "~1.0"
},
"require-dev": {
"ext-xdebug": ">=2.1.4",
"phpunit/phpunit": "~4.1"
},
"suggest": {
"ext-dom": "*",
"ext-xdebug": ">=2.2.1",
"ext-xmlwriter": "*"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
""
],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
"homepage": "https://github.com/sebastianbergmann/php-code-coverage",
"keywords": [
"coverage",
"testing",
"xunit"
],
"time": "2014-12-03 06:41:44"
},
{
"name": "phpunit/php-file-iterator",
"version": "1.3.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
"reference": "acd690379117b042d1c8af1fafd61bde001bf6bb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/acd690379117b042d1c8af1fafd61bde001bf6bb",
"reference": "acd690379117b042d1c8af1fafd61bde001bf6bb",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"autoload": {
"classmap": [
"File/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
""
],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "FilterIterator implementation that filters files based on a list of suffixes.",
"homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
"keywords": [
"filesystem",
"iterator"
],
"time": "2013-10-10 15:34:57"
},
{
"name": "phpunit/php-text-template",
"version": "1.2.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-text-template.git",
"reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/206dfefc0ffe9cebf65c413e3d0e809c82fbf00a",
"reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"autoload": {
"classmap": [
"Text/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
""
],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "Simple template engine.",
"homepage": "https://github.com/sebastianbergmann/php-text-template/",
"keywords": [
"template"
],
"time": "2014-01-30 17:20:04"
},
{
"name": "phpunit/php-timer",
"version": "1.0.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git",
"reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/19689d4354b295ee3d8c54b4f42c3efb69cbc17c",
"reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"autoload": {
"classmap": [
"PHP/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
""
],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "Utility class for timing",
"homepage": "https://github.com/sebastianbergmann/php-timer/",
"keywords": [
"timer"
],
"time": "2013-08-02 07:42:54"
},
{
"name": "phpunit/php-token-stream",
"version": "1.3.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-token-stream.git",
"reference": "f8d5d08c56de5cfd592b3340424a81733259a876"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/f8d5d08c56de5cfd592b3340424a81733259a876",
"reference": "f8d5d08c56de5cfd592b3340424a81733259a876",
"shasum": ""
},
"require": {
"ext-tokenizer": "*",
"php": ">=5.3.3"
},
"require-dev": {
"phpunit/phpunit": "~4.2"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.3-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
}
],
"description": "Wrapper around PHP's tokenizer extension.",
"homepage": "https://github.com/sebastianbergmann/php-token-stream/",
"keywords": [
"tokenizer"
],
"time": "2014-08-31 06:12:13"
},
{
"name": "phpunit/phpunit",
"version": "4.4.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "bbe7bcb83b6ec1a9eaabbe1b70d4795027c53ee0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bbe7bcb83b6ec1a9eaabbe1b70d4795027c53ee0",
"reference": "bbe7bcb83b6ec1a9eaabbe1b70d4795027c53ee0",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-json": "*",
"ext-pcre": "*",
"ext-reflection": "*",
"ext-spl": "*",
"php": ">=5.3.3",
"phpunit/php-code-coverage": "~2.0",
"phpunit/php-file-iterator": "~1.3.2",
"phpunit/php-text-template": "~1.2",
"phpunit/php-timer": "~1.0.2",
"phpunit/phpunit-mock-objects": "~2.3",
"sebastian/comparator": "~1.0",
"sebastian/diff": "~1.1",
"sebastian/environment": "~1.1",
"sebastian/exporter": "~1.0",
"sebastian/global-state": "~1.0",
"sebastian/version": "~1.0",
"symfony/yaml": "~2.0"
},
"suggest": {
"phpunit/php-invoker": "~1.1"
},
"bin": [
"phpunit"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "4.4.x-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de",
"role": "lead"
}
],
"description": "The PHP Unit Testing framework.",
"homepage": "https://phpunit.de/",
"keywords": [
"phpunit",
"testing",
"xunit"
],
"time": "2014-12-05 06:49:03"
},
{
"name": "phpunit/phpunit-mock-objects",
"version": "2.3.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
"reference": "c63d2367247365f688544f0d500af90a11a44c65"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/c63d2367247365f688544f0d500af90a11a44c65",
"reference": "c63d2367247365f688544f0d500af90a11a44c65",
"shasum": ""
},
"require": {
"doctrine/instantiator": "~1.0,>=1.0.1",
"php": ">=5.3.3",
"phpunit/php-text-template": "~1.2"
},
"require-dev": {
"phpunit/phpunit": "~4.3"
},
"suggest": {
"ext-soap": "*"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.3.x-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "Mock Object library for PHPUnit",
"homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
"keywords": [
"mock",
"xunit"
],
"time": "2014-10-03 05:12:11"
},
{
"name": "react/promise",
"version": "v2.1.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/promise.git",
"reference": "937b04f1b0ee8f6d180e75a0830aac778ca4bcd6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/promise/zipball/937b04f1b0ee8f6d180e75a0830aac778ca4bcd6",
"reference": "937b04f1b0ee8f6d180e75a0830aac778ca4bcd6",
"shasum": ""
},
"require": {
"php": ">=5.4.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0-dev"
}
},
"autoload": {
"psr-4": {
"React\\Promise\\": "src/"
},
"files": [
"src/functions.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jan Sorgalla",
"email": "jsorgalla@googlemail.com"
}
],
"description": "A lightweight implementation of CommonJS Promises/A for PHP",
"time": "2014-10-15 20:05:57"
},
{
"name": "sebastian/comparator",
"version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
"reference": "c484a80f97573ab934e37826dba0135a3301b26a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/c484a80f97573ab934e37826dba0135a3301b26a",
"reference": "c484a80f97573ab934e37826dba0135a3301b26a",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"sebastian/diff": "~1.1",
"sebastian/exporter": "~1.0"
},
"require-dev": {
"phpunit/phpunit": "~4.1"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.1.x-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Jeff Welch",
"email": "whatthejeff@gmail.com"
},
{
"name": "Volker Dusch",
"email": "github@wallbash.com"
},
{
"name": "Bernhard Schussek",
"email": "bschussek@2bepublished.at"
},
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
}
],
"description": "Provides the functionality to compare PHP values for equality",
"homepage": "http://www.github.com/sebastianbergmann/comparator",
"keywords": [
"comparator",
"compare",
"equality"
],
"time": "2014-11-16 21:32:38"
},
{
"name": "sebastian/diff",
"version": "1.2.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
"reference": "5843509fed39dee4b356a306401e9dd1a931fec7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/5843509fed39dee4b356a306401e9dd1a931fec7",
"reference": "5843509fed39dee4b356a306401e9dd1a931fec7",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"phpunit/phpunit": "~4.2"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.2-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Kore Nordmann",
"email": "mail@kore-nordmann.de"
},
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
}
],
"description": "Diff implementation",
"homepage": "http://www.github.com/sebastianbergmann/diff",
"keywords": [
"diff"
],
"time": "2014-08-15 10:29:00"
},
{
"name": "sebastian/environment",
"version": "1.2.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
"reference": "6e6c71d918088c251b181ba8b3088af4ac336dd7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6e6c71d918088c251b181ba8b3088af4ac336dd7",
"reference": "6e6c71d918088c251b181ba8b3088af4ac336dd7",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"phpunit/phpunit": "~4.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.2.x-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
}
],
"description": "Provides functionality to handle HHVM/PHP environments",
"homepage": "http://www.github.com/sebastianbergmann/environment",
"keywords": [
"Xdebug",
"environment",
"hhvm"
],
"time": "2014-10-25 08:00:45"
},
{
"name": "sebastian/exporter",
"version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
"reference": "c7d59948d6e82818e1bdff7cadb6c34710eb7dc0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c7d59948d6e82818e1bdff7cadb6c34710eb7dc0",
"reference": "c7d59948d6e82818e1bdff7cadb6c34710eb7dc0",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"phpunit/phpunit": "~4.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Jeff Welch",
"email": "whatthejeff@gmail.com"
},
{
"name": "Volker Dusch",
"email": "github@wallbash.com"
},
{
"name": "Bernhard Schussek",
"email": "bschussek@2bepublished.at"
},
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
},
{
"name": "Adam Harvey",
"email": "aharvey@php.net"
}
],
"description": "Provides the functionality to export PHP variables for visualization",
"homepage": "http://www.github.com/sebastianbergmann/exporter",
"keywords": [
"export",
"exporter"
],
"time": "2014-09-10 00:51:36"
},
{
"name": "sebastian/global-state",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
"reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
"reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"phpunit/phpunit": "~4.2"
},
"suggest": {
"ext-uopz": "*"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
}
],
"description": "Snapshotting of global state",
"homepage": "http://www.github.com/sebastianbergmann/global-state",
"keywords": [
"global state"
],
"time": "2014-10-06 09:23:50"
},
{
"name": "sebastian/version",
"version": "1.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/version.git",
"reference": "b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/version/zipball/b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43",
"reference": "b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43",
"shasum": ""
},
"type": "library",
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de",
"role": "lead"
}
],
"description": "Library that helps with managing the version number of Git-hosted PHP projects",
"homepage": "https://github.com/sebastianbergmann/version",
"time": "2014-03-07 15:35:33"
},
{
"name": "symfony/browser-kit",
"version": "v2.6.1",
"target-dir": "Symfony/Component/BrowserKit",
"source": {
"type": "git",
"url": "https://github.com/symfony/BrowserKit.git",
"reference": "421feda1413fbd09f15d9e7ce39790239d7e01e7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/BrowserKit/zipball/421feda1413fbd09f15d9e7ce39790239d7e01e7",
"reference": "421feda1413fbd09f15d9e7ce39790239d7e01e7",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"symfony/dom-crawler": "~2.0"
},
"require-dev": {
"symfony/css-selector": "~2.0",
"symfony/process": "~2.0"
},
"suggest": {
"symfony/process": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.6-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\BrowserKit\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Symfony BrowserKit Component",
"homepage": "http://symfony.com",
"time": "2014-12-02 20:19:20"
},
{
"name": "symfony/css-selector",
"version": "v2.6.1",
"target-dir": "Symfony/Component/CssSelector",
"source": {
"type": "git",
"url": "https://github.com/symfony/CssSelector.git",
"reference": "93eb315b545b60a908271762fb4bfa1f9954b851"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/CssSelector/zipball/93eb315b545b60a908271762fb4bfa1f9954b851",
"reference": "93eb315b545b60a908271762fb4bfa1f9954b851",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.6-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\CssSelector\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Jean-François Simon",
"email": "jeanfrancois.simon@sensiolabs.com"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Symfony CssSelector Component",
"homepage": "http://symfony.com",
"time": "2014-12-02 20:19:20"
},
{
"name": "symfony/dom-crawler",
"version": "v2.6.1",
"target-dir": "Symfony/Component/DomCrawler",
"source": {
"type": "git",
"url": "https://github.com/symfony/DomCrawler.git",
"reference": "300d449f79d74ac62b06edd05214e8dd2e635840"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/DomCrawler/zipball/300d449f79d74ac62b06edd05214e8dd2e635840",
"reference": "300d449f79d74ac62b06edd05214e8dd2e635840",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"symfony/css-selector": "~2.0"
},
"suggest": {
"symfony/css-selector": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.6-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\DomCrawler\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Symfony DomCrawler Component",
"homepage": "http://symfony.com",
"time": "2014-12-02 20:19:20"
},
{
"name": "symfony/yaml",
"version": "v2.6.1",
"target-dir": "Symfony/Component/Yaml",
"source": {
"type": "git",
"url": "https://github.com/symfony/Yaml.git",
"reference": "3346fc090a3eb6b53d408db2903b241af51dcb20"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Yaml/zipball/3346fc090a3eb6b53d408db2903b241af51dcb20",
"reference": "3346fc090a3eb6b53d408db2903b241af51dcb20",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.6-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\Yaml\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Symfony Yaml Component",
"homepage": "http://symfony.com",
"time": "2014-12-02 20:19:20"
}
],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": {
"henrikbjorn/lurker": 20
},
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
"php": ">=5.4.0"
},
"platform-dev": []
}
PK ?VxC C LICENSEnu W+A The MIT License (MIT)
Copyright (c) 2014 Codegyre developers team
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
PK ?Vi,a W W robonu W+A #!/usr/bin/env php
execute();
PK ?V / r r .travis.ymlnu W+A language: php
php:
- 5.4
- 5.5
before_script:
- composer install -n --prefer-source
script: "./robo test"PK ?V>D D codeception.ymlnu W+A actor: Guy
paths:
tests: tests
log: tests/_log
data: tests/_data
helpers: tests/_helpers
settings:
bootstrap: _bootstrap.php
colors: true
memory_limit: 1024M
modules:
config:
Db:
dsn: ''
user: ''
password: ''
dump: tests/_data/dump.sql
PK ?V 0 RoboFile.phpnu W+A yell("Releasing Robo");
$this->docs();
$this->taskGitStack()
->add('-A')
->commit("auto-update")
->pull()
->push()
->run();
$this->taskGitHubRelease(\Robo\Runner::VERSION)
->uri('Codegyre/Robo')
->askDescription()
->run();
$this->pharPublish();
$this->versionBump();
}
public function test($args = "")
{
return $this->taskCodecept()
->args($args)
->run();
}
public function changed($addition)
{
$this->taskChangelog()
->version(\Robo\Runner::VERSION)
->change($addition)
->run();
}
public function versionBump($version = null)
{
if (!$version) {
$versionParts = explode('.', \Robo\Runner::VERSION);
$versionParts[count($versionParts)-1]++;
$version = implode('.', $versionParts);
}
$this->taskReplaceInFile(__DIR__.'/src/Runner.php')
->from("VERSION = '".\Robo\Runner::VERSION."'")
->to("VERSION = '".$version."'")
->run();
}
/**
* generate docs
*/
public function docs()
{
$docs = [];
foreach (get_declared_classes() as $task) {
if (!preg_match('~Robo\\\Task.*?Task$~', $task)) continue;
$docs[basename((new ReflectionClass($task))->getFileName(),'.php')][] = $task;
}
ksort($docs);
$taskGenerator = $this->taskGenDoc('docs/tasks.md')->filterClasses(function (\ReflectionClass $r) {
return !$r->isAbstract() or $r->isTrait();
})->prepend("# Tasks");
foreach ($docs as $file => $classes) {
$taskGenerator->docClass("Robo\\Task\\$file");
foreach ($classes as $task) {
$taskGenerator->docClass($task);
}
}
$taskGenerator->filterMethods(function(\ReflectionMethod $m) {
if ($m->isConstructor() or $m->isDestructor() or $m->isStatic()) return false;
return !in_array($m->name, ['run', '', '__call', 'getCommand']) and $m->isPublic(); // methods are not documented
})->processClassSignature(function ($c) {
return "## ". preg_replace('~Task$~', '', $c->getShortName())."\n";
})->processClassDocBlock(function($c, $doc) {
return preg_replace('~@method .*?\wTask (.*?)\)~', '* `$1)` ', $doc);
})->processMethodSignature(function (\ReflectionMethod $m, $text) {
return str_replace('#### *public* ', '* `', $text) . '`';
})->processMethodDocBlock(function(\ReflectionMethod $m, $text) {
return $text ? ' ' . strtok($text, "\n") : '';
})->run();
}
public function pharBuild()
{
$packer = $this->taskPackPhar('robo.phar');
$files = Finder::create()->ignoreVCS(true)
->files()
->name('*.php')
->path('src')
->path('vendor')
->exclude('codeception')
->in(__DIR__);
foreach ($files as $file) {
$packer->addFile($file->getRelativePathname(), $file->getRealPath());
}
$packer->addFile('robo','robo')
->executable('robo')
->run();
}
public function pharInstall()
{
$this->taskExec('sudo cp')
->arg('robo.phar')
->arg('/usr/bin/robo')
->run();
}
public function pharPublish()
{
$this->pharBuild();
rename('robo.phar', 'robo-release.phar');
$this->taskGitStack()->checkout('gh-pages')->run();
rename('robo-release.phar', 'robo.phar');
$this->taskGitStack()
->add('robo.phar')
->commit('robo.phar published')
->push('origin','gh-pages')
->checkout('master')
->run();
}
public function watch()
{
$this->taskWatch()->monitor(['composer.json', 'composer.lock'], function() {
$this->taskComposerUpdate()->run();
})->run();
}
/**
* Test parallel execution
*/
public function para()
{
$this->taskParallelExec()
->process('php ~/demos/robotests/parascript.php hey')
->process('php ~/demos/robotests/parascript.php hoy')
->process('php ~/demos/robotests/parascript.php gou')
->process('php ~/demos/robotests/parascript.php die')
->run();
}
public function optbool($opts = ['silent|s' => false])
{
if (!$opts['silent']) $this->say("Hello, world");
}
}
PK ?V?\
composer.jsonnu W+A {
"name": "codegyre/robo",
"description": "Modern task runner",
"license": "MIT",
"authors": [
{
"name": "Davert",
"email": "davert.php@resend.cc"
}
],
"autoload":{
"psr-4":{
"Robo\\":"src"
}
},
"bin":["robo"],
"require": {
"php": ">=5.4.0",
"symfony/finder": "~2.1",
"symfony/console": "~2.1",
"symfony/process": "~2.1",
"symfony/filesystem": "~2.1",
"henrikbjorn/lurker": "1.0.*@dev"
},
"require-dev": {
"patchwork/jsqueeze": "~1.0",
"natxet/CssMin": "~3.0",
"codeception/codeception": "~2.0",
"codeception/verify": "0.2.*",
"codeception/aspect-mock": "0.4.*"
}
}
PK ?V CHANGELOG.mdnu W+A # Changelog
Thanks to everyone for using it and submitting pull requests! You are awesome.
Next release is going to be 0.5.0 with some refactorings included.
File structure will be changed to match PSR-4 standard.
Thanks to everyone who submitted useful tasks. It's better to have many tasks than few.
However, once the core is stabilized we plan to move some tasks out of main repo but make them easily installed via composer.
#### 0.4.7
* [Minify] Task added by @Rarst. Requires additional dependencies installed *2014-12-26*
* [Help command is populated from annotation](https://github.com/Codegyre/Robo/pull/71) by @jonsa *2014-12-26*
* Allow empty values as defaults to optional options by @jonsa *2014-12-26*
* `PHP_WINDOWS_VERSION_BUILD` constant is used to check for Windows in tasks by @boedah *2014-12-26*
* [Copy][EmptyDir] Fixed infinite loop by @boedah *2014-12-26*
* [ApiGen] Task added by @drobert *2014-12-26*
* [FileSystem] Equalized `copy` and `chmod` argument to defaults by @Rarst (BC break) *2014-12-26*
* [FileSystem] Added missing umask argument to chmod() method of FileSystemStack by @Rarst
* [SemVer] Fixed file read and exit code
* [Codeception] fixed codeception coverageHtml option by @gunfrank *2014-12-26*
* [phpspec] Task added by @SebSept *2014-12-26*
* Shortcut options: if option name is like foo|f, assign f as shortcut by @jschnare *2014-12-26*
* [Rsync] Shell escape rsync exclude pattern by @boedah. Fixes #77 (BC break) *2014-12-26*
* [Npm] Task added by @AAlakkad *2014-12-26*
#### 0.4.6
* [Exec] Output from buffer is not spoiled by special chars *2014-10-17*
* [PHPUnit] detect PHPUnit on Windows or when is globally installed with Composer *2014-10-17*
* Output: added methods askDefault and confirm by @bkawakami *2014-10-17*
* [Svn] Task added by @anvi *2014-08-13*
* [Stack] added dir and printed options *2014-08-12*
* [ExecTask] now uses Executable trait with printed, dir, arg, option methods added *2014-08-12*
#### 0.4.5
* [Watch] bugfix: Watch only tracks last file if given array of files #46 *2014-08-05*
* All executable tasks can configure working directory with `dir` option
* If no value for an option is provided, assume it's a VALUE_NONE option. #47 by @pfaocle
* [Changelog] changed style *2014-06-27*
* [GenMarkDown] fixed formatting annotations *2014-06-27*
#### 0.4.4 06/05/2014
* Output can be disabled in all executable tasks by ->printed(false)
* disabled timeouts by default in ParallelExec
* better descriptions for Result output
* changed ParallelTask to display failed process in list
* Changed Output to be stored globally in Robo\Runner class
* Added **SshTask** by @boedah
* Added **RsyncTask** by @boedah
* false option added to proceess* callbacks in GenMarkDownTask to skip processing
#### 0.4.3 05/21/2014
* added `SemVer` task by **@jadb**
* `yell` output method added
* task `FileSystemStack` added
* `MirrorDirTask` added by **@devster**
* switched to Symfony Filesystem component
* options can be used to commands
* array arguments can be used in commands
#### 0.4.2 05/09/2014
* ask can now hide answers
* Trait Executable added to provide standard way for passing arguments and options
* added ComposerDumpAutoload task by **@pmcjury**
* added FileSystem task by **@jadb**
* added CommonStack metatsk to have similar interface for all stacked tasks by **@jadb**
* arguments and options can be passed into variable and used in exec task
* passing options into commands
#### 0.4.1 05/05/2014
* [BC] `taskGit` task renamed to `taskGitStack` for compatibility
* unit and functional tests added
* all command tasks now use Symfony\Process to execute them
* enabled Bower and Concat tasks
* added `printed` param to Exec task
* codeception `suite` method now returns `$this`
* timeout options added to Exec task
#### 0.4.0 04/27/2014
* Codeception task added
* PHPUnit task improved
* Bower task added by @jadb
* ParallelExec task added
* Symfony Process component used for execution
* Task descriptions taken from first line of annotations
* `CommandInterface` added to use tasks as parameters
#### 0.3.3 02/25/2014
* PHPUnit basic task
* fixed doc generation
#### 0.3.5 02/21/2014
* changed generated init template
#### 0.3.4 02/21/2014
* [PackPhar] ->executable command will remove hashbang when generated stub file
* [Git][Exec] stopOnFail option for Git and Exec stack
* [ExecStack] shortcut for executing bash commands in stack
#### 0.3.2 02/20/2014
* release process now includes phar
* phar executable method added
* git checkout added
* phar pack created
#### 0.3.0 02/11/2014
* Dynamic configuration via magic methods
* added WriteToFile task
* Result class for managing exit codes and error messages
#### 0.2.0 01/29/2014
* Merged Tasks and Traits to same file
* Added Watcher task
* Added GitHubRelease task
* Added Changelog task
* Added ReplaceInFile taskPK ?V7; tests/unit.suite.ymlnu W+A # Codeception Test Suite Configuration
# suite for unit (internal) tests.
# RUN `build` COMMAND AFTER ADDING/REMOVING MODULES.
class_name: CodeGuy
modules:
enabled: [Asserts, CodeHelper]
PK ?VYF F tests/cli.suite.ymlnu W+A class_name: CliGuy
modules:
enabled: [Cli, Filesystem, CliHelper]
PK ?VX tests/_data/RoboFile.phpnu W+A false, 'to' => null]) {
}
/**
* Calculate the fibonacci sequence between two numbers.
*
* Graphic output will look like
* +----+---+-------------+
* | | | |
* | |-+-| |
* |----+-+-+ |
* | | |
* | | |
* | | |
* +--------+-------------+
*
* @param int $start Number to start from
* @param $steps int Number of steps to perform
* @param array $opts
* @option $graphic Display the sequence graphically using cube
* representation
*/
public function fibonacci($start, $steps, $opts = ['graphic' => false])
{
}
/** Compact doc comment */
public function compact()
{
}
}
PK ?V6IN9 9 tests/_data/dump.sqlnu W+A /* Replace this file with actual dump of your database */PK ?VB tests/_data/claypit/box/robo.txtnu W+A HELLOROBOPK ?V tests/_data/claypit/a.txtnu W+A APK ?V1J tests/_data/claypit/b.txtnu W+A BPK ?Vxt tests/_bootstrap.phpnu W+A init([
'debug' => true,
'includePaths' => [
__DIR__.'/../src',
__DIR__.'/../vendor/symfony/process',
__DIR__.'/../vendor/symfony/console',
]
]);PK ?ViθNH H tests/unit/TaskInfoTest.phpnu W+A infoFor('printMe')->getDescription())
->equals('Prints something to console');
verify($this->infoFor('installMe')->getDescription())
->equals('installs something');
verify($this->infoFor('updateMe')->getDescription())
->equals('updates something');
}
public function testAnnotationName()
{
verify($this->infoFor('printMe')->getName())
->equals('print:me');
verify($this->infoFor('installMe')->getName())
->equals('install');
verify($this->infoFor('buildMultipleDatabases')->getName())
->equals('build:multiple-databases');
}
public function testParams()
{
$args = $this->infoFor('installMe')->getArguments();
verify($args)->hasKey('param1');
verify($args)->hasKey('param2');
verify($args['param2'])->equals('optional');
}
public function testOptions()
{
$args = $this->infoFor('useOptions')->getArguments();
verify($args)->hasKey('param');
verify($args)->hasntKey('options');
$opts = $this->infoFor('useOptions')->getOptions();
verify(array_keys($opts))->contains('debug');
verify(array_keys($opts))->contains('output');
verify($opts['debug'])->true();
verify($opts['output'])->false();
}
/**
* Prints something to console
*/
public function printMe() {}
/**
* Really useful method
* @name install
* @desc installs something
*/
public function installMe($param1, $param2 = 'optional') {}
/**
* Really useful method
* @description updates something
*/
public function updateMe() {}
public function useOptions($param, $options = ['debug' => true, 'output' => false]) {}
public function buildMultipleDatabases() {}
}PK ?Vz
tests/unit/BowerTest.phpnu W+A baseBower = test::double('Robo\Task\BaseBowerTask', [
'getOutput' => new \Symfony\Component\Console\Output\NullOutput()
]);
}
// tests
public function testBowerInstall()
{
$bower = test::double('Robo\Task\BowerInstallTask', ['executeCommand' => null]);
$this->taskBowerInstall('bower')->run();
$bower->verifyInvoked('executeCommand', ['bower install']);
}
public function testBowerUpdate()
{
$bower = test::double('Robo\Task\BowerUpdateTask', ['executeCommand' => null]);
$this->taskBowerUpdate('bower')->run();
$bower->verifyInvoked('executeCommand', ['bower update']);
}
public function testBowerInstallCommand()
{
verify(
$this->taskBowerInstall('bower')->getCommand()
)->equals('bower install');
verify(
$this->taskBowerInstall('bower')->getCommand()
)->equals('bower install');
verify(
$this->taskBowerInstall('bower')
->allowRoot()
->forceLatest()
->offline()
->noDev()
->getCommand()
)->equals('bower install --allow-root --force-latest --offline --production');
}
}PK ?Vo tests/unit/OutputTest.phpnu W+A nullDialog = new \Symfony\Component\Console\Helper\DialogHelper;
}
public function testSay()
{
$this->say('Hello, world!');
$char = strncasecmp(PHP_OS, 'WIN', 3) == 0 ? '>' : '➜';
$this->guy->seeInOutput($char . ' Hello, world!');
}
public function testAskReply()
{
$this->expectedAnswer = 'jon';
verify($this->ask('What is your name?'))->equals('jon');
$this->guy->seeOutputEquals('? What is your name? ');
}
public function testAskMethod()
{
$this->nullDialog = $this->getMock('\Symfony\Component\Console\Helper\DialogHelper', ['ask']);
$this->nullDialog->expects($this->once())
->method('ask');
$this->ask('What is your name?');
}
public function testAskHiddenMethod()
{
$this->nullDialog = $this->getMock('\Symfony\Component\Console\Helper\DialogHelper', ['askHiddenResponse']);
$this->nullDialog->expects($this->once())
->method('askHiddenResponse');
$this->ask('What is your name?', true);
}
public function testYell()
{
$this->yell('Buuuu!');
$this->guy->seeInOutput('Buuuu!');
}
protected function getDialog()
{
$stream = fopen('php://memory', 'r+', false);
fputs($stream, $this->expectedAnswer);
rewind($stream);
$this->nullDialog->setInputStream($stream);
return $this->nullDialog;
}
}PK ?Vkؑ tests/unit/ParallelExecTest.phpnu W+A process = test::double('Symfony\Component\Process\Process', [
'run' => false,
'start' => false,
'isRunning' => false,
'getOutput' => 'Hello world',
'getExitCode' => 0
]);
}
public function testParallelExec()
{
$result = $this->taskParallelExec()
->process('ls 1')
->process('ls 2')
->process('ls 3')
->run();
$this->process->verifyInvokedMultipleTimes('start', 3);
verify($result->getExitCode())->equals(0);
$this->guy->seeInOutput("3 processes ended in 0.00 s");
}
}PK ?V6 C
tests/unit/RunnerTest.phpnu W+A callMethod('createCommand', ['hello']);
$yell = $command->getDefinition()->getOption('yell');
verify($yell->isValueOptional())
->equals(false);
verify($yell->getDefault())
->equals(false);
$to = $command->getDefinition()->getOption('to');
verify($to->isValueOptional())
->equals(true);
verify($to->getDefault())
->equals(null);
}
public function testCommandDocumentation()
{
$command = $this->callMethod('createCommand', ['fibonacci']);
verify($command->getDescription())
->equals('Calculate the fibonacci sequence between two numbers.');
}
public function testCommandCompactDocumentation()
{
$command = $this->callMethod('createCommand', ['compact']);
verify($command->getDescription())
->equals('Compact doc comment');
}
public function testCommandArgumentDocumentation()
{
$command = $this->callMethod('createCommand', ['fibonacci']);
$start = $command->getDefinition()->getArgument('start');
verify($start->getDescription())
->equals('Number to start from');
$steps = $command->getDefinition()->getArgument('steps');
verify($steps->getDescription())
->equals('Number of steps to perform');
}
public function testCommandOptionDocumentation()
{
$command = $this->callMethod('createCommand', ['fibonacci']);
$graphic = $command->getDefinition()->getOption('graphic');
verify($graphic->getDescription())
->equals('Display the sequence graphically using cube representation');
}
public function testCommandHelpDocumentation()
{
$command = $this->callMethod('createCommand', ['fibonacci']);
verify($command->getHelp())
->contains(' +----+---+');
}
protected function _before()
{
parent::_before();
require_once codecept_data_dir() . DIRECTORY_SEPARATOR . \Robo\Runner::ROBOFILE;
$this->reflector = new ReflectionClass('Robo\\Runner');
$this->runner = new \Robo\Runner;
}
/**
* @param string $name
* @param array $args
* @return \Symfony\Component\Console\Command\Command
*/
protected function callMethod($name, $args = array())
{
$method = $this->reflector->getMethod($name);
$method->setAccessible(true);
return $method->invokeArgs($this->runner, $args);
}
}
PK ?VOq= = tests/unit/CommandStackTest.phpnu W+A 'some-executable'
));
verify($commandStack
->exec('some-executable status')
->getCommand()
)->equals('some-executable status');
}
public function testExecStackCommandIsNotTrimmedIfHavingSameCharsAsExecutable()
{
$commandStack = Stub::make('Robo\Task\Shared\CommandStack', array(
'executable' => 'some-executable'
));
verify($commandStack
->exec('status')
->getCommand()
)->equals('some-executable status');
}
}
PK ?VJ tests/unit/PhpspecTest.phpnu W+A phpspec = test::double('Robo\Task\PhpspecTask', [
'executeCommand' => null,
'getOutput' => new \Symfony\Component\Console\Output\NullOutput()
]);
}
// tests
public function testPhpSpecRun()
{
$this->taskPhpspec('phpspec')->run();
$this->phpspec->verifyInvoked('executeCommand', ['phpspec run']);
}
public function testPHPSpecCommand()
{
$task = $this->taskPhpspec('phpspec')
->stopOnFailure()
->noCodeGeneration()
->quiet()
->verbose('vv')
->noAnsi()
->noInteraction()
->format('pretty');
verify($task->getCommand())->equals('phpspec run --stop-on-failure --no-code-generation --quiet -vv --no-ansi --no-interaction --format pretty');
$task->run();
$this->phpspec->verifyInvoked('executeCommand', ['phpspec run --stop-on-failure --no-code-generation --quiet -vv --no-ansi --no-interaction --format pretty']);
}
}PK ?VE! tests/unit/ResultTest.phpnu W+A 0]);
$this->guy->seeInOutput('The foo barred');
$this->guy->seeInOutput('Error');
$this->guy->seeInOutput('[ResultDummyTask]');
$this->assertSame($task, $result->getTask());
$this->assertEquals(1, $result->getExitCode());
$this->assertEquals('The foo barred', $result->getMessage());
$this->assertEquals(['time' => 0], $result->getData());
$taskClone = $result->cloneTask();
$this->assertNotSame($task, $taskClone);
$this->assertInstanceOf('Robo\Task\Shared\TaskInterface', $taskClone);
}
}
class ResultDummyTask implements \Robo\Task\Shared\TaskInterface
{
public function run()
{
}
}
PK ?VC tests/unit/ApiGenUnitTest.phpnu W+A apigen= test::double('Robo\Task\ApiGenTask', [
'executeCommand' => null,
'getOutput' => new \Symfony\Component\Console\Output\NullOutput()
]);
}
// tests
public function testPHPUnitCommand()
{
// need an explicit Traversable
$skippedPaths = new \SplDoublyLinkedList();
$skippedPaths->push('a');
$skippedPaths->push('b');
// going for 'bang for the buck' here re: test converage
$task = $this->taskApiGen('apigen')
->config('./apigen.neon')
->source('src') // single string value of Traversable
->extensions('php') // single string value of List
->exclude(array('test', 'tmp')) // array value of Traversable
->skipDocPath($skippedPaths) // multi-value of Traversable
->charset(array('utf8','iso88591')) // array of List
->internal('no') // boolean as supported "no"
->php(true) // boolean as boolean
->tree('Y') // boolean as string
->debug('n');
$cmd = 'apigen --config ./apigen.neon --source src --extensions php --exclude test --exclude tmp --skip-doc-path a --skip-doc-path b --charset utf8,iso88591 --internal no --php yes --tree yes --debug no';
verify($task->getCommand())->equals($cmd);
$task->run();
$this->apigen->verifyInvoked('executeCommand', [$cmd]);
}
}
PK ?VB.dw tests/unit/SvnTest.phpnu W+A svn = test::double('Robo\Task\SvnStackTask', [
'taskExec' => new \AspectMock\Proxy\Anything(),
'getOutput' => new \Symfony\Component\Console\Output\NullOutput()
]);
}
// tests
public function testSvnStackRun()
{
$this->taskSvnStack('svn')->update()->add()->run();
$this->svn->verifyInvoked('taskExec', ['svn add ']);
$this->svn->verifyInvoked('taskExec', ['svn update ']);
}
public function testSvnStackCommands()
{
verify(
$this->taskSvnStack('svn', 'guest', 'foo')
->checkout('svn://server/trunk')
->update()
->add()
->commit('changed')
->getCommand()
)->equals("svn --username guest --password foo checkout svn://server/trunk && svn --username guest --password foo update && svn --username guest --password foo add && svn --username guest --password foo commit -m 'changed' ");
}
}
PK ?V*
E*' *' tests/unit/CodeGuy.phpnu W+A scenario->runStep(new \Codeception\Step\Action('assertEquals', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that two variables are not equal
*
* @param $expected
* @param $actual
* @param string $message
* @see \Codeception\Module\Asserts::assertNotEquals()
*/
public function assertNotEquals($expected, $actual, $message = null) {
return $this->scenario->runStep(new \Codeception\Step\Action('assertNotEquals', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that expected is greater than actual
*
* @param $expected
* @param $actual
* @param string $message
* @see \Codeception\Module\Asserts::assertGreaterThan()
*/
public function assertGreaterThan($expected, $actual, $message = null) {
return $this->scenario->runStep(new \Codeception\Step\Action('assertGreaterThan', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* @deprecated
* @see \Codeception\Module\Asserts::assertGreaterThen()
*/
public function assertGreaterThen($expected, $actual, $message = null) {
return $this->scenario->runStep(new \Codeception\Step\Action('assertGreaterThen', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that expected is greater or equal than actual
*
* @param $expected
* @param $actual
* @param string $message
* @see \Codeception\Module\Asserts::assertGreaterThanOrEqual()
*/
public function assertGreaterThanOrEqual($expected, $actual, $message = null) {
return $this->scenario->runStep(new \Codeception\Step\Action('assertGreaterThanOrEqual', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* @deprecated
* @see \Codeception\Module\Asserts::assertGreaterThenOrEqual()
*/
public function assertGreaterThenOrEqual($expected, $actual, $message = null) {
return $this->scenario->runStep(new \Codeception\Step\Action('assertGreaterThenOrEqual', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that expected is less than actual
*
* @param $expected
* @param $actual
* @param string $message
* @see \Codeception\Module\Asserts::assertLessThan()
*/
public function assertLessThan($expected, $actual, $message = null) {
return $this->scenario->runStep(new \Codeception\Step\Action('assertLessThan', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that expected is less or equal than actual
*
* @param $expected
* @param $actual
* @param string $message
* @see \Codeception\Module\Asserts::assertLessThanOrEqual()
*/
public function assertLessThanOrEqual($expected, $actual, $message = null) {
return $this->scenario->runStep(new \Codeception\Step\Action('assertLessThanOrEqual', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that haystack contains needle
*
* @param $needle
* @param $haystack
* @param string $message
* @see \Codeception\Module\Asserts::assertContains()
*/
public function assertContains($needle, $haystack, $message = null) {
return $this->scenario->runStep(new \Codeception\Step\Action('assertContains', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that haystack doesn't contain needle.
*
* @param $needle
* @param $haystack
* @param string $message
* @see \Codeception\Module\Asserts::assertNotContains()
*/
public function assertNotContains($needle, $haystack, $message = null) {
return $this->scenario->runStep(new \Codeception\Step\Action('assertNotContains', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that variable is empty.
*
* @param $actual
* @param string $message
* @see \Codeception\Module\Asserts::assertEmpty()
*/
public function assertEmpty($actual, $message = null) {
return $this->scenario->runStep(new \Codeception\Step\Action('assertEmpty', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that variable is not empty.
*
* @param $actual
* @param string $message
* @see \Codeception\Module\Asserts::assertNotEmpty()
*/
public function assertNotEmpty($actual, $message = null) {
return $this->scenario->runStep(new \Codeception\Step\Action('assertNotEmpty', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that variable is NULL
*
* @param $actual
* @param string $message
* @see \Codeception\Module\Asserts::assertNull()
*/
public function assertNull($actual, $message = null) {
return $this->scenario->runStep(new \Codeception\Step\Action('assertNull', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that variable is not NULL
*
* @param $actual
* @param string $message
* @see \Codeception\Module\Asserts::assertNotNull()
*/
public function assertNotNull($actual, $message = null) {
return $this->scenario->runStep(new \Codeception\Step\Action('assertNotNull', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that condition is positive.
*
* @param $condition
* @param string $message
* @see \Codeception\Module\Asserts::assertTrue()
*/
public function assertTrue($condition, $message = null) {
return $this->scenario->runStep(new \Codeception\Step\Action('assertTrue', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that condition is negative.
*
* @param $condition
* @param string $message
* @see \Codeception\Module\Asserts::assertFalse()
*/
public function assertFalse($condition, $message = null) {
return $this->scenario->runStep(new \Codeception\Step\Action('assertFalse', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Fails the test with message.
*
* @param $message
* @see \Codeception\Module\Asserts::fail()
*/
public function fail($message) {
return $this->scenario->runStep(new \Codeception\Step\Action('fail', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
*
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Module\CodeHelper::seeInOutput()
*/
public function canSeeInOutput($value) {
return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeInOutput', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
*
* @see \Codeception\Module\CodeHelper::seeInOutput()
*/
public function seeInOutput($value) {
return $this->scenario->runStep(new \Codeception\Step\Assertion('seeInOutput', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
*
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Module\CodeHelper::seeOutputEquals()
*/
public function canSeeOutputEquals($value) {
return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeOutputEquals', func_get_args()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
*
* @see \Codeception\Module\CodeHelper::seeOutputEquals()
*/
public function seeOutputEquals($value) {
return $this->scenario->runStep(new \Codeception\Step\Assertion('seeOutputEquals', func_get_args()));
}
}
PK ?V(
tests/unit/GitTest.phpnu W+A git = test::double('Robo\Task\GitStackTask', [
'taskExec' => new \AspectMock\Proxy\Anything(),
'getOutput' => new \Symfony\Component\Console\Output\NullOutput()
]);
}
// tests
public function testGitStackRun()
{
$this->taskGitStack('git')->stopOnFail()->add('-A')->pull()->run();
$this->git->verifyInvoked('taskExec', ['git add -A']);
$this->git->verifyInvoked('taskExec', ['git pull']);
$this->taskGitStack('git')->add('-A')->pull()->run();
$this->git->verifyInvoked('taskExec', ['git add -A && git pull']);
}
public function testGitStackCommands()
{
verify(
$this->taskGitStack()
->cloneRepo('http://github.com/Codegyre/Robo')
->pull()
->add('-A')
->commit('changed')
->push()
->getCommand()
)->equals("git clone http://github.com/Codegyre/Robo && git pull && git add -A && git commit -m 'changed' && git push");
}
}PK ?V_T} tests/unit/SshTest.phpnu W+A taskSshExec('remote.example.com', 'user')
->exec('cd /var/www/html')
->exec('ls -la')
->exec('chmod g+x logs')
->getCommand()
)->equals("ssh user@remote.example.com 'cd /var/www/html && ls -la && chmod g+x logs'");
}
}PK ?V+- tests/unit/PHPUnitTest.phpnu W+A phpunit = test::double('Robo\Task\PHPUnitTask', [
'executeCommand' => null,
'getOutput' => new \Symfony\Component\Console\Output\NullOutput()
]);
}
// tests
public function testPhpUnitRun()
{
$this->taskPHPUnit()->run();
$this->phpunit->verifyInvoked('executeCommand', ['vendor/bin/phpunit']);
}
public function testPHPUnitCommand()
{
$task = $this->taskPHPUnit('phpunit')
->bootstrap('bootstrap.php')
->filter('Model')
->group('important')
->xml('result.xml')
->debug();
verify($task->getCommand())->equals('phpunit --bootstrap bootstrap.php --filter Model --group important --log-xml result.xml --debug');
$task->run();
$this->phpunit->verifyInvoked('executeCommand', ['phpunit --bootstrap bootstrap.php --filter Model --group important --log-xml result.xml --debug']);
}
}PK ?V P P tests/unit/_bootstrap.phpnu W+A baseNpm = test::double('Robo\Task\BaseNpmTask', [
'getOutput' => new \Symfony\Component\Console\Output\NullOutput()
]);
}
// tests
public function testNpmInstall()
{
$npm = test::double('Robo\Task\NpmInstallTask', ['executeCommand' => null]);
$this->taskNpmInstall('npm')->run();
$npm->verifyInvoked('executeCommand', ['npm install']);
}
public function testNpmUpdate()
{
$npm = test::double('Robo\Task\NpmUpdateTask', ['executeCommand' => null]);
$this->taskNpmUpdate('npm')->run();
$npm->verifyInvoked('executeCommand', ['npm update']);
}
public function testNpmInstallCommand()
{
verify(
$this->taskNpmInstall('npm')->getCommand()
)->equals('npm install');
verify(
$this->taskNpmInstall('npm')->getCommand()
)->equals('npm install');
verify(
$this->taskNpmInstall('npm')
->noDev()
->getCommand()
)->equals('npm install --production');
}
}PK ?V>nT T tests/unit/PHPServerTest.phpnu W+A process = test::double('Symfony\Component\Process\Process', [
'run' => false,
'start' => false,
'getOutput' => 'Hello world',
'getExitCode' => 0
]);
test::double('Robo\Task\PhpServerTask', ['getOutput' => new \Symfony\Component\Console\Output\NullOutput()]);
}
public function testServerBackgroundRun()
{
$this->taskServer('8000')->background()->run();
$this->process->verifyInvoked('start');
}
public function testServerRun()
{
$this->taskServer('8000')->run();
$this->process->verifyInvoked('run');
}
public function testServerCommand()
{
verify(
$this->taskServer('8000')
->dir('web')
->getCommand()
)->equals('php -S 127.0.0.1:8000 -t web');
}
}PK ?V