<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>.jsdoc_config</filename>
    </added>
    <added>
      <filename>doc/Array.html</filename>
    </added>
    <added>
      <filename>doc/allclasses-frame.html</filename>
    </added>
    <added>
      <filename>doc/allclasses-noframe.html</filename>
    </added>
    <added>
      <filename>doc/help-doc.html</filename>
    </added>
    <added>
      <filename>doc/index-all.html</filename>
    </added>
    <added>
      <filename>doc/index.html</filename>
    </added>
    <added>
      <filename>doc/overview-summary-array.js.html</filename>
    </added>
    <added>
      <filename>doc/overview-summary.html</filename>
    </added>
    <added>
      <filename>doc/overview-tree.html</filename>
    </added>
    <added>
      <filename>doc/stylesheet.css</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,2 +1,2 @@
-Array.prototype.collect=function(){var result=[];var block=arguments[arguments.length-1];this.each(function(item){result[result.length]=block(item);});return result;};Array.prototype.each=function(){var block=arguments[arguments.length-1];return this.eachWithIndex(block);};Array.prototype.eachWithIndex=function(){var block=arguments[arguments.length-1];for(var i=0;i&lt;this.length;i+=1){block(this[i],i);}
+Array.prototype.collect=function(block){var result=[];this.each(function(item){result[result.length]=block(item);});return result;};Array.prototype.each=function(block){return this.eachWithIndex(block);};Array.prototype.eachWithIndex=function(block){for(var i=0;i&lt;this.length;i+=1){block(this[i],i);}
 return this;};
\ No newline at end of file</diff>
      <filename>array-min.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,19 +1,84 @@
-Array.prototype.collect = function() {
+/**
+ * @fileoverview
+ * Defines functions that extend the Array prototype such that it behaves like
+ * Ruby's Array class.
+ * 
+ * @author Nils Jonsson &lt;nils@alumni.rice.edu&gt;
+ */
+
+/**
+ * Invokes block once for each element in the array, passing that element as an
+ * argument.
+ * 
+ * &lt;pre&gt;
+ * var array = ['foo', 'bar', 'baz'];
+ * var result = array.collect(function(item) {
+ *   return item + '!';
+ * });
+ * result // =&gt; ['foo!', 'bar!', 'baz!']
+ * array  // =&gt; ['foo', 'bar', 'baz']
+ * &lt;/pre&gt;
+ * 
+ * @param {Function} block The function to execute. Should have one parameter
+ * @returns An array containing the values returned by block
+ */
+Array.prototype.collect = function(block) {
   var result = [];
-  var block = arguments[arguments.length - 1];
   this.each(function(item) {
     result[result.length] = block(item);
   });
   return result;
 };
 
-Array.prototype.each = function() {
-  var block = arguments[arguments.length - 1];
+/**
+ * Invokes block once for each element in the array, passing that element as an
+ * argument.
+ * 
+ * &lt;pre&gt;
+ * var array = ['foo', 'bar', 'baz'];
+ * array.each(function(item) {
+ *   alert(item);
+ * });
+ * &lt;/pre&gt;
+ * 
+ * opens three alert boxes:
+ * 
+ * &lt;ul&gt;
+ *   &lt;li&gt;foo&lt;/li&gt;
+ *   &lt;li&gt;bar&lt;/li&gt;
+ *   &lt;li&gt;baz&lt;/li&gt;
+ * &lt;/ul&gt;
+ * 
+ * @param {Function} block The function to execute. Should have one parameter
+ * @returns The array
+ */
+Array.prototype.each = function(block) {
   return this.eachWithIndex(block);
 };
 
-Array.prototype.eachWithIndex = function() {
-  var block = arguments[arguments.length - 1];
+/**
+ * Invokes block once for each element in the array, passing that element and
+ * its index as arguments.
+ * 
+ * &lt;pre&gt;
+ * var array = ['foo', 'bar', 'baz'];
+ * array.eachWithIndex(function(item, index) {
+ *   alert(index + ': ' + item);
+ * });
+ * &lt;/pre&gt;
+ * 
+ * opens three alert boxes:
+ * 
+ * &lt;ul&gt;
+ *   &lt;li&gt;0: foo&lt;/li&gt;
+ *   &lt;li&gt;1: bar&lt;/li&gt;
+ *   &lt;li&gt;2: baz&lt;/li&gt;
+ * &lt;/ul&gt;
+ * 
+ * @param {Function} block The function to execute. Should have two parameters
+ * @returns The array
+ */
+Array.prototype.eachWithIndex = function(block) {
   for (var i = 0; i &lt; this.length; i += 1) {
     block(this[i], i);
   }</diff>
      <filename>src/lib/array.js</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>630631702c5f38472436f4447637e8b08b60ba27</id>
    </parent>
  </parents>
  <author>
    <name>Nils Jonsson</name>
    <email>nils@alumni.rice.edu</email>
  </author>
  <url>http://github.com/njonsson/rouge/commit/279f6a3026fa76e7a645ba8e27bdbc51cee3d999</url>
  <id>279f6a3026fa76e7a645ba8e27bdbc51cee3d999</id>
  <committed-date>2009-02-04T21:07:06-08:00</committed-date>
  <authored-date>2009-02-04T21:07:06-08:00</authored-date>
  <message>Add JSDoc documentation and switch to explicit block arguments for clarity</message>
  <tree>9323673b6e90cdf2a07418d4a9a38d49637b32c1</tree>
  <committer>
    <name>Nils Jonsson</name>
    <email>nils@alumni.rice.edu</email>
  </committer>
</commit>
