├── .gitignore
├── .scrutinizer.yml
├── src
└── Nash
│ ├── InvalidMessageFormatException.php
│ ├── UnsupportedCharacterException.php
│ └── Numerology.php
├── .travis.yml
├── composer.json
├── phpunit.xml.dist
├── LICENSE
├── README.md
├── tests
└── Nash
│ └── NumerologyTest.php
└── composer.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | vendor
2 |
--------------------------------------------------------------------------------
/.scrutinizer.yml:
--------------------------------------------------------------------------------
1 | checks:
2 | php:
3 | code_rating: true
4 | duplication: true
5 | tools:
6 | external_code_coverage:
7 | timeout: 600
8 |
--------------------------------------------------------------------------------
/src/Nash/InvalidMessageFormatException.php:
--------------------------------------------------------------------------------
1 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | tests
21 |
22 |
23 |
24 |
25 | src/Nash
26 |
27 |
28 |
29 |
32 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Nelson Senna do Amaral
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://travis-ci.org/nelsonsar/nash)
2 | [](https://scrutinizer-ci.com/g/nelsonsar/nash/?branch=master)
3 | [](https://scrutinizer-ci.com/g/nelsonsar/nash/?branch=master)
4 |
5 | # Nash
6 |
7 | *"I did have strange ideas during certain periods of time."* - John Forbes Nash, Jr.
8 |
9 | Nash is a [bijective](http://en.wikipedia.org/wiki/Bijective_numeration) [base 26](http://en.wikipedia.org/wiki/Hexavigesimal) encoder and decoder from a beautiful mind (and that is not mine).
10 |
11 | ## How to use it
12 |
13 | ```php
14 | assertEquals($expectedResult, $result);
15 | }
16 |
17 | public function messageProvider()
18 | {
19 | return array(
20 | array('BAC', 2056),
21 | array('mail', 217035)
22 | );
23 | }
24 |
25 | /**
26 | * @expectedException Nash\UnsupportedCharacterException
27 | * @expectedExceptionMessage Message has invalid characters
28 | */
29 | public function testCoverMessageShouldThrowAnExceptionWhenMessageHasNonSupportedCharacters()
30 | {
31 | $message = '_a_';
32 |
33 | Numerology::coverMessage($message);
34 | }
35 |
36 | /**
37 | * @expectedException Nash\InvalidMessageFormatException
38 | * @expectedExceptionMessage Invalid message format
39 | */
40 | public function testCoverMessageShouldThrowAnExceptionWhenMessageIsNotAString()
41 | {
42 | $message = array();
43 |
44 | Numerology::coverMessage($message);
45 | }
46 |
47 | /**
48 | * @dataProvider coveredMessageProvider
49 | */
50 | public function testUncoverMessage($message, $expectedResult)
51 | {
52 | $result = Numerology::uncoverMessage($message);
53 |
54 | $this->assertEquals($expectedResult, $result);
55 | }
56 |
57 | public function coveredMessageProvider()
58 | {
59 | return array(
60 | array(2056, 'bac'),
61 | array(-1, 'a')
62 | );
63 | }
64 |
65 | /**
66 | * @expectedException Nash\InvalidMessageFormatException
67 | * @expectedExceptionMessage Invalid message format
68 | */
69 | public function testUncoverMessageShouldThrowAnExceptionWhenMessageIsNotANumber()
70 | {
71 | $message = 'aaaaa';
72 |
73 | Numerology::uncoverMessage($message);
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/src/Nash/Numerology.php:
--------------------------------------------------------------------------------
1 | 0) {
43 | --$coveredMessage;
44 | $uncoveredLetterAsciiCode = $coveredMessage % self::JOHN_NASH_BASE + self::ASCII_CODE_LETTER_A;
45 | $uncoveredLetter = chr($uncoveredLetterAsciiCode);
46 |
47 | if (false === self::isAllowedLetter($uncoveredLetter)) throw new UnsupportedCharacterException;
48 |
49 | $result .= $uncoveredLetter;
50 | $coveredMessage = intval($coveredMessage / self::JOHN_NASH_BASE);
51 | }
52 |
53 | return $result;
54 | }
55 |
56 | private static function createLetterMap()
57 | {
58 | self::$letterMap = array();
59 |
60 | for ($asciiCode = self::ASCII_CODE_LETTER_A; $asciiCode < self::ASCII_CODE_LETTER_Z; $asciiCode++) {
61 | self::$letterMap[] = chr($asciiCode);
62 | }
63 |
64 | return self::$letterMap;
65 | }
66 |
67 | private static function isAllowedLetter($letter)
68 | {
69 | return (false !== array_search($letter, self::$letterMap));
70 | }
71 |
72 | private static function createReversedLetterArrayFromMessage($message)
73 | {
74 | $messageAsArray = str_split($message);
75 | $normalizedMessageArray = array_map('strtolower', $messageAsArray);
76 |
77 | return array_reverse($normalizedMessageArray);
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/composer.lock:
--------------------------------------------------------------------------------
1 | {
2 | "_readme": [
3 | "This file locks the dependencies of your project to a known state",
4 | "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5 | "This file is @generated automatically"
6 | ],
7 | "hash": "0c667c934f61f439e8d48937bd5fd19c",
8 | "packages": [],
9 | "packages-dev": [
10 | {
11 | "name": "doctrine/instantiator",
12 | "version": "1.0.4",
13 | "source": {
14 | "type": "git",
15 | "url": "https://github.com/doctrine/instantiator.git",
16 | "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119"
17 | },
18 | "dist": {
19 | "type": "zip",
20 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f976e5de371104877ebc89bd8fecb0019ed9c119",
21 | "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119",
22 | "shasum": ""
23 | },
24 | "require": {
25 | "php": ">=5.3,<8.0-DEV"
26 | },
27 | "require-dev": {
28 | "athletic/athletic": "~0.1.8",
29 | "ext-pdo": "*",
30 | "ext-phar": "*",
31 | "phpunit/phpunit": "~4.0",
32 | "squizlabs/php_codesniffer": "2.0.*@ALPHA"
33 | },
34 | "type": "library",
35 | "extra": {
36 | "branch-alias": {
37 | "dev-master": "1.0.x-dev"
38 | }
39 | },
40 | "autoload": {
41 | "psr-0": {
42 | "Doctrine\\Instantiator\\": "src"
43 | }
44 | },
45 | "notification-url": "https://packagist.org/downloads/",
46 | "license": [
47 | "MIT"
48 | ],
49 | "authors": [
50 | {
51 | "name": "Marco Pivetta",
52 | "email": "ocramius@gmail.com",
53 | "homepage": "http://ocramius.github.com/"
54 | }
55 | ],
56 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
57 | "homepage": "https://github.com/doctrine/instantiator",
58 | "keywords": [
59 | "constructor",
60 | "instantiate"
61 | ],
62 | "time": "2014-10-13 12:58:55"
63 | },
64 | {
65 | "name": "phpdocumentor/reflection-docblock",
66 | "version": "2.0.4",
67 | "source": {
68 | "type": "git",
69 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
70 | "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
71 | },
72 | "dist": {
73 | "type": "zip",
74 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
75 | "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
76 | "shasum": ""
77 | },
78 | "require": {
79 | "php": ">=5.3.3"
80 | },
81 | "require-dev": {
82 | "phpunit/phpunit": "~4.0"
83 | },
84 | "suggest": {
85 | "dflydev/markdown": "~1.0",
86 | "erusev/parsedown": "~1.0"
87 | },
88 | "type": "library",
89 | "extra": {
90 | "branch-alias": {
91 | "dev-master": "2.0.x-dev"
92 | }
93 | },
94 | "autoload": {
95 | "psr-0": {
96 | "phpDocumentor": [
97 | "src/"
98 | ]
99 | }
100 | },
101 | "notification-url": "https://packagist.org/downloads/",
102 | "license": [
103 | "MIT"
104 | ],
105 | "authors": [
106 | {
107 | "name": "Mike van Riel",
108 | "email": "mike.vanriel@naenius.com"
109 | }
110 | ],
111 | "time": "2015-02-03 12:10:50"
112 | },
113 | {
114 | "name": "phpspec/prophecy",
115 | "version": "v1.3.1",
116 | "source": {
117 | "type": "git",
118 | "url": "https://github.com/phpspec/prophecy.git",
119 | "reference": "9ca52329bcdd1500de24427542577ebf3fc2f1c9"
120 | },
121 | "dist": {
122 | "type": "zip",
123 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/9ca52329bcdd1500de24427542577ebf3fc2f1c9",
124 | "reference": "9ca52329bcdd1500de24427542577ebf3fc2f1c9",
125 | "shasum": ""
126 | },
127 | "require": {
128 | "doctrine/instantiator": "~1.0,>=1.0.2",
129 | "phpdocumentor/reflection-docblock": "~2.0"
130 | },
131 | "require-dev": {
132 | "phpspec/phpspec": "~2.0"
133 | },
134 | "type": "library",
135 | "extra": {
136 | "branch-alias": {
137 | "dev-master": "1.2.x-dev"
138 | }
139 | },
140 | "autoload": {
141 | "psr-0": {
142 | "Prophecy\\": "src/"
143 | }
144 | },
145 | "notification-url": "https://packagist.org/downloads/",
146 | "license": [
147 | "MIT"
148 | ],
149 | "authors": [
150 | {
151 | "name": "Konstantin Kudryashov",
152 | "email": "ever.zet@gmail.com",
153 | "homepage": "http://everzet.com"
154 | },
155 | {
156 | "name": "Marcello Duarte",
157 | "email": "marcello.duarte@gmail.com"
158 | }
159 | ],
160 | "description": "Highly opinionated mocking framework for PHP 5.3+",
161 | "homepage": "http://phpspec.org",
162 | "keywords": [
163 | "Double",
164 | "Dummy",
165 | "fake",
166 | "mock",
167 | "spy",
168 | "stub"
169 | ],
170 | "time": "2014-11-17 16:23:49"
171 | },
172 | {
173 | "name": "phpunit/php-code-coverage",
174 | "version": "2.0.15",
175 | "source": {
176 | "type": "git",
177 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
178 | "reference": "34cc484af1ca149188d0d9e91412191e398e0b67"
179 | },
180 | "dist": {
181 | "type": "zip",
182 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/34cc484af1ca149188d0d9e91412191e398e0b67",
183 | "reference": "34cc484af1ca149188d0d9e91412191e398e0b67",
184 | "shasum": ""
185 | },
186 | "require": {
187 | "php": ">=5.3.3",
188 | "phpunit/php-file-iterator": "~1.3",
189 | "phpunit/php-text-template": "~1.2",
190 | "phpunit/php-token-stream": "~1.3",
191 | "sebastian/environment": "~1.0",
192 | "sebastian/version": "~1.0"
193 | },
194 | "require-dev": {
195 | "ext-xdebug": ">=2.1.4",
196 | "phpunit/phpunit": "~4"
197 | },
198 | "suggest": {
199 | "ext-dom": "*",
200 | "ext-xdebug": ">=2.2.1",
201 | "ext-xmlwriter": "*"
202 | },
203 | "type": "library",
204 | "extra": {
205 | "branch-alias": {
206 | "dev-master": "2.0.x-dev"
207 | }
208 | },
209 | "autoload": {
210 | "classmap": [
211 | "src/"
212 | ]
213 | },
214 | "notification-url": "https://packagist.org/downloads/",
215 | "license": [
216 | "BSD-3-Clause"
217 | ],
218 | "authors": [
219 | {
220 | "name": "Sebastian Bergmann",
221 | "email": "sb@sebastian-bergmann.de",
222 | "role": "lead"
223 | }
224 | ],
225 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
226 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
227 | "keywords": [
228 | "coverage",
229 | "testing",
230 | "xunit"
231 | ],
232 | "time": "2015-01-24 10:06:35"
233 | },
234 | {
235 | "name": "phpunit/php-file-iterator",
236 | "version": "1.3.4",
237 | "source": {
238 | "type": "git",
239 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
240 | "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb"
241 | },
242 | "dist": {
243 | "type": "zip",
244 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/acd690379117b042d1c8af1fafd61bde001bf6bb",
245 | "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb",
246 | "shasum": ""
247 | },
248 | "require": {
249 | "php": ">=5.3.3"
250 | },
251 | "type": "library",
252 | "autoload": {
253 | "classmap": [
254 | "File/"
255 | ]
256 | },
257 | "notification-url": "https://packagist.org/downloads/",
258 | "include-path": [
259 | ""
260 | ],
261 | "license": [
262 | "BSD-3-Clause"
263 | ],
264 | "authors": [
265 | {
266 | "name": "Sebastian Bergmann",
267 | "email": "sb@sebastian-bergmann.de",
268 | "role": "lead"
269 | }
270 | ],
271 | "description": "FilterIterator implementation that filters files based on a list of suffixes.",
272 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
273 | "keywords": [
274 | "filesystem",
275 | "iterator"
276 | ],
277 | "time": "2013-10-10 15:34:57"
278 | },
279 | {
280 | "name": "phpunit/php-text-template",
281 | "version": "1.2.0",
282 | "source": {
283 | "type": "git",
284 | "url": "https://github.com/sebastianbergmann/php-text-template.git",
285 | "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a"
286 | },
287 | "dist": {
288 | "type": "zip",
289 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/206dfefc0ffe9cebf65c413e3d0e809c82fbf00a",
290 | "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a",
291 | "shasum": ""
292 | },
293 | "require": {
294 | "php": ">=5.3.3"
295 | },
296 | "type": "library",
297 | "autoload": {
298 | "classmap": [
299 | "Text/"
300 | ]
301 | },
302 | "notification-url": "https://packagist.org/downloads/",
303 | "include-path": [
304 | ""
305 | ],
306 | "license": [
307 | "BSD-3-Clause"
308 | ],
309 | "authors": [
310 | {
311 | "name": "Sebastian Bergmann",
312 | "email": "sb@sebastian-bergmann.de",
313 | "role": "lead"
314 | }
315 | ],
316 | "description": "Simple template engine.",
317 | "homepage": "https://github.com/sebastianbergmann/php-text-template/",
318 | "keywords": [
319 | "template"
320 | ],
321 | "time": "2014-01-30 17:20:04"
322 | },
323 | {
324 | "name": "phpunit/php-timer",
325 | "version": "1.0.5",
326 | "source": {
327 | "type": "git",
328 | "url": "https://github.com/sebastianbergmann/php-timer.git",
329 | "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c"
330 | },
331 | "dist": {
332 | "type": "zip",
333 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/19689d4354b295ee3d8c54b4f42c3efb69cbc17c",
334 | "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c",
335 | "shasum": ""
336 | },
337 | "require": {
338 | "php": ">=5.3.3"
339 | },
340 | "type": "library",
341 | "autoload": {
342 | "classmap": [
343 | "PHP/"
344 | ]
345 | },
346 | "notification-url": "https://packagist.org/downloads/",
347 | "include-path": [
348 | ""
349 | ],
350 | "license": [
351 | "BSD-3-Clause"
352 | ],
353 | "authors": [
354 | {
355 | "name": "Sebastian Bergmann",
356 | "email": "sb@sebastian-bergmann.de",
357 | "role": "lead"
358 | }
359 | ],
360 | "description": "Utility class for timing",
361 | "homepage": "https://github.com/sebastianbergmann/php-timer/",
362 | "keywords": [
363 | "timer"
364 | ],
365 | "time": "2013-08-02 07:42:54"
366 | },
367 | {
368 | "name": "phpunit/php-token-stream",
369 | "version": "1.4.0",
370 | "source": {
371 | "type": "git",
372 | "url": "https://github.com/sebastianbergmann/php-token-stream.git",
373 | "reference": "db32c18eba00b121c145575fcbcd4d4d24e6db74"
374 | },
375 | "dist": {
376 | "type": "zip",
377 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/db32c18eba00b121c145575fcbcd4d4d24e6db74",
378 | "reference": "db32c18eba00b121c145575fcbcd4d4d24e6db74",
379 | "shasum": ""
380 | },
381 | "require": {
382 | "ext-tokenizer": "*",
383 | "php": ">=5.3.3"
384 | },
385 | "require-dev": {
386 | "phpunit/phpunit": "~4.2"
387 | },
388 | "type": "library",
389 | "extra": {
390 | "branch-alias": {
391 | "dev-master": "1.4-dev"
392 | }
393 | },
394 | "autoload": {
395 | "classmap": [
396 | "src/"
397 | ]
398 | },
399 | "notification-url": "https://packagist.org/downloads/",
400 | "license": [
401 | "BSD-3-Clause"
402 | ],
403 | "authors": [
404 | {
405 | "name": "Sebastian Bergmann",
406 | "email": "sebastian@phpunit.de"
407 | }
408 | ],
409 | "description": "Wrapper around PHP's tokenizer extension.",
410 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
411 | "keywords": [
412 | "tokenizer"
413 | ],
414 | "time": "2015-01-17 09:51:32"
415 | },
416 | {
417 | "name": "phpunit/phpunit",
418 | "version": "4.5.0",
419 | "source": {
420 | "type": "git",
421 | "url": "https://github.com/sebastianbergmann/phpunit.git",
422 | "reference": "5b578d3865a9128b9c209b011fda6539ec06e7a5"
423 | },
424 | "dist": {
425 | "type": "zip",
426 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5b578d3865a9128b9c209b011fda6539ec06e7a5",
427 | "reference": "5b578d3865a9128b9c209b011fda6539ec06e7a5",
428 | "shasum": ""
429 | },
430 | "require": {
431 | "ext-dom": "*",
432 | "ext-json": "*",
433 | "ext-pcre": "*",
434 | "ext-reflection": "*",
435 | "ext-spl": "*",
436 | "php": ">=5.3.3",
437 | "phpspec/prophecy": "~1.3.1",
438 | "phpunit/php-code-coverage": "~2.0",
439 | "phpunit/php-file-iterator": "~1.3.2",
440 | "phpunit/php-text-template": "~1.2",
441 | "phpunit/php-timer": "~1.0.2",
442 | "phpunit/phpunit-mock-objects": "~2.3",
443 | "sebastian/comparator": "~1.1",
444 | "sebastian/diff": "~1.1",
445 | "sebastian/environment": "~1.2",
446 | "sebastian/exporter": "~1.2",
447 | "sebastian/global-state": "~1.0",
448 | "sebastian/version": "~1.0",
449 | "symfony/yaml": "~2.0"
450 | },
451 | "suggest": {
452 | "phpunit/php-invoker": "~1.1"
453 | },
454 | "bin": [
455 | "phpunit"
456 | ],
457 | "type": "library",
458 | "extra": {
459 | "branch-alias": {
460 | "dev-master": "4.5.x-dev"
461 | }
462 | },
463 | "autoload": {
464 | "classmap": [
465 | "src/"
466 | ]
467 | },
468 | "notification-url": "https://packagist.org/downloads/",
469 | "license": [
470 | "BSD-3-Clause"
471 | ],
472 | "authors": [
473 | {
474 | "name": "Sebastian Bergmann",
475 | "email": "sebastian@phpunit.de",
476 | "role": "lead"
477 | }
478 | ],
479 | "description": "The PHP Unit Testing framework.",
480 | "homepage": "https://phpunit.de/",
481 | "keywords": [
482 | "phpunit",
483 | "testing",
484 | "xunit"
485 | ],
486 | "time": "2015-02-05 15:51:19"
487 | },
488 | {
489 | "name": "phpunit/phpunit-mock-objects",
490 | "version": "2.3.0",
491 | "source": {
492 | "type": "git",
493 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
494 | "reference": "c63d2367247365f688544f0d500af90a11a44c65"
495 | },
496 | "dist": {
497 | "type": "zip",
498 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/c63d2367247365f688544f0d500af90a11a44c65",
499 | "reference": "c63d2367247365f688544f0d500af90a11a44c65",
500 | "shasum": ""
501 | },
502 | "require": {
503 | "doctrine/instantiator": "~1.0,>=1.0.1",
504 | "php": ">=5.3.3",
505 | "phpunit/php-text-template": "~1.2"
506 | },
507 | "require-dev": {
508 | "phpunit/phpunit": "~4.3"
509 | },
510 | "suggest": {
511 | "ext-soap": "*"
512 | },
513 | "type": "library",
514 | "extra": {
515 | "branch-alias": {
516 | "dev-master": "2.3.x-dev"
517 | }
518 | },
519 | "autoload": {
520 | "classmap": [
521 | "src/"
522 | ]
523 | },
524 | "notification-url": "https://packagist.org/downloads/",
525 | "license": [
526 | "BSD-3-Clause"
527 | ],
528 | "authors": [
529 | {
530 | "name": "Sebastian Bergmann",
531 | "email": "sb@sebastian-bergmann.de",
532 | "role": "lead"
533 | }
534 | ],
535 | "description": "Mock Object library for PHPUnit",
536 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
537 | "keywords": [
538 | "mock",
539 | "xunit"
540 | ],
541 | "time": "2014-10-03 05:12:11"
542 | },
543 | {
544 | "name": "sebastian/comparator",
545 | "version": "1.1.1",
546 | "source": {
547 | "type": "git",
548 | "url": "https://github.com/sebastianbergmann/comparator.git",
549 | "reference": "1dd8869519a225f7f2b9eb663e225298fade819e"
550 | },
551 | "dist": {
552 | "type": "zip",
553 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dd8869519a225f7f2b9eb663e225298fade819e",
554 | "reference": "1dd8869519a225f7f2b9eb663e225298fade819e",
555 | "shasum": ""
556 | },
557 | "require": {
558 | "php": ">=5.3.3",
559 | "sebastian/diff": "~1.2",
560 | "sebastian/exporter": "~1.2"
561 | },
562 | "require-dev": {
563 | "phpunit/phpunit": "~4.4"
564 | },
565 | "type": "library",
566 | "extra": {
567 | "branch-alias": {
568 | "dev-master": "1.1.x-dev"
569 | }
570 | },
571 | "autoload": {
572 | "classmap": [
573 | "src/"
574 | ]
575 | },
576 | "notification-url": "https://packagist.org/downloads/",
577 | "license": [
578 | "BSD-3-Clause"
579 | ],
580 | "authors": [
581 | {
582 | "name": "Jeff Welch",
583 | "email": "whatthejeff@gmail.com"
584 | },
585 | {
586 | "name": "Volker Dusch",
587 | "email": "github@wallbash.com"
588 | },
589 | {
590 | "name": "Bernhard Schussek",
591 | "email": "bschussek@2bepublished.at"
592 | },
593 | {
594 | "name": "Sebastian Bergmann",
595 | "email": "sebastian@phpunit.de"
596 | }
597 | ],
598 | "description": "Provides the functionality to compare PHP values for equality",
599 | "homepage": "http://www.github.com/sebastianbergmann/comparator",
600 | "keywords": [
601 | "comparator",
602 | "compare",
603 | "equality"
604 | ],
605 | "time": "2015-01-29 16:28:08"
606 | },
607 | {
608 | "name": "sebastian/diff",
609 | "version": "1.2.0",
610 | "source": {
611 | "type": "git",
612 | "url": "https://github.com/sebastianbergmann/diff.git",
613 | "reference": "5843509fed39dee4b356a306401e9dd1a931fec7"
614 | },
615 | "dist": {
616 | "type": "zip",
617 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/5843509fed39dee4b356a306401e9dd1a931fec7",
618 | "reference": "5843509fed39dee4b356a306401e9dd1a931fec7",
619 | "shasum": ""
620 | },
621 | "require": {
622 | "php": ">=5.3.3"
623 | },
624 | "require-dev": {
625 | "phpunit/phpunit": "~4.2"
626 | },
627 | "type": "library",
628 | "extra": {
629 | "branch-alias": {
630 | "dev-master": "1.2-dev"
631 | }
632 | },
633 | "autoload": {
634 | "classmap": [
635 | "src/"
636 | ]
637 | },
638 | "notification-url": "https://packagist.org/downloads/",
639 | "license": [
640 | "BSD-3-Clause"
641 | ],
642 | "authors": [
643 | {
644 | "name": "Kore Nordmann",
645 | "email": "mail@kore-nordmann.de"
646 | },
647 | {
648 | "name": "Sebastian Bergmann",
649 | "email": "sebastian@phpunit.de"
650 | }
651 | ],
652 | "description": "Diff implementation",
653 | "homepage": "http://www.github.com/sebastianbergmann/diff",
654 | "keywords": [
655 | "diff"
656 | ],
657 | "time": "2014-08-15 10:29:00"
658 | },
659 | {
660 | "name": "sebastian/environment",
661 | "version": "1.2.1",
662 | "source": {
663 | "type": "git",
664 | "url": "https://github.com/sebastianbergmann/environment.git",
665 | "reference": "6e6c71d918088c251b181ba8b3088af4ac336dd7"
666 | },
667 | "dist": {
668 | "type": "zip",
669 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6e6c71d918088c251b181ba8b3088af4ac336dd7",
670 | "reference": "6e6c71d918088c251b181ba8b3088af4ac336dd7",
671 | "shasum": ""
672 | },
673 | "require": {
674 | "php": ">=5.3.3"
675 | },
676 | "require-dev": {
677 | "phpunit/phpunit": "~4.3"
678 | },
679 | "type": "library",
680 | "extra": {
681 | "branch-alias": {
682 | "dev-master": "1.2.x-dev"
683 | }
684 | },
685 | "autoload": {
686 | "classmap": [
687 | "src/"
688 | ]
689 | },
690 | "notification-url": "https://packagist.org/downloads/",
691 | "license": [
692 | "BSD-3-Clause"
693 | ],
694 | "authors": [
695 | {
696 | "name": "Sebastian Bergmann",
697 | "email": "sebastian@phpunit.de"
698 | }
699 | ],
700 | "description": "Provides functionality to handle HHVM/PHP environments",
701 | "homepage": "http://www.github.com/sebastianbergmann/environment",
702 | "keywords": [
703 | "Xdebug",
704 | "environment",
705 | "hhvm"
706 | ],
707 | "time": "2014-10-25 08:00:45"
708 | },
709 | {
710 | "name": "sebastian/exporter",
711 | "version": "1.2.0",
712 | "source": {
713 | "type": "git",
714 | "url": "https://github.com/sebastianbergmann/exporter.git",
715 | "reference": "84839970d05254c73cde183a721c7af13aede943"
716 | },
717 | "dist": {
718 | "type": "zip",
719 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/84839970d05254c73cde183a721c7af13aede943",
720 | "reference": "84839970d05254c73cde183a721c7af13aede943",
721 | "shasum": ""
722 | },
723 | "require": {
724 | "php": ">=5.3.3",
725 | "sebastian/recursion-context": "~1.0"
726 | },
727 | "require-dev": {
728 | "phpunit/phpunit": "~4.4"
729 | },
730 | "type": "library",
731 | "extra": {
732 | "branch-alias": {
733 | "dev-master": "1.2.x-dev"
734 | }
735 | },
736 | "autoload": {
737 | "classmap": [
738 | "src/"
739 | ]
740 | },
741 | "notification-url": "https://packagist.org/downloads/",
742 | "license": [
743 | "BSD-3-Clause"
744 | ],
745 | "authors": [
746 | {
747 | "name": "Jeff Welch",
748 | "email": "whatthejeff@gmail.com"
749 | },
750 | {
751 | "name": "Volker Dusch",
752 | "email": "github@wallbash.com"
753 | },
754 | {
755 | "name": "Bernhard Schussek",
756 | "email": "bschussek@2bepublished.at"
757 | },
758 | {
759 | "name": "Sebastian Bergmann",
760 | "email": "sebastian@phpunit.de"
761 | },
762 | {
763 | "name": "Adam Harvey",
764 | "email": "aharvey@php.net"
765 | }
766 | ],
767 | "description": "Provides the functionality to export PHP variables for visualization",
768 | "homepage": "http://www.github.com/sebastianbergmann/exporter",
769 | "keywords": [
770 | "export",
771 | "exporter"
772 | ],
773 | "time": "2015-01-27 07:23:06"
774 | },
775 | {
776 | "name": "sebastian/global-state",
777 | "version": "1.0.0",
778 | "source": {
779 | "type": "git",
780 | "url": "https://github.com/sebastianbergmann/global-state.git",
781 | "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01"
782 | },
783 | "dist": {
784 | "type": "zip",
785 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
786 | "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
787 | "shasum": ""
788 | },
789 | "require": {
790 | "php": ">=5.3.3"
791 | },
792 | "require-dev": {
793 | "phpunit/phpunit": "~4.2"
794 | },
795 | "suggest": {
796 | "ext-uopz": "*"
797 | },
798 | "type": "library",
799 | "extra": {
800 | "branch-alias": {
801 | "dev-master": "1.0-dev"
802 | }
803 | },
804 | "autoload": {
805 | "classmap": [
806 | "src/"
807 | ]
808 | },
809 | "notification-url": "https://packagist.org/downloads/",
810 | "license": [
811 | "BSD-3-Clause"
812 | ],
813 | "authors": [
814 | {
815 | "name": "Sebastian Bergmann",
816 | "email": "sebastian@phpunit.de"
817 | }
818 | ],
819 | "description": "Snapshotting of global state",
820 | "homepage": "http://www.github.com/sebastianbergmann/global-state",
821 | "keywords": [
822 | "global state"
823 | ],
824 | "time": "2014-10-06 09:23:50"
825 | },
826 | {
827 | "name": "sebastian/recursion-context",
828 | "version": "1.0.0",
829 | "source": {
830 | "type": "git",
831 | "url": "https://github.com/sebastianbergmann/recursion-context.git",
832 | "reference": "3989662bbb30a29d20d9faa04a846af79b276252"
833 | },
834 | "dist": {
835 | "type": "zip",
836 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/3989662bbb30a29d20d9faa04a846af79b276252",
837 | "reference": "3989662bbb30a29d20d9faa04a846af79b276252",
838 | "shasum": ""
839 | },
840 | "require": {
841 | "php": ">=5.3.3"
842 | },
843 | "require-dev": {
844 | "phpunit/phpunit": "~4.4"
845 | },
846 | "type": "library",
847 | "extra": {
848 | "branch-alias": {
849 | "dev-master": "1.0.x-dev"
850 | }
851 | },
852 | "autoload": {
853 | "classmap": [
854 | "src/"
855 | ]
856 | },
857 | "notification-url": "https://packagist.org/downloads/",
858 | "license": [
859 | "BSD-3-Clause"
860 | ],
861 | "authors": [
862 | {
863 | "name": "Jeff Welch",
864 | "email": "whatthejeff@gmail.com"
865 | },
866 | {
867 | "name": "Sebastian Bergmann",
868 | "email": "sebastian@phpunit.de"
869 | },
870 | {
871 | "name": "Adam Harvey",
872 | "email": "aharvey@php.net"
873 | }
874 | ],
875 | "description": "Provides functionality to recursively process PHP variables",
876 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
877 | "time": "2015-01-24 09:48:32"
878 | },
879 | {
880 | "name": "sebastian/version",
881 | "version": "1.0.4",
882 | "source": {
883 | "type": "git",
884 | "url": "https://github.com/sebastianbergmann/version.git",
885 | "reference": "a77d9123f8e809db3fbdea15038c27a95da4058b"
886 | },
887 | "dist": {
888 | "type": "zip",
889 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/a77d9123f8e809db3fbdea15038c27a95da4058b",
890 | "reference": "a77d9123f8e809db3fbdea15038c27a95da4058b",
891 | "shasum": ""
892 | },
893 | "type": "library",
894 | "autoload": {
895 | "classmap": [
896 | "src/"
897 | ]
898 | },
899 | "notification-url": "https://packagist.org/downloads/",
900 | "license": [
901 | "BSD-3-Clause"
902 | ],
903 | "authors": [
904 | {
905 | "name": "Sebastian Bergmann",
906 | "email": "sebastian@phpunit.de",
907 | "role": "lead"
908 | }
909 | ],
910 | "description": "Library that helps with managing the version number of Git-hosted PHP projects",
911 | "homepage": "https://github.com/sebastianbergmann/version",
912 | "time": "2014-12-15 14:25:24"
913 | },
914 | {
915 | "name": "symfony/yaml",
916 | "version": "v2.6.4",
917 | "target-dir": "Symfony/Component/Yaml",
918 | "source": {
919 | "type": "git",
920 | "url": "https://github.com/symfony/Yaml.git",
921 | "reference": "60ed7751671113cf1ee7d7778e691642c2e9acd8"
922 | },
923 | "dist": {
924 | "type": "zip",
925 | "url": "https://api.github.com/repos/symfony/Yaml/zipball/60ed7751671113cf1ee7d7778e691642c2e9acd8",
926 | "reference": "60ed7751671113cf1ee7d7778e691642c2e9acd8",
927 | "shasum": ""
928 | },
929 | "require": {
930 | "php": ">=5.3.3"
931 | },
932 | "type": "library",
933 | "extra": {
934 | "branch-alias": {
935 | "dev-master": "2.6-dev"
936 | }
937 | },
938 | "autoload": {
939 | "psr-0": {
940 | "Symfony\\Component\\Yaml\\": ""
941 | }
942 | },
943 | "notification-url": "https://packagist.org/downloads/",
944 | "license": [
945 | "MIT"
946 | ],
947 | "authors": [
948 | {
949 | "name": "Symfony Community",
950 | "homepage": "http://symfony.com/contributors"
951 | },
952 | {
953 | "name": "Fabien Potencier",
954 | "email": "fabien@symfony.com"
955 | }
956 | ],
957 | "description": "Symfony Yaml Component",
958 | "homepage": "http://symfony.com",
959 | "time": "2015-01-25 04:39:26"
960 | }
961 | ],
962 | "aliases": [],
963 | "minimum-stability": "stable",
964 | "stability-flags": {
965 | "phpunit/phpunit": 0
966 | },
967 | "prefer-stable": false,
968 | "prefer-lowest": false,
969 | "platform": [],
970 | "platform-dev": []
971 | }
972 |
--------------------------------------------------------------------------------