Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit a13653c

Browse files
Di PengIgorMinar
Di Peng
authored andcommitted
refactor(angular): externalize script load order into JSON
- move all script load order into angularFiles.js - rakefile and angular-bootstrap.js use angularFiles.js to get script orders - gen_jstd_configs.js uses angularFiles.js to generate various jstd config files - run gen_jstd_configs.js whenever we run server.sh Closes #470
1 parent 8017340 commit a13653c

11 files changed

+197
-359
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ performance/temp*.html
1010
*~
1111
angular.js.tmproj
1212
node_modules
13+
jsTestDriver*.conf

Rakefile

+5-59
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,8 @@
11
require 'yaml'
22
include FileUtils
33

4-
ANGULAR = [
5-
'src/Angular.js',
6-
'src/JSON.js',
7-
'src/Compiler.js',
8-
'src/Scope.js',
9-
'src/Injector.js',
10-
'src/parser.js',
11-
'src/Resource.js',
12-
'src/Browser.js',
13-
'src/sanitizer.js',
14-
'src/jqLite.js',
15-
'src/apis.js',
16-
'src/filters.js',
17-
'src/formatters.js',
18-
'src/validators.js',
19-
'src/service/cookieStore.js',
20-
'src/service/cookies.js',
21-
'src/service/defer.js',
22-
'src/service/document.js',
23-
'src/service/exceptionHandler.js',
24-
'src/service/hover.js',
25-
'src/service/invalidWidgets.js',
26-
'src/service/location.js',
27-
'src/service/log.js',
28-
'src/service/resource.js',
29-
'src/service/route.js',
30-
'src/service/routeParams.js',
31-
'src/service/sniffer.js',
32-
'src/service/window.js',
33-
'src/service/xhr.bulk.js',
34-
'src/service/xhr.cache.js',
35-
'src/service/xhr.error.js',
36-
'src/service/xhr.js',
37-
'src/service/locale.js',
38-
'src/directives.js',
39-
'src/markups.js',
40-
'src/widgets.js',
41-
'src/AngularPublic.js',
42-
]
43-
44-
ANGULAR_SCENARIO = [
45-
'src/scenario/Scenario.js',
46-
'src/scenario/Application.js',
47-
'src/scenario/Describe.js',
48-
'src/scenario/Future.js',
49-
'src/scenario/ObjectModel.js',
50-
'src/scenario/Describe.js',
51-
'src/scenario/Runner.js',
52-
'src/scenario/SpecRunner.js',
53-
'src/scenario/dsl.js',
54-
'src/scenario/matchers.js',
55-
'src/scenario/output/Html.js',
56-
'src/scenario/output/Json.js',
57-
'src/scenario/output/Xml.js',
58-
'src/scenario/output/Object.js'
59-
]
4+
content = File.open('angularFiles.js', 'r') {|f| f.read }
5+
files = eval(content.gsub(/angularFiles = /, '').gsub(/:/, '=>'));
606

617
BUILD_DIR = 'build'
628

@@ -92,8 +38,8 @@ task :compile_scenario => :init do
9238
deps = [
9339
'lib/jquery/jquery-1.4.2.js',
9440
'src/scenario/angular.prefix',
95-
ANGULAR,
96-
ANGULAR_SCENARIO,
41+
files['angularSrc'],
42+
files['angularScenario'],
9743
'src/scenario/angular.suffix',
9844
]
9945

