Skip to content

Commit 9c24147

Browse files
authored
Refactor DartDocConfig object usage, part 1 (#1661)
* refactors * Library/Package/PackageGraph constructor shuffle * Not quite there; still need to populate non-local packages * weird vm thing * Got it? * Add another test * tweaks for Flutter * Initialization speedups * Canonicalize path comparisons and increase timeouts on the complex dartdoc tests for travis * Update grind with different parameters * First step complete, now to eliminate dupes * Condense more into config * remove commented out line * Everything but the generator information is moved now. * dartfmt * Restore a commented out test * Use localPublicLibraries in restored test * dartfmt + review comments
1 parent b8c58b8 commit 9c24147

10 files changed

+413
-338
lines changed

bin/dartdoc.dart

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,6 @@ main(List<String> arguments) async {
6868
exit(1);
6969
}
7070

71-
List<String> excludeLibraries = args['exclude'] as List<String>;
72-
List<String> includeLibraries = args['include'] as List<String>;
73-
List<String> includeExternals = args['include-external'] as List<String>;
74-
7571
String url = args['hosted-url'];
7672

7773
List<String> headerFilePaths =
@@ -252,26 +248,30 @@ main(List<String> arguments) async {
252248
]);
253249
}
254250

255-
setConfig(
256-
addCrossdart: args['add-crossdart'],
257-
examplePathPrefix: args['example-path-prefix'],
258-
showWarnings: args['show-warnings'],
259-
includeSource: args['include-source'],
260-
inputDir: inputDir,
261-
sdkVersion: sdk.sdkVersion,
262-
autoIncludeDependencies: args['auto-include-dependencies'],
263-
packageOrder: args['package-order'].isEmpty
264-
? args['category-order']
265-
: args['package-order'],
266-
reexportMinConfidence:
267-
double.parse(args['ambiguous-reexport-scorer-min-confidence']),
268-
verboseWarnings: args['verbose-warnings'],
269-
excludePackages: args['exclude-packages'],
270-
dropTextFrom: dropTextFrom,
271-
validateLinks: args['validate-links']);
272-
273-
DartDoc dartdoc = new DartDoc(inputDir, excludeLibraries, sdkDir, generators,
274-
outputDir, packageMeta, includeLibraries, includeExternals);
251+
DartDocConfig config = new DartDocConfig.fromParameters(
252+
addCrossdart: args['add-crossdart'],
253+
autoIncludeDependencies: args['auto-include-dependencies'],
254+
dropTextFrom: dropTextFrom,
255+
examplePathPrefix: args['example-path-prefix'],
256+
excludeLibraries: args['exclude'],
257+
excludePackages: args['exclude-packages'],
258+
includeExternals: args['include-external'],
259+
includeLibraries: args['include'],
260+
includeSource: args['include-source'],
261+
inputDir: inputDir,
262+
packageOrder: args['package-order'].isEmpty
263+
? args['category-order']
264+
: args['package-order'],
265+
reexportMinConfidence:
266+
double.parse(args['ambiguous-reexport-scorer-min-confidence']),
267+
sdkDir: sdkDir,
268+
sdkVersion: sdk.sdkVersion,
269+
showWarnings: args['show-warnings'],
270+
validateLinks: args['validate-links'],
271+
verboseWarnings: args['verbose-warnings'],
272+
);
273+
274+
DartDoc dartdoc = new DartDoc(config, generators, outputDir, packageMeta);
275275

