Skip to content

Commit 2fa79f9

Browse files
authored
Merge pull request #76 from javiereguiluz/fix_75
Fixed the generation of the "prev" option in JSON generator
2 parents 53288a5 + d35a62e commit 2fa79f9

File tree

18 files changed

+418
-159
lines changed

18 files changed

+418
-159
lines changed

composer.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
"SymfonyDocsBuilder\\": "src"
99
}
1010
},
11+
"autoload-dev": {
12+
"psr-4": {
13+
"SymfonyDocsBuilder\\Tests\\": "tests"
14+
}
15+
},
1116
"require": {
1217
"ext-json": "*",
1318
"ext-curl": "*",

composer.lock

Lines changed: 6 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/BuildResult.php

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace SymfonyDocsBuilder;
44

55
use Doctrine\RST\Builder;
6+
use Doctrine\RST\Meta\Metas;
67
use Symfony\Component\Console\Output\NullOutput;
78
use Symfony\Component\Filesystem\Filesystem;
89
use SymfonyDocsBuilder\BuildConfig;
@@ -14,11 +15,14 @@
1415

1516
class BuildResult
1617
{
18+
private $builder;
1719
private $errors;
20+
private $jsonResults = [];
1821

19-
public function __construct(array $errors)
22+
public function __construct(Builder $builder)
2023
{
21-
$this->errors = $errors;
24+
$this->builder = $builder;
25+
$this->errors = $builder->getErrorManager()->getErrors();
2226
}
2327

2428
public function appendError(string $errorMessage): void
@@ -40,4 +44,32 @@ public function getErrors(): array
4044
{
4145
return $this->errors;
4246
}
47+
48+
public function getMetadata(): Metas
49+
{
50+
return $this->builder->getMetas();
51+
}
52+
53+
/**
54+
* Returns the "master document": the first file whose toctree is parsed.
55+
*
56+
* Unless customized, this is "index" (i.e. file index.rst).
57+
*/
58+
public function getMasterDocumentFilename(): string
59+
{
60+
return $this->builder->getIndexName();
61+
}
62+
63+
/**
64+
* Returns the JSON array data generated for each file, keyed by the source filename.
65+
*/
66+
public function getJsonResults(): array
67+
{
68+
return $this->jsonResults;
69+
}
70+
71+
public function setJsonResults(array $jsonResults): void
72+
{
73+
$this->jsonResults = $jsonResults;
74+
}
4375
}

src/DocBuilder.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public function build(BuildConfig $config): BuildResult
2525
$builder = new Builder(KernelFactory::createKernel($config));
2626
$builder->build($config->getContentDir(), $config->getOutputDir());
2727

28-
$buildResult = new BuildResult($builder->getErrorManager()->getErrors());
28+
$buildResult = new BuildResult($builder);
2929

3030
$missingFilesChecker = new MissingFilesChecker($config);
3131
$missingFiles = $missingFilesChecker->getMissingFiles();
@@ -38,13 +38,13 @@ public function build(BuildConfig $config): BuildResult
3838
$filesystem->dumpFile($config->getOutputDir().'/build_errors.txt', implode("\n", $buildResult->getErrors()));
3939
}
4040

41-
$metas = $builder->getMetas();
41+
$metas = $buildResult->getMetadata();
4242
if ($config->getSubdirectoryToBuild()) {
4343
$htmlForPdfGenerator = new HtmlForPdfGenerator($metas, $config);
4444
$htmlForPdfGenerator->generateHtmlForPdf();
4545
} else {
4646
$jsonGenerator = new JsonGenerator($metas, $config);
47-
$jsonGenerator->generateJson();
47+
$buildResult->setJsonResults($jsonGenerator->generateJson($builder->getIndexName()));
4848
}
4949

5050
return $buildResult;

0 commit comments

Comments
 (0)