ninjs 0.14.1 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (191) hide show
  1. data/.bundle/config +2 -2
  2. data/.travis.yml +1 -0
  3. data/Gemfile +1 -0
  4. data/Gemfile.lock +13 -11
  5. data/README.md +108 -93
  6. data/Rakefile +17 -7
  7. data/VERSION +1 -1
  8. data/bin/ninjs +24 -22
  9. data/lib/ninjs/command.rb +32 -21
  10. data/lib/ninjs/configuration.rb +35 -53
  11. data/lib/ninjs/generator.rb +6 -6
  12. data/lib/ninjs/notification.rb +5 -5
  13. data/lib/ninjs/project.rb +31 -25
  14. data/ninjs.gemspec +18 -142
  15. data/repository/ninjs/core/application.js +13 -24
  16. data/repository/ninjs/core/dom.js +87 -68
  17. data/repository/ninjs/core/existence.js +44 -105
  18. data/repository/ninjs/core/extend.js +11 -32
  19. data/repository/ninjs/core/module.js +53 -107
  20. data/repository/ninjs/core/nin.js +5 -7
  21. data/repository/ninjs/tests/extension.test.js +0 -10
  22. data/repository/ninjs/tests/index.html +19 -20
  23. data/repository/ninjs/tests/module.test.js +52 -56
  24. data/repository/ninjs/utilities/array.js +8 -8
  25. data/repository/ninjs/utilities/cookie.js +59 -0
  26. data/repository/ninjs/utilities/css.js +7 -7
  27. data/repository/ninjs/utilities/number.js +2 -2
  28. data/repository/ninjs/utilities/string.js +26 -26
  29. data/spec/cli_spec.rb +90 -88
  30. data/spec/command_spec.rb +104 -137
  31. data/spec/configuration_spec.rb +23 -37
  32. data/spec/fixtures/_global.module.js +9 -0
  33. data/spec/fixtures/compressed.myapp.js +23 -44
  34. data/spec/fixtures/foo.elements.js +1 -1
  35. data/spec/fixtures/foo.js +5 -5
  36. data/spec/fixtures/foo.model.js +1 -1
  37. data/spec/fixtures/foo.module.js +3 -3
  38. data/spec/fixtures/hello.elements.js +1 -1
  39. data/spec/fixtures/hello.js +5 -5
  40. data/spec/fixtures/hello.model.js +1 -1
  41. data/spec/fixtures/hello.module.js +3 -3
  42. data/spec/fixtures/myapp.initial.js +198 -329
  43. data/spec/fixtures/myapp.js +285 -357
  44. data/spec/fixtures/mymodule.alias.module.js +2 -2
  45. data/spec/fixtures/mymodule.dependencies.module.js +2 -2
  46. data/spec/fixtures/mymodule.elements.js +1 -1
  47. data/spec/fixtures/mymodule.model.js +1 -1
  48. data/spec/fixtures/mymodule.module.js +2 -2
  49. data/spec/fixtures/mymodule.module_alias.module.js +10 -0
  50. data/spec/fixtures/new.ninjs.conf +2 -0
  51. data/spec/fixtures/nin.js +198 -329
  52. data/spec/fixtures/ninjs.conf +2 -0
  53. data/spec/fixtures/updated.ninjs.conf +8 -0
  54. data/spec/generator_spec.rb +37 -26
  55. data/spec/ninjs_spec.rb +6 -6
  56. data/spec/project_spec.rb +229 -221
  57. data/spec/spec_helper.rb +3 -1
  58. data/spec/testspec_spec.rb +7 -0
  59. metadata +28 -145
  60. data/repository/json2.js +0 -482
  61. data/repository/modernizr/1.5.js +0 -28
  62. data/repository/modernizr/latest.js +0 -1
  63. data/repository/ninjs/docs/Data/ClassHierarchy.nd +0 -0
  64. data/repository/ninjs/docs/Data/ConfigFileInfo.nd +0 -0
  65. data/repository/ninjs/docs/Data/FileInfo.nd +0 -16
  66. data/repository/ninjs/docs/Data/ImageFileInfo.nd +0 -0
  67. data/repository/ninjs/docs/Data/ImageReferenceTable.nd +0 -0
  68. data/repository/ninjs/docs/Data/IndexInfo.nd +0 -0
  69. data/repository/ninjs/docs/Data/PreviousMenuState.nd +0 -0
  70. data/repository/ninjs/docs/Data/PreviousSettings.nd +0 -0
  71. data/repository/ninjs/docs/Data/SymbolTable.nd +0 -0
  72. data/repository/ninjs/docs/Languages.txt +0 -113
  73. data/repository/ninjs/docs/Menu.txt +0 -63
  74. data/repository/ninjs/docs/Topics.txt +0 -81
  75. data/repository/ninjs/docs/files/core/application-js.html +0 -44
  76. data/repository/ninjs/docs/files/core/existence-js.html +0 -60
  77. data/repository/ninjs/docs/files/core/extend-js.html +0 -55
  78. data/repository/ninjs/docs/files/core/module-js.html +0 -80
  79. data/repository/ninjs/docs/files/core/nin-js.html +0 -38
  80. data/repository/ninjs/docs/index.html +0 -1
  81. data/repository/ninjs/docs/index/Classes.html +0 -33
  82. data/repository/ninjs/docs/index/Files.html +0 -45
  83. data/repository/ninjs/docs/index/Functions.html +0 -65
  84. data/repository/ninjs/docs/index/General.html +0 -85
  85. data/repository/ninjs/docs/index/Variables.html +0 -45
  86. data/repository/ninjs/docs/javascript/main.js +0 -841
  87. data/repository/ninjs/docs/javascript/prettify.js +0 -1526
  88. data/repository/ninjs/docs/javascript/searchdata.js +0 -152
  89. data/repository/ninjs/docs/search/ClassesN.html +0 -20
  90. data/repository/ninjs/docs/search/FilesA.html +0 -20
  91. data/repository/ninjs/docs/search/FilesE.html +0 -20
  92. data/repository/ninjs/docs/search/FilesM.html +0 -20
  93. data/repository/ninjs/docs/search/FilesN.html +0 -20
  94. data/repository/ninjs/docs/search/FunctionsA.html +0 -20
  95. data/repository/ninjs/docs/search/FunctionsC.html +0 -20
  96. data/repository/ninjs/docs/search/FunctionsE.html +0 -20
  97. data/repository/ninjs/docs/search/FunctionsI.html +0 -20
  98. data/repository/ninjs/docs/search/FunctionsM.html +0 -20
  99. data/repository/ninjs/docs/search/FunctionsR.html +0 -20
  100. data/repository/ninjs/docs/search/FunctionsS.html +0 -20
  101. data/repository/ninjs/docs/search/FunctionsSymbols.html +0 -20
  102. data/repository/ninjs/docs/search/FunctionsU.html +0 -20
  103. data/repository/ninjs/docs/search/GeneralA.html +0 -20
  104. data/repository/ninjs/docs/search/GeneralC.html +0 -20
  105. data/repository/ninjs/docs/search/GeneralD.html +0 -20
  106. data/repository/ninjs/docs/search/GeneralE.html +0 -20
  107. data/repository/ninjs/docs/search/GeneralF.html +0 -20
  108. data/repository/ninjs/docs/search/GeneralI.html +0 -20
  109. data/repository/ninjs/docs/search/GeneralM.html +0 -20
  110. data/repository/ninjs/docs/search/GeneralN.html +0 -20
  111. data/repository/ninjs/docs/search/GeneralR.html +0 -20
  112. data/repository/ninjs/docs/search/GeneralS.html +0 -20
  113. data/repository/ninjs/docs/search/GeneralSymbols.html +0 -20
  114. data/repository/ninjs/docs/search/GeneralT.html +0 -20
  115. data/repository/ninjs/docs/search/GeneralU.html +0 -20
  116. data/repository/ninjs/docs/search/GeneralV.html +0 -20
  117. data/repository/ninjs/docs/search/NoResults.html +0 -15
  118. data/repository/ninjs/docs/search/VariablesD.html +0 -20
  119. data/repository/ninjs/docs/search/VariablesN.html +0 -20
  120. data/repository/ninjs/docs/search/VariablesR.html +0 -20
  121. data/repository/ninjs/docs/search/VariablesT.html +0 -20
  122. data/repository/ninjs/docs/styles/main.css +0 -828
  123. data/repository/nullconsole.js +0 -7
  124. data/repository/qunit/assets/css/qunit.css +0 -196
  125. data/repository/qunit/qunit.js +0 -1374
  126. data/repository/selectivizr/1.0.js +0 -5
  127. data/repository/selectivizr/latest.js +0 -1
  128. data/repository/syntaxhighlighter/all.js +0 -11
  129. data/repository/syntaxhighlighter/assets/css/syntaxhighlighter/shCore.css +0 -226
  130. data/repository/syntaxhighlighter/assets/css/syntaxhighlighter/shCoreDefault.css +0 -328
  131. data/repository/syntaxhighlighter/assets/css/syntaxhighlighter/shCoreDjango.css +0 -331
  132. data/repository/syntaxhighlighter/assets/css/syntaxhighlighter/shCoreEclipse.css +0 -339
  133. data/repository/syntaxhighlighter/assets/css/syntaxhighlighter/shCoreEmacs.css +0 -324
  134. data/repository/syntaxhighlighter/assets/css/syntaxhighlighter/shCoreFadeToGrey.css +0 -328
  135. data/repository/syntaxhighlighter/assets/css/syntaxhighlighter/shCoreMDUltra.css +0 -324
  136. data/repository/syntaxhighlighter/assets/css/syntaxhighlighter/shCoreMidnight.css +0 -324
  137. data/repository/syntaxhighlighter/assets/css/syntaxhighlighter/shCoreRDark.css +0 -324
  138. data/repository/syntaxhighlighter/assets/css/syntaxhighlighter/shThemeDefault.css +0 -117
  139. data/repository/syntaxhighlighter/assets/css/syntaxhighlighter/shThemeDjango.css +0 -120
  140. data/repository/syntaxhighlighter/assets/css/syntaxhighlighter/shThemeEclipse.css +0 -128
  141. data/repository/syntaxhighlighter/assets/css/syntaxhighlighter/shThemeEmacs.css +0 -113
  142. data/repository/syntaxhighlighter/assets/css/syntaxhighlighter/shThemeFadeToGrey.css +0 -117
  143. data/repository/syntaxhighlighter/assets/css/syntaxhighlighter/shThemeMDUltra.css +0 -113
  144. data/repository/syntaxhighlighter/assets/css/syntaxhighlighter/shThemeMidnight.css +0 -113
  145. data/repository/syntaxhighlighter/assets/css/syntaxhighlighter/shThemeRDark.css +0 -113
  146. data/repository/syntaxhighlighter/assets/scss/syntaxhighlighter/_shCore.scss +0 -216
  147. data/repository/syntaxhighlighter/assets/scss/syntaxhighlighter/_shCoreDefault.scss +0 -2
  148. data/repository/syntaxhighlighter/assets/scss/syntaxhighlighter/_shCoreDjango.scss +0 -2
  149. data/repository/syntaxhighlighter/assets/scss/syntaxhighlighter/_shCoreEclipse.scss +0 -2
  150. data/repository/syntaxhighlighter/assets/scss/syntaxhighlighter/_shCoreEmacs.scss +0 -2
  151. data/repository/syntaxhighlighter/assets/scss/syntaxhighlighter/_shCoreFadeToGrey.scss +0 -2
  152. data/repository/syntaxhighlighter/assets/scss/syntaxhighlighter/_shCoreMDUltra.scss +0 -2
  153. data/repository/syntaxhighlighter/assets/scss/syntaxhighlighter/_shCoreMidnight.scss +0 -2
  154. data/repository/syntaxhighlighter/assets/scss/syntaxhighlighter/_shCoreRDark.scss +0 -2
  155. data/repository/syntaxhighlighter/assets/scss/syntaxhighlighter/_shThemeDefault.scss +0 -7
  156. data/repository/syntaxhighlighter/assets/scss/syntaxhighlighter/_shThemeDjango.scss +0 -36
  157. data/repository/syntaxhighlighter/assets/scss/syntaxhighlighter/_shThemeEclipse.scss +0 -48
  158. data/repository/syntaxhighlighter/assets/scss/syntaxhighlighter/_shThemeEmacs.scss +0 -32
  159. data/repository/syntaxhighlighter/assets/scss/syntaxhighlighter/_shThemeFadeToGrey.scss +0 -36
  160. data/repository/syntaxhighlighter/assets/scss/syntaxhighlighter/_shThemeMDUltra.scss +0 -32
  161. data/repository/syntaxhighlighter/assets/scss/syntaxhighlighter/_shThemeMidnight.scss +0 -32
  162. data/repository/syntaxhighlighter/assets/scss/syntaxhighlighter/_shThemeRDark.scss +0 -32
  163. data/repository/syntaxhighlighter/assets/scss/syntaxhighlighter/_theme_template.scss +0 -120
  164. data/repository/syntaxhighlighter/shAutoloader.js +0 -17
  165. data/repository/syntaxhighlighter/shBrushAS3.js +0 -59
  166. data/repository/syntaxhighlighter/shBrushAppleScript.js +0 -75
  167. data/repository/syntaxhighlighter/shBrushBash.js +0 -59
  168. data/repository/syntaxhighlighter/shBrushCSharp.js +0 -65
  169. data/repository/syntaxhighlighter/shBrushColdFusion.js +0 -100
  170. data/repository/syntaxhighlighter/shBrushCpp.js +0 -97
  171. data/repository/syntaxhighlighter/shBrushCss.js +0 -91
  172. data/repository/syntaxhighlighter/shBrushDelphi.js +0 -55
  173. data/repository/syntaxhighlighter/shBrushDiff.js +0 -41
  174. data/repository/syntaxhighlighter/shBrushErlang.js +0 -52
  175. data/repository/syntaxhighlighter/shBrushGroovy.js +0 -67
  176. data/repository/syntaxhighlighter/shBrushJScript.js +0 -52
  177. data/repository/syntaxhighlighter/shBrushJava.js +0 -57
  178. data/repository/syntaxhighlighter/shBrushJavaFX.js +0 -58
  179. data/repository/syntaxhighlighter/shBrushPerl.js +0 -72
  180. data/repository/syntaxhighlighter/shBrushPhp.js +0 -88
  181. data/repository/syntaxhighlighter/shBrushPlain.js +0 -33
  182. data/repository/syntaxhighlighter/shBrushPowerShell.js +0 -74
  183. data/repository/syntaxhighlighter/shBrushPython.js +0 -64
  184. data/repository/syntaxhighlighter/shBrushRuby.js +0 -55
  185. data/repository/syntaxhighlighter/shBrushSass.js +0 -94
  186. data/repository/syntaxhighlighter/shBrushScala.js +0 -51
  187. data/repository/syntaxhighlighter/shBrushSql.js +0 -66
  188. data/repository/syntaxhighlighter/shBrushVb.js +0 -56
  189. data/repository/syntaxhighlighter/shBrushXml.js +0 -69
  190. data/repository/syntaxhighlighter/shCore.js +0 -17
  191. data/repository/syntaxhighlighter/shLegacy.js +0 -17