@@ -194,7 +140,7 @@ task :compile => [:init, :compile_scenario, :compile_jstd_scenario_adapter, :gen
194140

195141
deps = [
196142
'src/angular.prefix',
197-
ANGULAR,
143+
files['angularSrc'],
198144
'src/angular.suffix',
199145
]
200146

angularFiles.js

+139
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
angularFiles = {
2+
'angularSrc': [
3+
'src/Angular.js',
4+
'src/JSON.js',
5+
'src/Compiler.js',
6+
'src/Scope.js',
7+
'src/Injector.js',
8+
'src/parser.js',
9+
'src/Resource.js',
10+
'src/Browser.js',
11+
'src/sanitizer.js',
12+
'src/jqLite.js',
13+
'src/apis.js',
14+
'src/filters.js',
15+
'src/formatters.js',
16+
'src/validators.js',
17+
'src/service/cookieStore.js',
18+
'src/service/cookies.js',
19+
'src/service/defer.js',
20+
'src/service/document.js',
21+
'src/service/exceptionHandler.js',
22+
'src/service/hover.js',
23+
'src/service/invalidWidgets.js',
24+
'src/service/location.js',
25+
'src/service/log.js',
26+
'src/service/resource.js',
27+
'src/service/route.js',
28+
'src/service/routeParams.js',
29+
'src/service/sniffer.js',
30+
'src/service/window.js',
31+
'src/service/xhr.bulk.js',
32+
'src/service/xhr.cache.js',
33+
'src/service/xhr.error.js',
34+
'src/service/xhr.js',
35+
'src/service/locale.js',
36+
'src/directives.js',
37+
'src/markups.js',
38+
'src/widgets.js',
39+
'src/AngularPublic.js',
40+
],
41+
42+
'angularScenario': [
43+
'src/scenario/Scenario.js',
44+
'src/scenario/Application.js',
45+
'src/scenario/Describe.js',
46+
'src/scenario/Future.js',
47+
'src/scenario/ObjectModel.js',
48+
'src/scenario/Describe.js',
49+
'src/scenario/Runner.js',
50+
'src/scenario/SpecRunner.js',
51+
'src/scenario/dsl.js',
52+
'src/scenario/matchers.js',
53+
'src/scenario/output/Html.js',
54+
'src/scenario/output/Json.js',
55+
'src/scenario/output/Xml.js',
56+
'src/scenario/output/Object.js'
57+
],
58+
59+
'jstd': [
60+
'lib/jasmine-1.0.1/jasmine.js',
61+
'lib/jasmine-jstd-adapter/JasmineAdapter.js',
62+
'lib/jquery/jquery-1.4.2.js',
63+
'test/jquery_remove.js',
64+
'@angularSrc',
65+
'example/personalLog/*.js',
66+
'test/testabilityPatch.js',
67+
'src/scenario/Scenario.js',
68+
'src/scenario/output/*.js',
69+
'src/jstd-scenario-adapter/*.js',
70+
'src/scenario/*.js',
71+
'src/angular-mocks.js',
72+
'test/mocks.js',
73+
'test/scenario/*.js',
74+
'test/scenario/output/*.js',
75+
'test/jstd-scenario-adapter/*.js',
76+
'test/*.js',
77+
'test/service/*.js',
78+
'example/personalLog/test/*.js'
79+
],
80+
81+
'jstdExclude': [
82+
'test/jquery_alias.js',
83+
'src/angular-bootstrap.js',
84+
'src/scenario/angular-bootstrap.js',
85+
'src/AngularPublic.js'
86+
],
87+
88+
'jstdScenario': [
89+
'build/angular-scenario.js',
90+
'build/jstd-scenario-adapter-config.js',
91+
'build/jstd-scenario-adapter.js',
92+
'build/docs/docs-scenario.js'
93+
],
94+
95+
'jstdPerf': [
96+
'lib/jasmine-1.0.1/jasmine.js',
97+
'lib/jasmine-jstd-adapter/JasmineAdapter.js',
98+
'angularSrc',
99+
'src/angular-mocks.js',
100+
'perf/data/*.js',
101+
'perf/testUtils.js',
102+
'perf/*.js'
103+
],
104+
105+
'jstdPerfExclude': [
106+
'src/angular-bootstrap.js',
107+
'src/scenario/angular-bootstrap.js',
108+
'src/AngularPublic.js'
109+
],
110+
111+
'jstdJquery': [
112+
'lib/jasmine-1.0.1/jasmine.js',
113+
'lib/jasmine-jstd-adapter/JasmineAdapter.js',
114+
'lib/jquery/jquery-1.4.2.js',
115+
'test/jquery_alias.js',
116+
'@angularSrc',
117+
'example/personalLog/*.js',
118+
'test/testabilityPatch.js',
119+
'src/scenario/Scenario.js',
120+
'src/scenario/output/*.js',
121+
'src/jstd-scenario-adapter/*.js',
122+
'src/scenario/*.js',
123+
'src/angular-mocks.js',
124+
'test/mocks.js',
125+
'test/scenario/*.js',
126+
'test/scenario/output/*.js',
127+
'test/jstd-scenario-adapter/*.js',
128+
'test/*.js',
129+
'test/service/*.js',
130+
'example/personalLog/test/*.js'
131+
],
132+
133+
'jstdJqueryExclude': [
134+
'src/angular-bootstrap.js',
135+
'src/AngularPublic.js',
136+
'src/scenario/angular-bootstrap.js',
137+
'test/jquery_remove.js'
138+
]
139+
}

gen_jstd_configs.js

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/usr/bin/env node
2+
/* This file reads in list of files from angularFiles.js and generate various jstd config files */
3+
4+
var fs = require('fs'),
5+
angularSrc,
6+
angularScenario;
7+
8+
fs.readFile('angularFiles.js', function(err, data) {
9+
eval(data.toString());
10+
var prefix = 'server: http://localhost:9876\n\n',
11+
prefixScenario = 'server: http://localhost:9877\n\n';
12+
13+
angularSrc = angularFiles.angularSrc.join('\n- ');
14+
angularScenario = angularFiles.angularScenario.join('\n- ');
15+
16+
fs.writeFile('./jsTestDriver.conf', prefix + combine(angularFiles.jstd,
17+
angularFiles.jstdExclude));
18+
19+
fs.writeFile('./jsTestDriver-scenario.conf', prefixScenario +
20+
combine(angularFiles.jstdScenario) +
21+
'\n\nproxy:\n- {matcher: "*", server: "http://localhost:8000"}');
22+
23+
fs.writeFile('./jsTestDriver-perf.conf', prefix + combine(angularFiles.jstdPerf,
24+
angularFiles.jstdPerfExclude));
25+
26+
fs.writeFile('./jsTestDriver-jquery.conf', prefix + combine(angularFiles.jstdJquery,
27+
angularFiles.jstdJqueryExclude));
28+
29+
fs.writeFile('./jsTestDriver-coverage.conf', prefix +
30+
combine(angularFiles.jstd, angularFiles.jstdExclude) +
31+
'\n\nplugin:\n- name: "coverage"\n' +
32+
'jar: "lib/jstestdriver/coverage.jar"\n' +
33+
'module: "com.google.jstestdriver.coverage.CoverageModule"');
34+
});
35+
36+
function combine(load, exclude) {
37+
var fileList = 'load:\n- ' + load.join('\n- ');
38+
if (exclude) fileList += ('\n\nexclude:\n- ' + exclude.join('\n- '));
39+
40+
//Replace placeholders for src list before returning
41+
return fileList.replace(/@angularSrc/g, angularSrc);
42+
}
43+

jsTestDriver-coverage.conf

-68
This file was deleted.

0 commit comments

Comments
 (0)