| library dartdoc.empty_generator; |
| |
| import 'dart:async'; |
| |
| import 'package:dartdoc/src/generator.dart'; |
| import 'package:dartdoc/src/model.dart'; |
| import 'package:dartdoc/src/model_utils.dart'; |
| |
| /// A generator that does not generate files, but does traverse the [PackageGraph] |
| /// and access [ModelElement.documetationAsHtml] for every element as though |
| /// it were. |
| class EmptyGenerator extends Generator { |
| @override |
| Future generate(PackageGraph _packageGraph, String outputDirectoryPath) { |
| _onFileCreated.add(_packageGraph.defaultPackage.documentationAsHtml); |
| for (var package in Set.from([_packageGraph.defaultPackage]) |
| ..addAll(_packageGraph.localPackages)) { |
| for (var category in filterNonDocumented(package.categories)) { |
| _onFileCreated.add(category.documentationAsHtml); |
| } |
| |
| for (Library lib in filterNonDocumented(package.libraries)) { |
| filterNonDocumented(lib.allModelElements) |
| .forEach((m) => _onFileCreated.add(m.documentationAsHtml)); |
| } |
| } |
| return null; |
| } |
| |
| final StreamController<void> _onFileCreated = StreamController(sync: true); |
| |
| @override |
| |
| /// Implementation fires on each model element processed rather than |
| /// file creation. |
| Stream<void> get onFileCreated => _onFileCreated.stream; |
| |
| @override |
| Set<String> get writtenFiles => Set(); |
| } |