@@ -1,121 +1,60 @@
1
- if (window.is_defined === undefined) {
2
- window.is_defined = function(suspect) {
3
- return ((suspect === undefined) || (suspect === null)) ? false : true;
4
- };
5
- }
6
-
7
- if (!is_defined(window.is_undefined)) {
8
- window.is_undefined = function(suspect) {
9
- return (suspect === undefined) ? true : false;
10
- };
11
- }
1
+ is_defined = function(suspect) {
2
+ return ((suspect === undefined) || (suspect === null)) ? false : true;
3
+ };
12
4
 
13
- if (is_undefined(window.is_typeof)) {
14
- window.is_typeof = function(type, suspect) {
15
- if (is_undefined(type)) {
16
- throw new SyntaxError("is_typeof(Type, suspect): type is undefined");
17
- }
18
- if (is_undefined(suspect)) {
19
- throw new SyntaxError("is_typeof(Type, suspect): suspect is undefined");
20
- }
5
+ is_undefined = function(suspect) {
6
+ return (suspect === undefined) ? true : false;
7
+ };
21
8
 
22
- return (suspect.constructor == type) ? true : false;
23
- };
9
+ is_typeof = function(type, suspect) {
10
+ if (is_undefined(type)) {
11
+ throw new SyntaxError("is_typeof(Type, suspect): type is undefined");
24
12
  }
25
-
26
- if (is_undefined(window.is_numeric)) {
27
- window.is_numeric = function(suspect) {
28
- if(is_typeof(Number, suspect)) {
29
- return true;
30
- }
31
- else {
32
- var pattern = /^-?\d+(?:\.\d*)?(?:e[+\-]?\d+)?$/i;
33
- return pattern.test(suspect);
34
- }
35
- };
13
+ if (is_undefined(suspect)) {
14
+ throw new SyntaxError("is_typeof(Type, suspect): suspect is undefined");
36
15
  }
37
16
 
38
- if (is_undefined(window.is_string)) {
39
- window.is_string = function(suspect) {
40
- return is_typeof(String, suspect);
41
- };
42
- }
17
+ return (suspect.constructor == type) ? true : false;
18
+ };
43
19
 
44
- if (is_undefined(window.is_array)) {
45
- window.is_array = function(suspect) {
46
- return is_typeof(Array, suspect);
47
- };
20
+ is_numeric = function(suspect) {
21
+ if(is_typeof(Number, suspect)) {
22
+ return true;
48
23
  }
49
-
50
- if (is_undefined(window.is_number)) {
51
- window.is_number = function(suspect) {
52
- return is_typeof(Number, suspect);
53
- };
24
+ else {
25
+ var pattern = /^-?\d+(?:\.\d*)?(?:e[+\-]?\d+)?$/i;
26
+ return pattern.test(suspect);
54
27
  }
28
+ };
55
29
 
56
- if (is_undefined(window.is_date)) {
57
- window.is_date = function(suspect) {
58
- return is_typeof(Date, suspect);
59
- };
60
- }
30
+ is_string = function(suspect) {
31
+ return is_typeof(String, suspect);
32
+ };
61
33
 
62
- if (is_undefined(window.is_bool)) {
63
- window.is_bool = function(suspect) {
64
- return is_typeof(Boolean, suspect);
65
- };
66
- }
34
+ is_array = function(suspect) {
35
+ return is_typeof(Array, suspect);
36
+ };
67
37
 
68
- if (is_undefined(window.is_regex)) {
69
- window.is_regex = function(suspect) {
70
- return is_typeof(RegExp, suspect);
71
- };
72
- }
38
+ is_number = function(suspect) {
39
+ return is_typeof(Number, suspect);
40
+ };
73
41
 
42
+ is_date = function(suspect) {
43
+ return is_typeof(Date, suspect);
44
+ };
74
45
 
75
- if (is_undefined(window.is_empty)) {
76
- window.is_empty = function(suspect) {
77
- return suspect.length === 0;
78
- };
79
- }
80
-
81
- if (is_undefined(window.is_not_empty)) {
82
- window.is_not_empty = function(suspect) {
83
- return suspect.length >= 1;
84
- };
85
- }
86
-
87
- if (is_undefined(Function.prototype['method'])) {
88
- Function.prototype.method = function(name, func) {
89
- if (is_undefined(name)) {
90
- throw new SyntaxError("Object.method(name, func): name is undefined");
91
- }
46
+ is_bool = function(suspect) {
47
+ return is_typeof(Boolean, suspect);
48
+ };
92
49
 
93
- if (is_undefined(func)) {
94
- throw new SyntaxError("Object.method(name, func): func is undefined");
95
- }
50
+ is_regex = function(suspect) {
51
+ return is_typeof(RegExp, suspect);
52
+ };
96
53
 
97
- if (is_undefined(this.prototype[name])) {
98
- this.prototype[name] = func;
99
- return this;
100
- }
101
- };
102
- }
103
-
104
- if (is_undefined(window.unless)) {
105
- window.unless = function(expression, callback, fallback) {
106
- if (is_undefined(expression)) {
107
- throw new SyntaxError("unless(expression, callback[, fallback]): expression is undefined");
108
- }
54
+ is_empty = function(suspect) {
55
+ return suspect.length === 0;
56
+ };
109
57
 
110
- if (is_undefined(callback)) {
111
- throw new SyntaxError("unless(expression, callback[, fallback]): callback is undefined");
112
- }
113
-
114
- if (!expression) {
115
- callback.call(this);
116
- }
117
- else if (is_defined(fallback)) {
118
- fallback.call(this);
119
- }
120
- };
121
- }
58
+ is_not_empty = function(suspect) {
59
+ return suspect.length >= 1;
60
+ };
@@ -1,35 +1,14 @@
1
- if (is_undefined(Function.prototype['method'])) {
2
- Function.prototype.method = function(name, func) {
3
- if (is_undefined(name)) {
4
- throw new SyntaxError("Object.method(name, func): name is undefined");
5
- }
6
-
7
- if (is_undefined(func)) {
8
- throw new SyntaxError("Object.method(name, func): func is undefined");
9
- }
10
-
11
- if (is_undefined(this.prototype[name])) {
12
- this.prototype[name] = func;
13
- return this;
14
- }
15
- };
1
+ unless = function(expression, callback, fallback) {
2
+ if (is_undefined(callback)) {
3
+ throw new SyntaxError("unless(expression, callback[, fallback]): callback is undefined");
16
4
  }
17
5
 
18
- if (is_undefined(window.unless)) {
19
- window.unless = function(expression, callback, fallback) {
20
- if (is_undefined(expression)) {
21
- throw new SyntaxError("unless(expression, callback[, fallback]): expression is undefined");
22
- }
23
-
24
- if (is_undefined(callback)) {
25
- throw new SyntaxError("unless(expression, callback[, fallback]): callback is undefined");
26
- }
27
-
28
- if (!expression) {
29
- callback.call(this);
30
- }
31
- else if (is_defined(fallback)) {
32
- fallback.call(this);
33
- }
34
- };
6
+ if (!!!expression) {
7
+ callback.call(this);
8
+ }
9
+ else {
10
+ if (is_defined(fallback)) {
11
+ fallback.call(this);
12
+ }
35
13
  }
14
+ };
@@ -1,120 +1,66 @@
1
- window.NinjsModule = function(name) {
2
- this.dom = new NinjsDOM(this);
3
- this.browser = browser;
4
- this.data = {};
5
- this.name = name;
6
- this.run_tests = false;
7
- this.tests = [];
8
- };
1
+ NinjsModule = function(name) {
2
+ this.dom = new NinjsDOM(this);
3
+ this.data = {};
4
+ this.name = name;
5
+ };
9
6
 
10
- NinjsModule.method('actions', function() {});
7
+ NinjsModule.prototype.actions = function() {};
11
8
 
12
- NinjsModule.method('run', function() {
13
- var mod = this;
14
- this.dom.ready(function() {
15
- mod.execute();
16
- });
17
- });
18
-
19
- NinjsModule.method('execute', function() {
20
- if (this.run_tests) {
21
- this._run_tests();
22
- }
23
-
24
- this.actions();
9
+ NinjsModule.prototype.run = function() {
10
+ var mod = this;
11
+ this.dom.ready(function() {
12
+ mod.execute();
25
13
  });
14
+ };
26
15
 
27
- NinjsModule.method('elements', function(elements) {
28
- if (is_undefined(elements)) {
29
- if (is_typeof(Object, elements)) {
30
- throw new SyntaxError("NinjsModule.elements(elements): elements is undefined");
31
- }
32
- else if (is_string(elements)) {
33
- throw new SyntaxError("NinjsModule.elements(name): name is undefined");
34
- }
35
- }
36
-
37
- if (is_string(elements)) {
38
- var name = elements;
39
- return this.dom.cached_selectors[name];
40
- }
41
- else {
42
- var dom = this.dom;
43
- dom.ready(function() {
44
- for(var key in elements) {
45
- if (elements.hasOwnProperty(key)) {
46
- dom.cached_selectors[key] = elements[key];
47
- }
48
- }
49
- });
50
- }
51
- });
16
+ NinjsModule.prototype.execute = function() {
17
+ this.actions();
18
+ };
52
19
 
53
- NinjsModule.method('set_data', function(key, value) {
54
- if (is_undefined(key)) {
55
- throw new SyntaxError('NinjsModule.set_data(key, value): key is undefined');
20
+ NinjsModule.prototype.elements = function(elements) {
21
+ if (is_undefined(elements)) {
22
+ if (is_typeof(Object, elements)) {
23
+ throw new SyntaxError("NinjsModule.elements(elements): elements is undefined");
56
24
  }
57
-
58
- if (is_typeof(String, key) && is_undefined(value)) {
59
- throw new SyntaxError('NinjsModule.set_data(key, value): value is undefined');
25
+ else if (is_string(elements)) {
26
+ throw new SyntaxError("NinjsModule.elements(name): name is undefined");
60
27
  }
28
+ }
61
29
 
62
- if (is_typeof(String, key)) {
63
- this.data[key] = value;
64
- }
65
- else if (is_typeof(Object, key)) {
66
- var data = key;
67
- for(var property in data) {
68
- this.data[property] = data[property];
30
+ if (is_string(elements)) {
31
+ var name = elements;
32
+ return this.dom.cached_selectors[name];
33
+ }
34
+ else {
35
+ var dom = this.dom;
36
+ dom.ready(function() {
37
+ for(var key in elements) {
38
+ if (elements.hasOwnProperty(key)) {
39
+ dom.cached_selectors[key] = elements[key];
40
+ }
69
41
  }
70
- }
71
-
72
- return this;
73
- });
42
+ });
43
+ }
44
+ };
74
45
 
75
- NinjsModule.method('add_test', function(test_file) {
76
- this.tests.push(test_file);
77
- });
46
+ NinjsModule.prototype.set_data = function(key, value) {
47
+ if (is_undefined(key)) {
48
+ throw new SyntaxError('NinjsModule.set_data(key, value): key is undefined');
49
+ }
78
50
 
79
- NinjsModule.method('_run_tests', function() {
80
- var test_template = [];
81
- test_template.push('<div class="test-results" title="Test Results">');
82
- test_template.push('<h1 id="qunit-header">' + this.name + ' module tests</h1>');
83
- test_template.push('<h2 id="qunit-banner"></h2>');
84
- test_template.push('<h2 id="qunit-userAgent"></h2>');
85
- test_template.push('<ol id="qunit-tests"></ol>');
86
- test_template.push('</div>');
51
+ if (is_typeof(String, key) && is_undefined(value)) {
52
+ throw new SyntaxError('NinjsModule.set_data(key, value): value is undefined');
53
+ }
87
54
 
88
- var qunit_dependencies = '<script src="' + _.tests_path +'qunit/qunit.js"></script>';
89
- $.getScript(_.tests_path + 'qunit/qunit.js');
90
- var qunit_styles = '<link rel="stylesheet" href="' + _.tests_path + 'qunit/qunit.css">';
91
- $('body').append(qunit_styles);
92
- $('body').append(test_template.join("\n"));
55
+ if (is_typeof(String, key)) {
56
+ this.data[key] = value;
57
+ }
58
+ else if (is_typeof(Object, key)) {
59
+ var data = key;
60
+ for(var property in data) {
61
+ this.data[property] = data[property];
62
+ }
63
+ }
93
64
 
94
- this.tests.each(function(test) {
95
- $.getScript(_.tests_path + test + '.test.js', function() {
96
- var test_results_dialog = $('.test-results');
97
- var height = $(window).height() - 200;
98
- var width = $(window).width() - 300;
99
- try {
100
- test_results_dialog.dialog({
101
- width: width,
102
- height: height,
103
- autoOpen: false,
104
- buttons: {
105
- "Thanks buddy": function() {
106
- test_results_dialog.dialog('close');
107
- }
108
- }
109
- });
110
- var failed = $('.failed');
111
- console.log(failed.html());
112
- test_results_dialog.dialog('open');
113
- }
114
- catch(error) {
115
- alert("Test harness requires jQueryUI");
116
- }
117
- });
118
- });
119
- });
120
-
65
+ return this;
66
+ };
@@ -1,7 +1,5 @@
1
- (function() {
2
- //= require "existence"
3
- //= require "extend"
4
- //= require "dom"
5
- //= require "module"
6
- //= require "application"
7
- })();
1
+ //= require "existence"
2
+ //= require "extend"
3
+ //= require "dom"
4
+ //= require "module"
5
+ //= require "application"
@@ -1,15 +1,5 @@
1
1
  var spec = new QSpec("Extensions");
2
2
 
3
- spec.should("add 'method' to the Function prototype", function() {
4
- ok(is_defined(Function.prototype.method), "Object.prototype.method is defined");
5
-
6
- String.method('test_method', function() {
7
- return 'This is a test';
8
- });
9
-
10
- equals('Hello'.test_method(), 'This is a test', 'can create a prototype method with method');
11
- });
12
-
13
3
  spec.should("test a condition with unless", function() {
14
4
  var is_true = false;
15
5
 
@@ -1,27 +1,26 @@
1
1
  <!DOCTYPE html>
2
2
  <head>
3
- <title>All Ninjs tests</title>
4
-
5
- <link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-git.css" type="text/css" media="screen"/>
6
-
7
-
8
- <script src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
9
- <script src="http://code.jquery.com/qunit/qunit-git.js"></script>
10
- <script src="qspec.js"></script>
3
+ <title>All Ninjs tests</title>
4
+
5
+ <link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-git.css" type="text/css" media="screen"/>
6
+
7
+ <script src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
8
+ <script src="http://code.jquery.com/qunit/qunit-git.js"></script>
9
+ <script src="qspec.js"></script>
11
10
 
12
- <script src="../lib/nin.js"></script>
13
- <script src="../lib/utilities.js"></script>
11
+ <script src="../lib/nin.js"></script>
12
+ <script src="../lib/utilities.js"></script>
14
13
 
15
- <script src="existence.test.js"></script>
16
- <script src="extension.test.js"></script>
17
- <script src="application.test.js"></script>
18
- <script src="module.test.js"></script>
19
- <script src="string.utilities.test.js"></script>
20
- <script src="array.utilities.test.js"></script>
14
+ <script src="existence.test.js"></script>
15
+ <script src="extension.test.js"></script>
16
+ <script src="application.test.js"></script>
17
+ <script src="module.test.js"></script>
18
+ <script src="string.utilities.test.js"></script>
19
+ <script src="array.utilities.test.js"></script>
21
20
  </head>
22
21
  <body>
23
- <h1 id="qunit-header">Ninjs tests</h1>
24
- <h2 id="qunit-banner"></h2>
25
- <h2 id="qunit-userAgent"></h2>
26
- <ol id="qunit-tests"></ol>
22
+ <h1 id="qunit-header">Ninjs tests</h1>
23
+ <h2 id="qunit-banner"></h2>
24
+ <h2 id="qunit-userAgent"></h2>
25
+ <ol id="qunit-tests"></ol>
27
26
  </body>