newjs 1.5.1 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (184) hide show
  1. data/History.txt +11 -0
  2. data/Manifest.txt +162 -14
  3. data/{README.txt → README.rdoc} +1 -1
  4. data/Rakefile +25 -3
  5. data/app_generators/newjs_iphone/templates/Html/test/assets/jsunittest.js +41 -13
  6. data/app_generators/newjs_iphone/templates/Html/test/assets/unittest.css +4 -0
  7. data/features/development.feature +13 -0
  8. data/features/imported_files_for_generators.feature +19 -0
  9. data/features/steps/common.rb +205 -0
  10. data/features/steps/env.rb +6 -0
  11. data/javascript_test_generators/functional_test/functional_test_generator.rb +9 -1
  12. data/javascript_test_generators/functional_test/templates/test/assets/jshoulda.js +186 -0
  13. data/javascript_test_generators/functional_test/templates/test/test.html.erb +15 -1
  14. data/javascript_test_generators/unit_test/templates/test/assets/jshoulda.js +186 -0
  15. data/javascript_test_generators/unit_test/templates/test/test.html.erb +18 -20
  16. data/javascript_test_generators/unit_test/templates/test/test_jshoulda.html.erb +45 -0
  17. data/javascript_test_generators/unit_test/unit_test_generator.rb +11 -3
  18. data/lib/newjs.rb +3 -2
  19. data/newjs_iphone_generators/page/USAGE +5 -0
  20. data/newjs_iphone_generators/page/page_generator.rb +36 -0
  21. data/newjs_iphone_generators/page/templates/src/name.css.erb +0 -0
  22. data/newjs_iphone_generators/page/templates/src/name.html.erb +13 -0
  23. data/newjs_iphone_generators/page/templates/src/name.js.erb +4 -0
  24. data/newjs_iphone_generators/page/templates/test/fixtures/name.js.erb +5 -0
  25. data/newjs_iphone_generators/page/templates/test/unit/name_test.html.erb +61 -0
  26. data/rack_generators/javascript_test/USAGE +5 -0
  27. data/rack_generators/javascript_test/javascript_test_generator.rb +88 -0
  28. data/rack_generators/javascript_test/templates/assets/jshoulda.js +186 -0
  29. data/rack_generators/javascript_test/templates/assets/jsunittest.js +1004 -0
  30. data/rack_generators/javascript_test/templates/assets/unittest.css +54 -0
  31. data/rack_generators/javascript_test/templates/ext/jquery.js +3408 -0
  32. data/{app_generators/newjs_iphone/templates/Html/test/assets → rack_generators/javascript_test/templates/ext}/prototype.js +56 -122
  33. data/rack_generators/javascript_test/templates/library.js.erb +3 -0
  34. data/rack_generators/javascript_test/templates/test.html.erb +59 -0
  35. data/rack_generators/javascript_test/templates/test_jshoulda.html.erb +48 -0
  36. data/rails_generators/javascript_test/javascript_test_generator.rb +15 -3
  37. data/rails_generators/javascript_test/templates/assets/jshoulda.js +186 -0
  38. data/rails_generators/javascript_test/templates/test_jshoulda.html.erb +48 -0
  39. data/script/console +10 -0
  40. data/script/destroy +1 -1
  41. data/tasks/vendor/update/jshoulda.rake +18 -0
  42. data/tasks/vendor/update/jsunittest.rake +18 -0
  43. data/test/test_functional_test_generator.rb +13 -0
  44. data/test/test_generator_helper.rb +10 -1
  45. data/test/test_page_generator.rb +50 -0
  46. data/test/test_rack_javascript_test.rb +166 -0
  47. data/test/{test_javascript_test_generator.rb → test_rails_javascript_test_generator.rb} +15 -1
  48. data/test/test_unit_test_generator.rb +13 -0
  49. data/vendor/jshoulda/History.txt +108 -0
  50. data/vendor/jshoulda/License.txt +20 -0
  51. data/vendor/jshoulda/README.mdown +34 -0
  52. data/vendor/jshoulda/Rakefile +120 -0
  53. data/vendor/jshoulda/config/javascript_test_autotest.yml.sample +15 -0
  54. data/vendor/jshoulda/dist/jshoulda-0.0.1.js +62 -0
  55. data/vendor/jshoulda/dist/jshoulda-0.0.2.js +72 -0
  56. data/vendor/jshoulda/dist/jshoulda-0.0.3.js +72 -0
  57. data/vendor/jshoulda/dist/jshoulda-1.0.1.js +74 -0
  58. data/vendor/jshoulda/dist/jshoulda-1.0.js +72 -0
  59. data/vendor/jshoulda/dist/jshoulda-1.1.js +110 -0
  60. data/vendor/jshoulda/dist/jshoulda-1.2.1.js +186 -0
  61. data/vendor/jshoulda/dist/jshoulda-1.2.js +141 -0
  62. data/vendor/jshoulda/dist/jshoulda-1.2.x.js +142 -0
  63. data/vendor/jshoulda/dist/jshoulda.js +186 -0
  64. data/vendor/jshoulda/jshoulda/test/basic_test.html +42 -0
  65. data/vendor/jshoulda/lib/jstest.rb +382 -0
  66. data/vendor/jshoulda/lib/protodoc.rb +36 -0
  67. data/vendor/jshoulda/script/destroy +14 -0
  68. data/vendor/jshoulda/script/generate +14 -0
  69. data/vendor/jshoulda/script/js_autotest +1 -0
  70. data/vendor/jshoulda/script/rstakeout +97 -0
  71. data/vendor/jshoulda/site/asset_defaults.yaml +6 -0
  72. data/vendor/jshoulda/site/config.yaml +3 -0
  73. data/vendor/jshoulda/site/content/content.html +27 -0
  74. data/vendor/jshoulda/site/content/content.yaml +4 -0
  75. data/vendor/jshoulda/site/content/tutorial/tutorial.html +268 -0
  76. data/vendor/jshoulda/site/content/tutorial/tutorial.yaml +4 -0
  77. data/vendor/jshoulda/site/css/blackboard.css +88 -0
  78. data/vendor/jshoulda/site/css/jshoulda_site.css +33 -0
  79. data/vendor/jshoulda/site/css/unittest.css +42 -0
  80. data/vendor/jshoulda/site/example/minimal.html +55 -0
  81. data/vendor/jshoulda/site/js/editable.js +42 -0
  82. data/vendor/jshoulda/site/layouts/default/default.html +29 -0
  83. data/vendor/jshoulda/site/layouts/default/default.yaml +4 -0
  84. data/vendor/jshoulda/site/layouts/home_test/home_test.js +18 -0
  85. data/vendor/jshoulda/site/layouts/home_test/home_test.yaml +4 -0
  86. data/vendor/jshoulda/site/lib/analytics.rb +12 -0
  87. data/vendor/jshoulda/site/lib/default.rb +2 -0
  88. data/vendor/jshoulda/site/lib/example.rb +10 -0
  89. data/vendor/jshoulda/site/lib/hash.rb +11 -0
  90. data/vendor/jshoulda/site/lib/highlight.rb +17 -0
  91. data/vendor/jshoulda/site/page_defaults.yaml +10 -0
  92. data/vendor/jshoulda/site/templates/default/default.html +1 -0
  93. data/vendor/jshoulda/site/templates/default/default.yaml +4 -0
  94. data/vendor/jshoulda/src/HEADER +8 -0
  95. data/vendor/jshoulda/src/jshoulda.js +177 -0
  96. data/vendor/jshoulda/src/jshoulda.js.erb +3 -0
  97. data/vendor/jshoulda/tasks/bundle.rake +12 -0
  98. data/vendor/jshoulda/tasks/demo.rake +9 -0
  99. data/vendor/jshoulda/tasks/deploy.rake +29 -0
  100. data/{tasks → vendor/jshoulda/tasks}/environment.rake +0 -0
  101. data/vendor/jshoulda/tasks/javascript_test_autotest_tasks.rake +45 -0
  102. data/vendor/jshoulda/tasks/site.rake +74 -0
  103. data/vendor/jshoulda/test/assets/jsunittest.js +1004 -0
  104. data/vendor/jshoulda/test/assets/prototype.js +4324 -0
  105. data/{app_generators/newjs_iphone/templates/Html/test/assets/unittest.js → vendor/jshoulda/test/assets/prototype_unittest.js} +15 -9
  106. data/vendor/jshoulda/test/assets/unittest.css +50 -0
  107. data/vendor/jshoulda/test/unit/factory_test.html +82 -0
  108. data/vendor/jshoulda/test/unit/jshoulda2_test.html +85 -0
  109. data/vendor/jshoulda/test/unit/jshoulda_prototype_test.html +87 -0
  110. data/vendor/jshoulda/test/unit/jshoulda_test.html +86 -0
  111. data/vendor/jshoulda/test/unit/merge_methods_test.html +77 -0
  112. data/vendor/jshoulda/test/unit/names_and_count.html +68 -0
  113. data/vendor/jshoulda/test/unit/no_config_test.html +57 -0
  114. data/vendor/jshoulda/test/unit/styles_test.html +77 -0
  115. data/vendor/jshoulda/test/unit/unify_runners.html +69 -0
  116. data/vendor/jshoulda/test/unit/unnamed_context_test.html +67 -0
  117. data/vendor/jsunittest/Capfile +4 -0
  118. data/vendor/jsunittest/History.txt +37 -0
  119. data/{License.txt → vendor/jsunittest/License.txt} +0 -0
  120. data/vendor/jsunittest/README.txt +21 -0
  121. data/vendor/jsunittest/Rakefile +118 -0
  122. data/vendor/jsunittest/config/deploy.rb +20 -0
  123. data/vendor/jsunittest/config/website.yml.sample +2 -0
  124. data/vendor/jsunittest/dist/jsunittest-0.7.2.js +1004 -0
  125. data/vendor/jsunittest/dist/jsunittest.js +1004 -0
  126. data/vendor/jsunittest/dist/unittest.css +54 -0
  127. data/vendor/jsunittest/lib/jstest.rb +390 -0
  128. data/vendor/jsunittest/lib/protodoc.rb +36 -0
  129. data/vendor/jsunittest/script/destroy +14 -0
  130. data/vendor/jsunittest/script/generate +14 -0
  131. data/vendor/jsunittest/script/js_autotest +1 -0
  132. data/vendor/jsunittest/script/rstakeout +97 -0
  133. data/vendor/jsunittest/script/txt2html +75 -0
  134. data/vendor/jsunittest/src/HEADER +8 -0
  135. data/vendor/jsunittest/src/ajax.js +121 -0
  136. data/vendor/jsunittest/src/assertions.js +244 -0
  137. data/vendor/jsunittest/src/common.js +191 -0
  138. data/vendor/jsunittest/src/jsunittest.js +1004 -0
  139. data/vendor/jsunittest/src/logger.js +86 -0
  140. data/vendor/jsunittest/src/message_template.js +17 -0
  141. data/vendor/jsunittest/src/orig/unittest.js +484 -0
  142. data/vendor/jsunittest/src/prototype/event.js +72 -0
  143. data/vendor/jsunittest/src/prototype/template.js +33 -0
  144. data/vendor/jsunittest/src/runner.js +120 -0
  145. data/vendor/jsunittest/src/test_case.js +106 -0
  146. data/vendor/jsunittest/tasks/deploy.rake +29 -0
  147. data/vendor/jsunittest/tasks/environment.rake +7 -0
  148. data/vendor/jsunittest/tasks/javascript_test_autotest_tasks.rake +44 -0
  149. data/vendor/jsunittest/tasks/tmbundle.rake +24 -0
  150. data/vendor/jsunittest/tasks/website.rake +53 -0
  151. data/vendor/jsunittest/test/assets/example_test.html +50 -0
  152. data/{app_generators/newjs/templates → vendor/jsunittest}/test/assets/prototype.js +0 -0
  153. data/vendor/jsunittest/test/assets/unittest.css +54 -0
  154. data/{app_generators/newjs/templates → vendor/jsunittest}/test/assets/unittest.js +0 -0
  155. data/vendor/jsunittest/test/functional/jsunittest_test.html +209 -0
  156. data/vendor/jsunittest/test/unit/assertions_test.html +202 -0
  157. data/vendor/jsunittest/test/unit/common_test.html +61 -0
  158. data/vendor/jsunittest/test/unit/logger_test.html +98 -0
  159. data/vendor/jsunittest/test/unit/message_template_test.html +44 -0
  160. data/vendor/jsunittest/test/unit/runner_test.html +77 -0
  161. data/vendor/jsunittest/test/unit/template_test.html +57 -0
  162. data/vendor/jsunittest/test/unit/test_case_test.html +97 -0
  163. data/vendor/jsunittest/website/dist/jsunittest-0.7.2.js +1004 -0
  164. data/vendor/jsunittest/website/dist/jsunittest-getting-started.tar.gz +0 -0
  165. data/vendor/jsunittest/website/dist/jsunittest-getting-started.zip +0 -0
  166. data/vendor/jsunittest/website/dist/jsunittest-getting-started/assets/jsunittest.js +1004 -0
  167. data/vendor/jsunittest/website/dist/jsunittest-getting-started/assets/unittest.css +54 -0
  168. data/vendor/jsunittest/website/dist/jsunittest-getting-started/example_test.html +50 -0
  169. data/vendor/jsunittest/website/dist/jsunittest.js +1004 -0
  170. data/vendor/jsunittest/website/images/logo_bundle.png +0 -0
  171. data/vendor/jsunittest/website/images/passing_prototypejs_unittest_tests.jpg +0 -0
  172. data/vendor/jsunittest/website/index.html +94 -0
  173. data/vendor/jsunittest/website/index.txt +80 -0
  174. data/vendor/jsunittest/website/javascripts/rounded_corners_lite.inc.js +285 -0
  175. data/vendor/jsunittest/website/stylesheets/screen.css +138 -0
  176. data/vendor/jsunittest/website/template.html.erb +46 -0
  177. data/vendor/jsunittest/website/tmbundle/JavaScript Unit Testing.tmbundle.tar.gz +0 -0
  178. metadata +189 -24
  179. data/config/hoe.rb +0 -75
  180. data/config/requirements.rb +0 -17
  181. data/lib/newjs/version.rb +0 -9
  182. data/tasks/deployment.rake +0 -34
  183. data/tasks/jsunittest/update.rake +0 -18
  184. data/tasks/website.rake +0 -17
