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

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

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

Powered by Google App Engine
This is Rietveld 408576698