@@ -91,8 +91,9 @@ |
||
| 91 | 91 | */ |
| 92 | 92 | function pipe() { |
| 93 | 93 | $fns = func_get_args(); |
| 94 | - if(count($fns) < 1) |
|
| 95 | - throw new InvalidArgument("pipe() requires at least one argument"); |
|
| 94 | + if(count($fns) < 1) { |
|
| 95 | + throw new InvalidArgument("pipe() requires at least one argument"); |
|
| 96 | + } |
|
| 96 | 97 | return curry(function () use ($fns) { |
| 97 | 98 | $result = _apply(array_shift($fns), func_get_args()); |
| 98 | 99 | foreach ($fns as $fn) { |
@@ -37,8 +37,9 @@ |
||
| 37 | 37 | */ |
| 38 | 38 | protected function __construct ($message, Error $error = null) |
| 39 | 39 | { |
| 40 | - if (null != $error) |
|
| 41 | - $message = $error->message() . ' -> ' . $message; |
|
| 40 | + if (null != $error) { |
|
| 41 | + $message = $error->message() . ' -> ' . $message; |
|
| 42 | + } |
|
| 42 | 43 | $this->message = $message; |
| 43 | 44 | } |
| 44 | 45 | |
@@ -84,8 +84,9 @@ discard block |
||
| 84 | 84 | public static function of ($data) |
| 85 | 85 | { |
| 86 | 86 | $data = func_get_args(); |
| 87 | - if (count($data) == 1) |
|
| 88 | - $data = $data[0]; |
|
| 87 | + if (count($data) == 1) { |
|
| 88 | + $data = $data[0]; |
|
| 89 | + } |
|
| 89 | 90 | return new Stream($data, [], type($data)); |
| 90 | 91 | } |
| 91 | 92 | |
@@ -122,8 +123,9 @@ discard block |
||
| 122 | 123 | */ |
| 123 | 124 | protected static function execute ($operations, $data) |
| 124 | 125 | { |
| 125 | - if (length($operations) == 0) |
|
| 126 | - return $data; |
|
| 126 | + if (length($operations) == 0) { |
|
| 127 | + return $data; |
|
| 128 | + } |
|
| 127 | 129 | $operations = apply('Tarsana\\Functional\\pipe', map(function($operation){ |
| 128 | 130 | if ($operation['name'] == 'apply') { |
| 129 | 131 | return $operation['args']; |
@@ -234,8 +236,9 @@ discard block |
||
| 234 | 236 | */ |
| 235 | 237 | public function get () |
| 236 | 238 | { |
| 237 | - if ($this->type == 'Error') |
|
| 238 | - return $this->data; |
|
| 239 | + if ($this->type == 'Error') { |
|
| 240 | + return $this->data; |
|
| 241 | + } |
|
| 239 | 242 | return Stream::execute($this->operations, $this->data); |
| 240 | 243 | } |
| 241 | 244 | |
@@ -421,11 +424,13 @@ discard block |
||
| 421 | 424 | { |
| 422 | 425 | $args = tail(func_get_args()); |
| 423 | 426 | return Stream::apply('apply', function($data) use($method, $args) { |
| 424 | - if (is_callable([$data, $method])) |
|
| 425 | - return call_user_func_array([$data, $method], $args); |
|
| 427 | + if (is_callable([$data, $method])) { |
|
| 428 | + return call_user_func_array([$data, $method], $args); |
|
| 429 | + } |
|
| 426 | 430 | $text = toString($data); |
| 427 | - if (method_exists($data, $method)) |
|
| 428 | - return Error::of("Method '{$method}' of {$text} is not accessible"); |
|
| 431 | + if (method_exists($data, $method)) { |
|
| 432 | + return Error::of("Method '{$method}' of {$text} is not accessible"); |
|
| 433 | + } |
|
| 429 | 434 | return Error::of("Method '{$method}' of {$text} is not found"); |
| 430 | 435 | }, $this); |
| 431 | 436 | } |
@@ -480,8 +485,9 @@ discard block |
||
| 480 | 485 | return $data; |
| 481 | 486 | } |
| 482 | 487 | $text = toString($data); |
| 483 | - if (method_exists($data, $method)) |
|
| 484 | - return Error::of("Method '{$method}' of {$text} is not accessible"); |
|
| 488 | + if (method_exists($data, $method)) { |
|
| 489 | + return Error::of("Method '{$method}' of {$text} is not accessible"); |
|
| 490 | + } |
|
| 485 | 491 | return Error::of("Method '{$method}' of {$text} is not found"); |
| 486 | 492 | }, $this); |
| 487 | 493 | } |
@@ -27,22 +27,42 @@ |
||
| 27 | 27 | * @return string |
| 28 | 28 | */ |
| 29 | 29 | function type($data) { |
| 30 | - if (null === $data) return 'Null'; |
|
| 31 | - if (true === $data || false === $data) return 'Boolean'; |
|
| 32 | - if ($data instanceof Error) return 'Error'; |
|
| 33 | - if ($data instanceof Stream) return 'Stream'; |
|
| 34 | - if (is_callable($data)) return 'Function'; |
|
| 35 | - if (is_resource($data)) return 'Resource'; |
|
| 36 | - if (is_string($data)) return 'String'; |
|
| 37 | - if (is_integer($data) || is_float($data)) return 'Number'; |
|
| 30 | + if (null === $data) { |
|
| 31 | + return 'Null'; |
|
| 32 | + } |
|
| 33 | + if (true === $data || false === $data) { |
|
| 34 | + return 'Boolean'; |
|
| 35 | + } |
|
| 36 | + if ($data instanceof Error) { |
|
| 37 | + return 'Error'; |
|
| 38 | + } |
|
| 39 | + if ($data instanceof Stream) { |
|
| 40 | + return 'Stream'; |
|
| 41 | + } |
|
| 42 | + if (is_callable($data)) { |
|
| 43 | + return 'Function'; |
|
| 44 | + } |
|
| 45 | + if (is_resource($data)) { |
|
| 46 | + return 'Resource'; |
|
| 47 | + } |
|
| 48 | + if (is_string($data)) { |
|
| 49 | + return 'String'; |
|
| 50 | + } |
|
| 51 | + if (is_integer($data) || is_float($data)) { |
|
| 52 | + return 'Number'; |
|
| 53 | + } |
|
| 38 | 54 | if (is_array($data)) { |
| 39 | - if (all('is_numeric', array_keys($data))) |
|
| 40 | - return 'List'; |
|
| 41 | - if (all('is_string', array_keys($data))) |
|
| 42 | - return 'ArrayObject'; |
|
| 55 | + if (all('is_numeric', array_keys($data))) { |
|
| 56 | + return 'List'; |
|
| 57 | + } |
|
| 58 | + if (all('is_string', array_keys($data))) { |
|
| 59 | + return 'ArrayObject'; |
|
| 60 | + } |
|
| 43 | 61 | return 'Array'; |
| 44 | 62 | } |
| 45 | - if (is_object($data)) return 'Object'; |
|
| 63 | + if (is_object($data)) { |
|
| 64 | + return 'Object'; |
|
| 65 | + } |
|
| 46 | 66 | return 'Unknown'; |
| 47 | 67 | } |
| 48 | 68 | |
@@ -67,13 +67,16 @@ discard block |
||
| 67 | 67 | // Extracts the type of a block |
| 68 | 68 | // Object -> String |
| 69 | 69 | function typeOf($data) { |
| 70 | - if (isset($data->ctx->type)) |
|
| 71 | - return $data->ctx->type; |
|
| 72 | - if (F\length(tags('var', $data)) > 0) |
|
| 73 | - return 'attr'; |
|
| 74 | - if (F\length(tags('return', $data)) > 0) |
|
| 75 | - return 'method'; |
|
| 76 | -} |
|
| 70 | + if (isset($data->ctx->type)) { |
|
| 71 | + return $data->ctx->type; |
|
| 72 | + } |
|
| 73 | + if (F\length(tags('var', $data)) > 0) { |
|
| 74 | + return 'attr'; |
|
| 75 | + } |
|
| 76 | + if (F\length(tags('return', $data)) > 0) { |
|
| 77 | + return 'method'; |
|
| 78 | + } |
|
| 79 | + } |
|
| 77 | 80 | |
| 78 | 81 | // Extract keywords |
| 79 | 82 | // Object -> [String] |
@@ -82,8 +85,9 @@ discard block |
||
| 82 | 85 | return []; |
| 83 | 86 | } |
| 84 | 87 | $size = strpos($data->code, '('); |
| 85 | - if ($size === false) |
|
| 86 | - $size = strlen($data->code); |
|
| 88 | + if ($size === false) { |
|
| 89 | + $size = strlen($data->code); |
|
| 90 | + } |
|
| 87 | 91 | $keywords = F\pipe( |
| 88 | 92 | F\take($size), |
| 89 | 93 | F\split(' '), |
@@ -124,8 +128,9 @@ discard block |
||
| 124 | 128 | // Get a markdown code block |
| 125 | 129 | // String -> String -> String |
| 126 | 130 | function code($lang, $text) { |
| 127 | - if(trim($text) == '') |
|
| 128 | - return ''; |
|
| 131 | + if(trim($text) == '') { |
|
| 132 | + return ''; |
|
| 133 | + } |
|
| 129 | 134 | return "```{$lang}\n{$text}\n```"; |
| 130 | 135 | } |
| 131 | 136 | |
@@ -112,8 +112,9 @@ discard block |
||
| 112 | 112 | * @return mixed |
| 113 | 113 | */ |
| 114 | 114 | function head($list) { |
| 115 | - if(is_string($list)) |
|
| 116 | - return substr($list, 0, 1); |
|
| 115 | + if(is_string($list)) { |
|
| 116 | + return substr($list, 0, 1); |
|
| 117 | + } |
|
| 117 | 118 | return (count($list) > 0) |
| 118 | 119 | ? $list[0] |
| 119 | 120 | : null; |
@@ -134,8 +135,9 @@ discard block |
||
| 134 | 135 | * @return mixed |
| 135 | 136 | */ |
| 136 | 137 | function last($list) { |
| 137 | - if(is_string($list)) |
|
| 138 | - return substr($list, -1); |
|
| 138 | + if(is_string($list)) { |
|
| 139 | + return substr($list, -1); |
|
| 140 | + } |
|
| 139 | 141 | return (count($list) > 0) |
| 140 | 142 | ? $list[count($list) - 1] |
| 141 | 143 | : null; |
@@ -157,10 +159,11 @@ discard block |
||
| 157 | 159 | * @return array |
| 158 | 160 | */ |
| 159 | 161 | function init($list) { |
| 160 | - if(is_string($list)) |
|
| 161 | - return (strlen($list) > 1) |
|
| 162 | + if(is_string($list)) { |
|
| 163 | + return (strlen($list) > 1) |
|
| 162 | 164 | ? substr($list, 0, strlen($list) - 1) |
| 163 | 165 | : ''; |
| 166 | + } |
|
| 164 | 167 | return (count($list) > 1) |
| 165 | 168 | ? array_slice($list, 0, count($list) - 1) |
| 166 | 169 | : []; |
@@ -182,10 +185,11 @@ discard block |
||
| 182 | 185 | * @return array |
| 183 | 186 | */ |
| 184 | 187 | function tail($list) { |
| 185 | - if(is_string($list)) |
|
| 186 | - return (strlen($list) > 1) |
|
| 188 | + if(is_string($list)) { |
|
| 189 | + return (strlen($list) > 1) |
|
| 187 | 190 | ? substr($list, 1) |
| 188 | 191 | : ''; |
| 192 | + } |
|
| 189 | 193 | return (count($list) > 1) |
| 190 | 194 | ? array_slice($list, 1) |
| 191 | 195 | : []; |
@@ -283,8 +287,9 @@ discard block |
||
| 283 | 287 | */ |
| 284 | 288 | function concat() { |
| 285 | 289 | $concat = function($list1, $list2) { |
| 286 | - if (is_string($list1)) |
|
| 287 | - return $list1 . $list2; |
|
| 290 | + if (is_string($list1)) { |
|
| 291 | + return $list1 . $list2; |
|
| 292 | + } |
|
| 288 | 293 | return array_merge($list1, $list2); |
| 289 | 294 | }; |
| 290 | 295 | return apply(curry($concat), func_get_args()); |
@@ -306,8 +311,9 @@ discard block |
||
| 306 | 311 | */ |
| 307 | 312 | function append() { |
| 308 | 313 | $append = function ($item, $list) { |
| 309 | - if (is_string($list)) |
|
| 310 | - return $list . $item; |
|
| 314 | + if (is_string($list)) { |
|
| 315 | + return $list . $item; |
|
| 316 | + } |
|
| 311 | 317 | return array_merge($list, [$item]); |
| 312 | 318 | }; |
| 313 | 319 | return apply(curry($append), func_get_args()); |
@@ -329,8 +335,9 @@ discard block |
||
| 329 | 335 | */ |
| 330 | 336 | function prepend() { |
| 331 | 337 | $prepend = function ($item, $list) { |
| 332 | - if (is_string($list)) |
|
| 333 | - return $item . $list; |
|
| 338 | + if (is_string($list)) { |
|
| 339 | + return $item . $list; |
|
| 340 | + } |
|
| 334 | 341 | return array_merge([$item], $list); |
| 335 | 342 | }; |
| 336 | 343 | return apply(curry($prepend), func_get_args()); |
@@ -451,10 +458,12 @@ discard block |
||
| 451 | 458 | */ |
| 452 | 459 | function slices() { |
| 453 | 460 | $slices = function($size, $list) { |
| 454 | - if(empty($list)) |
|
| 455 | - return is_string($list) ? '' : []; |
|
| 456 | - if(length($list) <= $size) |
|
| 457 | - return [$list]; |
|
| 461 | + if(empty($list)) { |
|
| 462 | + return is_string($list) ? '' : []; |
|
| 463 | + } |
|
| 464 | + if(length($list) <= $size) { |
|
| 465 | + return [$list]; |
|
| 466 | + } |
|
| 458 | 467 | return prepend(take($size, $list), slices($size, remove($size, $list))); |
| 459 | 468 | }; |
| 460 | 469 | return apply(curry($slices), func_get_args()); |
@@ -477,8 +486,9 @@ discard block |
||
| 477 | 486 | */ |
| 478 | 487 | function contains() { |
| 479 | 488 | $contains = function($item, $list) { |
| 480 | - if(is_string($list)) |
|
| 481 | - return false !== strpos($list, $item); |
|
| 489 | + if(is_string($list)) { |
|
| 490 | + return false !== strpos($list, $item); |
|
| 491 | + } |
|
| 482 | 492 | return in_array($item, $list); |
| 483 | 493 | }; |
| 484 | 494 | return apply(curry($contains), func_get_args()); |