276276
dartdoc.onCheckProgress.listen(logProgress);
277277
await Chain.capture(() async {

lib/dartdoc.dart

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -75,25 +75,9 @@ class DartDoc extends PackageBuilder {
7575
final StreamController<String> _onCheckProgress =
7676
new StreamController(sync: true);
7777

78-
DartDoc(
79-
Directory rootDir,
80-
List<String> excludes,
81-
Directory sdkDir,
82-
this.generators,
83-
this.outputDir,
84-
PackageMeta packageMeta,
85-
List<String> includes,
86-
List<String> includeExternals)
87-
: super(
88-
rootDir,
89-
excludes,
90-
config.excludePackages,
91-
sdkDir,
92-
packageMeta,
93-
includes,
94-
includeExternals,
95-
config.showWarnings,
96-
config.autoIncludeDependencies);
78+
DartDoc(DartDocConfig config, this.generators, this.outputDir,
79+
PackageMeta packageMeta)
80+
: super(config, packageMeta);
9781

9882
Stream<String> get onCheckProgress => _onCheckProgress.stream;
9983

lib/src/config.dart

Lines changed: 63 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -23,65 +23,86 @@ class LocalConfig {
2323
}
2424
}
2525

26-
class Config {
27-
final Directory inputDir;
28-
final bool showWarnings;
26+
class DartDocConfig {
2927
final bool addCrossdart;
28+
final bool autoIncludeDependencies;
29+
final List<String> dropTextFrom;
30+
final List<String> excludeLibraries;
31+
final List<String> excludePackages;
3032
final String examplePathPrefix;
33+
final List<String> includeExternals;
34+
final List<String> includeLibraries;
3135
final bool includeSource;
32-
final String sdkVersion;
33-
final bool autoIncludeDependencies;
36+
final Directory inputDir;
3437
final List<String> packageOrder;
3538
final double reexportMinConfidence;
36-
final bool verboseWarnings;
37-
final List<String> dropTextFrom;
38-
final List<String> excludePackages;
39+
final Directory sdkDir;
40+
final String sdkVersion;
41+
final bool showWarnings;
3942
final bool validateLinks;
40-
Config._(
41-
this.inputDir,
42-
this.showWarnings,
43-
this.addCrossdart,
44-
this.examplePathPrefix,
45-
this.includeSource,
46-
this.sdkVersion,
47-
this.autoIncludeDependencies,
48-
this.packageOrder,
49-
this.reexportMinConfidence,
50-
this.verboseWarnings,
51-
this.dropTextFrom,
52-
this.excludePackages,
53-
this.validateLinks);
54-
}
55-
56-
Config _config;
57-
Config get config => _config;
43+
final bool verboseWarnings;
44+
DartDocConfig._(
45+
this.addCrossdart,
46+
this.autoIncludeDependencies,
47+
this.dropTextFrom,
48+
this.examplePathPrefix,
49+
this.excludeLibraries,
50+
this.excludePackages,
51+
this.includeExternals,
52+
this.includeLibraries,
53+
this.includeSource,
54+
this.inputDir,
55+
this.packageOrder,
56+
this.reexportMinConfidence,
57+
this.sdkDir,
58+
this.sdkVersion,
59+
this.showWarnings,
60+
this.validateLinks,
61+
this.verboseWarnings,
62+
);
5863

59-
void setConfig(
60-
{Directory inputDir,
61-
bool showWarnings: false,
64+
factory DartDocConfig.fromParameters({
6265
bool addCrossdart: false,
66+
bool autoIncludeDependencies: false,
67+
List<String> dropTextFrom,
6368
String examplePathPrefix,
69+
List<String> excludeLibraries,
70+
List<String> excludePackages,
71+
List<String> includeExternals,
72+
List<String> includeLibraries,
6473
bool includeSource: true,
65-
String sdkVersion,
66-
bool autoIncludeDependencies: false,
74+
Directory inputDir,
6775
List<String> packageOrder,
6876
double reexportMinConfidence: 0.1,
77+
Directory sdkDir,
78+
String sdkVersion,
79+
bool showWarnings: false,
80+
bool validateLinks: true,
6981
bool verboseWarnings: true,
70-
List<String> dropTextFrom,
71-
List<String> excludePackages,
72-
bool validateLinks: true}) {
73-
_config = new Config._(
74-
inputDir,
75-
showWarnings,
82+
}) {
83+
return new DartDocConfig._(
7684
addCrossdart,
85+
autoIncludeDependencies,
86+
dropTextFrom ?? const <String>[],
7787
examplePathPrefix,
88+
excludeLibraries ?? const <String>[],
89+
excludePackages ?? const <String>[],
90+
includeExternals ?? const <String>[],
91+
includeLibraries ?? const <String>[],
7892
includeSource,
79-
sdkVersion,
80-
autoIncludeDependencies,
93+
inputDir,
8194
packageOrder ?? const <String>[],
8295
reexportMinConfidence,
96+
sdkDir ?? getSdkDir(),
97+
sdkVersion,
98+
showWarnings,
99+
validateLinks,
83100
verboseWarnings,
84-
dropTextFrom ?? const <String>[],
85-
excludePackages ?? const <String>[],
86-
validateLinks);
101+
);
102+
}
103+
104+
bool isLibraryExcluded(String name) =>
105+
excludeLibraries.any((pattern) => name == pattern);
106+
bool isPackageExcluded(String name) =>
107+
excludePackages.any((pattern) => name == pattern);
87108
}

0 commit comments

Comments
 (0)