@@ -1,4 +1,4 @@
1
- /* Prototype JavaScript framework, version 1.6.0.2
1
+ /* Prototype JavaScript framework, version 1.6.0.1
2
2
  * (c) 2005-2007 Sam Stephenson
3
3
  *
4
4
  * Prototype is freely distributable under the terms of an MIT-style license.
@@ -7,7 +7,7 @@
7
7
  *--------------------------------------------------------------------------*/
8
8
 
9
9
  var Prototype = {
10
- Version: '1.6.0.2',
10
+ Version: '1.6.0.1',
11
11
 
12
12
  Browser: {
13
13
  IE: !!(window.attachEvent && !window.opera),
@@ -110,7 +110,7 @@ Object.extend(Object, {
110
110
  try {
111
111
  if (Object.isUndefined(object)) return 'undefined';
112
112
  if (object === null) return 'null';
113
- return object.inspect ? object.inspect() : String(object);
113
+ return object.inspect ? object.inspect() : object.toString();
114
114
  } catch (e) {
115
115
  if (e instanceof RangeError) return '...';
116
116
  throw e;
@@ -171,8 +171,7 @@ Object.extend(Object, {
171
171
  },
172
172
 
173
173
  isArray: function(object) {
174
- return object != null && typeof object == "object" &&
175
- 'splice' in object && 'join' in object;
174
+ return object && object.constructor === Array;
176
175
  },
177
176
 
178
177
  isHash: function(object) {
@@ -579,7 +578,7 @@ var Template = Class.create({
579
578
  }
580
579
 
581
580
  return before + String.interpret(ctx);
582
- });
581
+ }.bind(this));
583
582
  }
584
583
  });
585
584
  Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
@@ -603,7 +602,6 @@ var Enumerable = {
603
602
  eachSlice: function(number, iterator, context) {
604
603
  iterator = iterator ? iterator.bind(context) : Prototype.K;
605
604
  var index = -number, slices = [], array = this.toArray();
606
- if (number < 1) return array;
607
605
  while ((index += number) < array.length)
608
606
  slices.push(array.slice(index, index+number));
609
607
  return slices.collect(iterator, context);
@@ -814,14 +812,14 @@ function $A(iterable) {
814
812
  }
815
813
 
816
814
  if (Prototype.Browser.WebKit) {
817
- $A = function(iterable) {
815
+ function $A(iterable) {
818
816
  if (!iterable) return [];
819
817
  if (!(Object.isFunction(iterable) && iterable == '[object NodeList]') &&
820
818
  iterable.toArray) return iterable.toArray();
821
819
  var length = iterable.length || 0, results = new Array(length);
822
820
  while (length--) results[length] = iterable[length];
823
821
  return results;
824
- };
822
+ }
825
823
  }
826
824
 
827
825
  Array.from = $A;
@@ -1300,7 +1298,7 @@ Ajax.Request = Class.create(Ajax.Base, {
1300
1298
 
1301
1299
  var contentType = response.getHeader('Content-type');
1302
1300
  if (this.options.evalJS == 'force'
1303
- || (this.options.evalJS && this.isSameOrigin() && contentType
1301
+ || (this.options.evalJS && contentType
1304
1302
  && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
1305
1303
  this.evalResponse();
1306
1304
  }
@@ -1318,15 +1316,6 @@ Ajax.Request = Class.create(Ajax.Base, {
1318
1316
  }
1319
1317
  },
1320
1318
 
1321
- isSameOrigin: function() {
1322
- var m = this.url.match(/^\s*https?:\/\/[^\/]*/);
1323
- return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({
1324
- protocol: location.protocol,
1325
- domain: document.domain,
1326
- port: location.port ? ':' + location.port : ''
1327
- }));
1328
- },
1329
-
1330
1319
  getHeader: function(name) {
1331
1320
  try {
1332
1321
  return this.transport.getResponseHeader(name) || null;
@@ -1402,8 +1391,7 @@ Ajax.Response = Class.create({
1402
1391
  if (!json) return null;
1403
1392
  json = decodeURIComponent(escape(json));
1404
1393
  try {
1405
- return json.evalJSON(this.request.options.sanitizeJSON ||
1406
- !this.request.isSameOrigin());
1394
+ return json.evalJSON(this.request.options.sanitizeJSON);
1407
1395
  } catch (e) {
1408
1396
  this.request.dispatchException(e);
1409
1397
  }
@@ -1416,8 +1404,7 @@ Ajax.Response = Class.create({
1416
1404
  this.responseText.blank())
1417
1405
  return null;
1418
1406
  try {
1419
- return this.responseText.evalJSON(options.sanitizeJSON ||
1420
- !this.request.isSameOrigin());
1407
+ return this.responseText.evalJSON(options.sanitizeJSON);
1421
1408
  } catch (e) {
1422
1409
  this.request.dispatchException(e);
1423
1410
  }
@@ -1559,7 +1546,6 @@ if (!Node.ELEMENT_NODE) {
1559
1546
  return Element.writeAttribute(cache[tagName].cloneNode(false), attributes);
1560
1547
  };
1561
1548
  Object.extend(this.Element, element || { });
1562
- if (element) this.Element.prototype = element.prototype;
1563
1549
  }).call(window);
1564
1550
 
1565
1551
  Element.cache = { };
@@ -1624,7 +1610,7 @@ Element.Methods = {
1624
1610
 
1625
1611
  var content, insert, tagName, childNodes;
1626
1612
 
1627
- for (var position in insertions) {
1613
+ for (position in insertions) {
1628
1614
  content = insertions[position];
1629
1615
  position = position.toLowerCase();
1630
1616
  insert = Element._insertionTranslations[position];
@@ -1877,8 +1863,7 @@ Element.Methods = {
1877
1863
  do { ancestor = ancestor.parentNode; }
1878
1864
  while (!(nextAncestor = ancestor.nextSibling) && ancestor.parentNode);
1879
1865
  }
1880
- if (nextAncestor && nextAncestor.sourceIndex)
1881
- return (e > a && e < nextAncestor.sourceIndex);
1866
+ if (nextAncestor) return (e > a && e < nextAncestor.sourceIndex);
1882
1867
  }
1883
1868
 
1884
1869
  while (element = element.parentNode)
@@ -2020,9 +2005,9 @@ Element.Methods = {
2020
2005
  valueL += element.offsetLeft || 0;
2021
2006
  element = element.offsetParent;
2022
2007
  if (element) {
2023
- if (element.tagName.toUpperCase() == 'BODY') break;
2008
+ if (element.tagName == 'BODY') break;
2024
2009
  var p = Element.getStyle(element, 'position');
2025
- if (p !== 'static') break;
2010
+ if (p == 'relative' || p == 'absolute') break;
2026
2011
  }
2027
2012
  } while (element);
2028
2013
  return Element._returnOffset(valueL, valueT);
@@ -2030,7 +2015,7 @@ Element.Methods = {
2030
2015
 
2031
2016
  absolutize: function(element) {
2032
2017
  element = $(element);
2033
- if (element.getStyle('position') == 'absolute') return element;
2018
+ if (element.getStyle('position') == 'absolute') return;
2034
2019
  // Position.prepare(); // To be done manually by Scripty when it needs it.
2035
2020
 
2036
2021
  var offsets = element.positionedOffset();
@@ -2054,7 +2039,7 @@ Element.Methods = {
2054
2039
 
2055
2040
  relativize: function(element) {
2056
2041
  element = $(element);
2057
- if (element.getStyle('position') == 'relative') return element;
2042
+ if (element.getStyle('position') == 'relative') return;
2058
2043
  // Position.prepare(); // To be done manually by Scripty when it needs it.
2059
2044
 
2060
2045
  element.style.position = 'relative';
@@ -2105,7 +2090,7 @@ Element.Methods = {
2105
2090
 
2106
2091
  element = forElement;
2107
2092
  do {
2108
- if (!Prototype.Browser.Opera || element.tagName.toUpperCase() == 'BODY') {
2093
+ if (!Prototype.Browser.Opera || element.tagName == 'BODY') {
2109
2094
  valueT -= element.scrollTop || 0;
2110
2095
  valueL -= element.scrollLeft || 0;
2111
2096
  }
@@ -2215,36 +2200,12 @@ if (Prototype.Browser.Opera) {
2215
2200
  }
2216
2201
 
2217
2202
  else if (Prototype.Browser.IE) {
2218
- // IE doesn't report offsets correctly for static elements, so we change them
2219
- // to "relative" to get the values, then change them back.
2220
- Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap(
2221
- function(proceed, element) {
2222
- element = $(element);
2223
- // IE throws an error if element is not in document
2224
- try { element.offsetParent }
2225
- catch(e) { return $(document.body) }
2226
- var position = element.getStyle('position');
2227
- if (position !== 'static') return proceed(element);
2228
- element.setStyle({ position: 'relative' });
2229
- var value = proceed(element);
2230
- element.setStyle({ position: position });
2231
- return value;
2232
- }
2233
- );
2234
-
2235
- $w('positionedOffset viewportOffset').each(function(method) {
2203
+ $w('positionedOffset getOffsetParent viewportOffset').each(function(method) {
2236
2204
  Element.Methods[method] = Element.Methods[method].wrap(
2237
2205
  function(proceed, element) {
2238
2206
  element = $(element);
2239
- try { element.offsetParent }
2240
- catch(e) { return Element._returnOffset(0,0) }
2241
2207
  var position = element.getStyle('position');
2242
- if (position !== 'static') return proceed(element);
2243
- // Trigger hasLayout on the offset parent so that IE6 reports
2244
- // accurate offsetTop and offsetLeft values for position: fixed.
2245
- var offsetParent = element.getOffsetParent();
2246
- if (offsetParent && offsetParent.getStyle('position') === 'fixed')
2247
- offsetParent.setStyle({ zoom: 1 });
2208
+ if (position != 'static') return proceed(element);
2248
2209
  element.setStyle({ position: 'relative' });
2249
2210
  var value = proceed(element);
2250
2211
  element.setStyle({ position: position });
@@ -2253,14 +2214,6 @@ else if (Prototype.Browser.IE) {
2253
2214
  );
2254
2215
  });
2255
2216
 
2256
- Element.Methods.cumulativeOffset = Element.Methods.cumulativeOffset.wrap(
2257
- function(proceed, element) {
2258
- try { element.offsetParent }
2259
- catch(e) { return Element._returnOffset(0,0) }
2260
- return proceed(element);
2261
- }
2262
- );
2263
-
2264
2217
  Element.Methods.getStyle = function(element, style) {
2265
2218
  element = $(element);
2266
2219
  style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize();
@@ -2334,10 +2287,7 @@ else if (Prototype.Browser.IE) {
2334
2287
  };
2335
2288
 
2336
2289
  Element._attributeTranslations.write = {
2337
- names: Object.extend({
2338
- cellpadding: 'cellPadding',
2339
- cellspacing: 'cellSpacing'
2340
- }, Element._attributeTranslations.read.names),
2290
+ names: Object.clone(Element._attributeTranslations.read.names),
2341
2291
  values: {
2342
2292
  checked: function(element, value) {
2343
2293
  element.checked = !!value;
@@ -2405,7 +2355,7 @@ else if (Prototype.Browser.WebKit) {
2405
2355
  (value < 0.00001) ? 0 : value;
2406
2356
 
2407
2357
  if (value == 1)
2408
- if(element.tagName.toUpperCase() == 'IMG' && element.width) {
2358
+ if(element.tagName == 'IMG' && element.width) {
2409
2359
  element.width++; element.width--;
2410
2360
  } else try {
2411
2361
  var n = document.createTextNode(' ');
@@ -2562,7 +2512,7 @@ Element.extend = (function() {
2562
2512
  element.nodeType != 1 || element == window) return element;
2563
2513
 
2564
2514
  var methods = Object.clone(Methods),
2565
- tagName = element.tagName.toUpperCase(), property, value;
2515
+ tagName = element.tagName, property, value;
2566
2516
 
2567
2517
  // extend methods for specific tags
2568
2518
  if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);
@@ -2951,13 +2901,13 @@ Object.extend(Selector, {
2951
2901
  },
2952
2902
 
2953
2903
  criteria: {
2954
- tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;',
2955
- className: 'n = h.className(n, r, "#{1}", c); c = false;',
2956
- id: 'n = h.id(n, r, "#{1}", c); c = false;',
2957
- attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;',
2904
+ tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;',
2905
+ className: 'n = h.className(n, r, "#{1}", c); c = false;',
2906
+ id: 'n = h.id(n, r, "#{1}", c); c = false;',
2907
+ attrPresence: 'n = h.attrPresence(n, r, "#{1}"); c = false;',
2958
2908
  attr: function(m) {
2959
2909
  m[3] = (m[5] || m[6]);
2960
- return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m);
2910
+ return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}"); c = false;').evaluate(m);
2961
2911
  },
2962
2912
  pseudo: function(m) {
2963
2913
  if (m[6]) m[6] = m[6].replace(/"/g, '\\"');
@@ -2983,7 +2933,7 @@ Object.extend(Selector, {
2983
2933
  className: /^\.([\w\-\*]+)(\b|$)/,
2984
2934
  pseudo:
2985
2935
  /^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/,
2986
- attrPresence: /^\[((?:[\w]+:)?[\w]+)\]/,
2936
+ attrPresence: /^\[([\w]+)\]/,
2987
2937
  attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/
2988
2938
  },
2989
2939
 
@@ -3007,7 +2957,7 @@ Object.extend(Selector, {
3007
2957
 
3008
2958
  attr: function(element, matches) {
3009
2959
  var nodeValue = Element.readAttribute(element, matches[1]);
3010
- return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]);
2960
+ return Selector.operators[matches[2]](nodeValue, matches[3]);
3011
2961
  }
3012
2962
  },
3013
2963
 
@@ -3022,15 +2972,14 @@ Object.extend(Selector, {
3022
2972
 
3023
2973
  // marks an array of nodes for counting
3024
2974
  mark: function(nodes) {
3025
- var _true = Prototype.emptyFunction;
3026
2975
  for (var i = 0, node; node = nodes[i]; i++)
3027
- node._countedByPrototype = _true;
2976
+ node._counted = true;
3028
2977
  return nodes;
3029
2978
  },
3030
2979
 
3031
2980
  unmark: function(nodes) {
3032
2981
  for (var i = 0, node; node = nodes[i]; i++)
3033
- node._countedByPrototype = undefined;
2982
+ node._counted = undefined;
3034
2983
  return nodes;
3035
2984
  },
3036
2985
 
@@ -3038,15 +2987,15 @@ Object.extend(Selector, {
3038
2987
  // "ofType" flag indicates whether we're indexing for nth-of-type
3039
2988
  // rather than nth-child
3040
2989
  index: function(parentNode, reverse, ofType) {
3041
- parentNode._countedByPrototype = Prototype.emptyFunction;
2990
+ parentNode._counted = true;
3042
2991
  if (reverse) {
3043
2992
  for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) {
3044
2993
  var node = nodes[i];
3045
- if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
2994
+ if (node.nodeType == 1 && (!ofType || node._counted)) node.nodeIndex = j++;
3046
2995
  }
3047
2996
  } else {
3048
2997
  for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++)
3049
- if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
2998
+ if (node.nodeType == 1 && (!ofType || node._counted)) node.nodeIndex = j++;
3050
2999
  }
3051
3000
  },
3052
3001
 
@@ -3055,8 +3004,8 @@ Object.extend(Selector, {
3055
3004
  if (nodes.length == 0) return nodes;
3056
3005
  var results = [], n;
3057
3006
  for (var i = 0, l = nodes.length; i < l; i++)
3058
- if (!(n = nodes[i])._countedByPrototype) {
3059
- n._countedByPrototype = Prototype.emptyFunction;
3007
+ if (!(n = nodes[i])._counted) {
3008
+ n._counted = true;
3060
3009
  results.push(Element.extend(n));
3061
3010
  }
3062
3011
  return Selector.handlers.unmark(results);
@@ -3168,18 +3117,16 @@ Object.extend(Selector, {
3168
3117
  return results;
3169
3118
  },
3170
3119
 
3171
- attrPresence: function(nodes, root, attr, combinator) {
3120
+ attrPresence: function(nodes, root, attr) {
3172
3121
  if (!nodes) nodes = root.getElementsByTagName("*");
3173
- if (nodes && combinator) nodes = this[combinator](nodes);
3174
3122
  var results = [];
3175
3123
  for (var i = 0, node; node = nodes[i]; i++)
3176
3124
  if (Element.hasAttribute(node, attr)) results.push(node);
3177
3125
  return results;
3178
3126
  },
3179
3127
 
3180
- attr: function(nodes, root, attr, value, operator, combinator) {
3128
+ attr: function(nodes, root, attr, value, operator) {
3181
3129
  if (!nodes) nodes = root.getElementsByTagName("*");
3182
- if (nodes && combinator) nodes = this[combinator](nodes);
3183
3130
  var handler = Selector.operators[operator], results = [];
3184
3131
  for (var i = 0, node; node = nodes[i]; i++) {
3185
3132
  var nodeValue = Element.readAttribute(node, attr);
@@ -3258,7 +3205,7 @@ Object.extend(Selector, {
3258
3205
  var h = Selector.handlers, results = [], indexed = [], m;
3259
3206
  h.mark(nodes);
3260
3207
  for (var i = 0, node; node = nodes[i]; i++) {
3261
- if (!node.parentNode._countedByPrototype) {
3208
+ if (!node.parentNode._counted) {
3262
3209
  h.index(node.parentNode, reverse, ofType);
3263
3210
  indexed.push(node.parentNode);
3264
3211
  }
@@ -3296,7 +3243,7 @@ Object.extend(Selector, {
3296
3243
  var exclusions = new Selector(selector).findElements(root);
3297
3244
  h.mark(exclusions);
3298
3245
  for (var i = 0, results = [], node; node = nodes[i]; i++)
3299
- if (!node._countedByPrototype) results.push(node);
3246
+ if (!node._counted) results.push(node);
3300
3247
  h.unmark(exclusions);
3301
3248
  return results;
3302
3249
  },
@@ -3330,19 +3277,11 @@ Object.extend(Selector, {
3330
3277
  '|=': function(nv, v) { return ('-' + nv.toUpperCase() + '-').include('-' + v.toUpperCase() + '-'); }
3331
3278
  },
3332
3279
 
3333
- split: function(expression) {
3334
- var expressions = [];
3335
- expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
3336
- expressions.push(m[1].strip());
3337
- });
3338
- return expressions;
3339
- },
3340
-
3341
3280
  matchElements: function(elements, expression) {
3342
3281
  var matches = $$(expression), h = Selector.handlers;
3343
3282
  h.mark(matches);
3344
3283
  for (var i = 0, results = [], element; element = elements[i]; i++)
3345
- if (element._countedByPrototype) results.push(element);
3284
+ if (element._counted) results.push(element);
3346
3285
  h.unmark(matches);
3347
3286
  return results;
3348
3287
  },
@@ -3355,7 +3294,11 @@ Object.extend(Selector, {
3355
3294
  },
3356
3295
 
3357
3296
  findChildElements: function(element, expressions) {
3358
- expressions = Selector.split(expressions.join(','));
3297
+ var exprs = expressions.join(',');
3298
+ expressions = [];
3299
+ exprs.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
3300
+ expressions.push(m[1].strip());
3301
+ });
3359
3302
  var results = [], h = Selector.handlers;
3360
3303
  for (var i = 0, l = expressions.length, selector; i < l; i++) {
3361
3304
  selector = new Selector(expressions[i].strip());
@@ -3366,22 +3309,13 @@ Object.extend(Selector, {
3366
3309
  });
3367
3310
 
3368
3311
  if (Prototype.Browser.IE) {
3369
- Object.extend(Selector.handlers, {
3370
- // IE returns comment nodes on getElementsByTagName("*").
3371
- // Filter them out.
3372
- concat: function(a, b) {
3373
- for (var i = 0, node; node = b[i]; i++)
3374
- if (node.tagName !== "!") a.push(node);
3375
- return a;
3376
- },
3377
-
3378
- // IE improperly serializes _countedByPrototype in (inner|outer)HTML.
3379
- unmark: function(nodes) {
3380
- for (var i = 0, node; node = nodes[i]; i++)
3381
- node.removeAttribute('_countedByPrototype');
3382
- return nodes;
3383
- }
3384
- });
3312
+ // IE returns comment nodes on getElementsByTagName("*").
3313
+ // Filter them out.
3314
+ Selector.handlers.concat = function(a, b) {
3315
+ for (var i = 0, node; node = b[i]; i++)
3316
+ if (node.tagName !== "!") a.push(node);
3317
+ return a;
3318
+ };
3385
3319
  }
3386
3320
 
3387
3321
  function $$() {
@@ -3859,9 +3793,9 @@ Object.extend(Event, (function() {
3859
3793
  var cache = Event.cache;
3860
3794
 
3861
3795
  function getEventID(element) {
3862
- if (element._prototypeEventID) return element._prototypeEventID[0];
3796
+ if (element._eventID) return element._eventID;
3863
3797
  arguments.callee.id = arguments.callee.id || 1;
3864
- return element._prototypeEventID = [++arguments.callee.id];
3798
+ return element._eventID = ++arguments.callee.id;
3865
3799
  }
3866
3800
 
3867
3801
  function getDOMEventName(eventName) {
@@ -4233,4 +4167,4 @@ Object.extend(Element.ClassNames.prototype, Enumerable);
4233
4167
 
4234
4168
  /*--------------------------------------------------------------------------*/
4235
4169
 
4236
- Element.addMethods();
4170
+ Element.addMethods();
@@ -0,0 +1,3 @@
1
+ var <%= module_name %> = function() {
2
+
3
+ }