public function test_last() { $this->assertEquals(3, F\last([1, 2, 3])); $this->assertEquals('o', F\last('Hello')); $this->assertEquals(7, F\last([7])); $this->assertNull(F\last([])); $this->assertEquals('', F\last('')); }
/** * @type DocBlock * Documentation block of a function. * * @field type String * @field name String * @field args [Arg] * @field return String * @field signatures [String] * @field description String * @field is_internal Boolean * @field is_static Boolean */ function block($data) { $keywords = keywords($data); return (object) ['type' => typeOf($data), 'name' => isset($data->ctx->name) ? $data->ctx->name : F\last($keywords), 'args' => argsOf($data), 'return' => returnOf($data), 'signatures' => signaturesOf($data), 'description' => $data->description->full, 'is_static' => in_array('static', $keywords), 'is_internal' => in_array('private', $keywords) || in_array('protected', $keywords) || 0 < F\length(tags('internal', $data))]; }
/** * Transforms a string to syntax. * * @param string $text the string to parse * @return Tarsana\Syntax\Syntax */ protected function doParse($text) { $txt = $text; if (F\head($text) == '[' && F\last($text) == ']') { $txt = F\init(F\tail($text)); } if ($this->isObject($txt)) { return $this->parseObject($text); } if ($this->isArray($txt)) { return $this->parseArray($text); } if ($this->isNumber($txt)) { return $this->parseNumber($text); } if ($this->isBoolean($txt)) { return $this->parseBoolean($text); } if ($this->isString($txt)) { return $this->parseString($text); } return null; }