Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(435)

Side by Side Diff: third_party/pkg/angular/lib/tools/expression_extractor.dart

Issue 257423008: Update all Angular libs (run update_all.sh). (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 library angular.tools.html_expression_extractor; 1 library angular.tools.html_expression_extractor;
2 2
3 import 'dart:async'; 3 import 'dart:async';
4 import 'dart:io'; 4 import 'dart:io';
5 import 'package:angular/tools/html_extractor.dart'; 5 import 'package:angular/tools/html_extractor.dart';
6 import 'package:angular/tools/source_metadata_extractor.dart'; 6 import 'package:angular/tools/source_metadata_extractor.dart';
7 import 'package:angular/tools/source_crawler_impl.dart'; 7 import 'package:angular/tools/source_crawler_impl.dart';
8 import 'package:angular/tools/io.dart'; 8 import 'package:angular/tools/io.dart';
9 import 'package:angular/tools/io_impl.dart'; 9 import 'package:angular/tools/io_impl.dart';
10 import 'package:angular/tools/common.dart'; 10 import 'package:angular/tools/common.dart';
11 11
12 import 'package:di/di.dart'; 12 import 'package:di/di.dart';
13 import 'package:di/dynamic_injector.dart'; 13 import 'package:di/dynamic_injector.dart';
14 14
15 import 'package:angular/core/module.dart';
16 import 'package:angular/core/parser/parser.dart'; 15 import 'package:angular/core/parser/parser.dart';
17 import 'package:angular/tools/parser_getter_setter/generator.dart'; 16 import 'package:angular/tools/parser_getter_setter/generator.dart';
18 import 'package:angular/tools/parser_generator/generator.dart';
19 17
20 main(args) { 18 main(args) {
21 if (args.length < 5) { 19 if (args.length < 5) {
22 print('Usage: expression_extractor file_to_scan html_root header_file ' 20 print('Usage: expression_extractor file_to_scan html_root header_file '
23 'footer_file output [package_roots+]'); 21 'footer_file output [package_roots+]');
24 exit(0); 22 exit(0);
25 } 23 }
26 IoService ioService = new IoServiceImpl(); 24 IoService ioService = new IoServiceImpl();
27 25
28 var packageRoots = 26 var packageRoots =
29 (args.length < 6) ? [Platform.packageRoot] : args.sublist(5); 27 (args.length < 6) ? [Platform.packageRoot] : args.sublist(5);
30 var sourceCrawler = new SourceCrawlerImpl(packageRoots); 28 var sourceCrawler = new SourceCrawlerImpl(packageRoots);
31 var sourceMetadataExtractor = new SourceMetadataExtractor(); 29 var sourceMetadataExtractor = new SourceMetadataExtractor();
32 List<DirectiveInfo> directives = 30 List<DirectiveInfo> directives =
33 sourceMetadataExtractor.gatherDirectiveInfo(args[0], sourceCrawler); 31 sourceMetadataExtractor.gatherDirectiveInfo(args[0], sourceCrawler);
34 var htmlExtractor = new HtmlExpressionExtractor(directives); 32 var htmlExtractor = new HtmlExpressionExtractor(directives);
35 htmlExtractor.crawl(args[1], ioService); 33 htmlExtractor.crawl(args[1], ioService);
36 34
37 var expressions = htmlExtractor.expressions; 35 var expressions = htmlExtractor.expressions;
38 expressions.add('null'); 36 expressions.add('null');
39 37
40 var headerFile = args[2]; 38 var headerFile = args[2];
41 var footerFile = args[3]; 39 var footerFile = args[3];
42 var outputFile = args[4]; 40 var outputFile = args[4];
43 SourcePrinter printer; 41 var printer;
44 if (outputFile == '--') { 42 if (outputFile == '--') {
45 printer = new SourcePrinter(); 43 printer = stdout;
46 } else { 44 } else {
47 printer = new FileSourcePrinter(outputFile); 45 printer = new File(outputFile).openWrite();
48 } 46 }
49 47
50 // Output the header file first. 48 // Output the header file first.
51 if (headerFile != '') { 49 if (headerFile != '') {
52 printer.printSrc(_readFile(headerFile)); 50 printer.write(_readFile(headerFile));
53 } 51 }
54 52
55 printer.printSrc('// Found ${expressions.length} expressions'); 53 printer.write('// Found ${expressions.length} expressions\n');
56 Module module = new Module() 54 Module module = new Module()
57 ..type(Parser, implementedBy: DynamicParser) 55 ..type(Parser, implementedBy: DynamicParser)
58 ..type(ParserBackend, implementedBy: DartGetterSetterGen) 56 ..type(ParserBackend, implementedBy: DartGetterSetterGen);
59 ..type(FilterMap, implementedBy: NullFilterMap)
60 ..value(SourcePrinter, printer);
61 Injector injector = 57 Injector injector =
62 new DynamicInjector(modules: [module], allowImplicitInjection: true); 58 new DynamicInjector(modules: [module], allowImplicitInjection: true);
63 59
64 runZoned(() { 60 runZoned(() {
65 // Run the generator. 61 // Run the generator.
66 injector.get(ParserGetterSetter).generateParser(htmlExtractor.expressions); 62 injector.get(ParserGetterSetter).generateParser(htmlExtractor.expressions,
63 printer);
67 }, zoneSpecification: new ZoneSpecification(print: (_, __, ___, String line) { 64 }, zoneSpecification: new ZoneSpecification(print: (_, __, ___, String line) {
68 printer.printSrc(line); 65 printer.write(line);
69 })); 66 }));
70 67
71 68
72 // Output footer last. 69 // Output footer last.
73 if (footerFile != '') { 70 if (footerFile != '') {
74 printer.printSrc(_readFile(footerFile)); 71 printer.write(_readFile(footerFile));
75 } 72 }
76 } 73 }
77 74
78 String _readFile(String filePath) => new File(filePath).readAsStringSync(); 75 String _readFile(String filePath) => new File(filePath).readAsStringSync();
79
80 class FileSourcePrinter implements SourcePrinter {
81 final File _file;
82
83 FileSourcePrinter(String filePath)
84 : _file = new File(filePath) {
85 // clear file
86 _file.writeAsStringSync('');
87 }
88
89 printSrc(src) => _file.writeAsStringSync('$src\n', mode: FileMode.APPEND);
90 }
OLDNEW
« no previous file with comments | « third_party/pkg/angular/lib/routing/routing.dart ('k') | third_party/pkg/angular/lib/tools/html_extractor.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698