finished up, tests passing, fixed cs

This commit is contained in:
Evan Villemez 2012-08-27 13:25:03 -04:00
parent 2902ac3cbb
commit 504d5125f9
7 changed files with 46 additions and 13 deletions

View File

@ -27,7 +27,7 @@ class ApiDoc
* @var string
*/
private $input = null;
/**
* @var string
*/
@ -67,7 +67,7 @@ class ApiDoc
* @var array
*/
private $parameters = array();
/**
* @var array
*/
@ -98,7 +98,7 @@ class ApiDoc
if (isset($data['description'])) {
$this->description = $data['description'];
}
if (isset($data['return'])) {
$this->return = $data['return'];
}
@ -203,7 +203,7 @@ class ApiDoc
{
$this->parameters = $parameters;
}
/**
* Sets the responsed data as processed by the parsers - same format as parameters
*
@ -213,7 +213,7 @@ class ApiDoc
{
$this->response = $response;
}
/**
* @return array
*/
@ -267,7 +267,7 @@ class ApiDoc
if ($requirements = $this->requirements) {
$data['requirements'] = $requirements;
}
if ($response = $this->response) {
$data['response'] = $response;
}

View File

@ -247,14 +247,14 @@ class ApiDocExtractor
// return (populates 'response' for the formatters)
if (null !== $return = $annotation->getReturn()) {
$response = array();
foreach ($this->parsers as $parser) {
if ($parser->supports($return)) {
$response = $parser->parse($return);
break;
}
}
$annotation->setResponse($response);
}

View File

@ -85,6 +85,22 @@ class MarkdownFormatter extends AbstractFormatter
}
}
if (isset($data['response'])) {
$markdown .= "#### Response ####\n\n";
foreach ($data['response'] as $name => $parameter) {
$markdown .= sprintf("%s:\n\n", $name);
$markdown .= sprintf(" * type: %s\n", $parameter['dataType']);
$markdown .= sprintf(" * required: %s\n", $parameter['required'] ? 'true' : 'false');
if (isset($parameter['description']) && !empty($parameter['description'])) {
$markdown .= sprintf(" * description: %s\n", $parameter['description']);
}
$markdown .= "\n";
}
}
return $markdown;
}

View File

@ -35,10 +35,10 @@ class JmsMetadataParser implements ParserInterface
try {
if ($meta = $this->factory->getMetadataForClass($input)) {
return true;
}
}
} catch (\ReflectionException $e) {
}
return false;
}
@ -81,7 +81,6 @@ class JmsMetadataParser implements ParserInterface
//TODO: regex comment to get description - or move doc comment parsing functionality from `ApiDocExtractor` to a new location
//in order to reuse it here
return $description;
}

View File

@ -104,7 +104,7 @@ class TestController
/**
* @ApiDoc(
* description="Testing return",
* return="test_type"
* return="dependency_type"
* )
*/
public function jmsReturnTestAction()

View File

@ -186,6 +186,19 @@ arr:
* description: No description.
### `GET` /jms-return-test ###
_Testing return_
#### Response ####
a:
* type: string
* required: true
* description: A nice description
### `ANY` /my-commented/{id}/{page} ###
_This method is useful to test if the getDocComment works._

View File

@ -220,7 +220,12 @@ class SimpleFormatterTest extends WebTestCase
'uri' => '/jms-return-test',
'description' => 'Testing return',
'response' => array(
'a' => array(
'dataType' => 'string',
'required' => true,
'description' => 'A nice description',
'readonly' => false
)
)
),
5 =>