]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
allow an index argument
authorIsaac Cambron <isaac@isaaccambron.com>
Tue, 17 Sep 2013 01:52:25 +0000 (21:52 -0400)
committerIsaac Cambron <isaac@isaaccambron.com>
Tue, 17 Sep 2013 01:52:25 +0000 (21:52 -0400)
moment.js
test/moment/listers.js

index e35fff4473180d4a147a922f4b2c00d7ee1fcb20..15787075d6ff316c9a1522696e588078aaac0705 100644 (file)
--- a/moment.js
+++ b/moment.js
             return;
         }
 
-        moment[field] = function (format) {
-            var i, m, str,
-                method = moment.fn._lang[field] || Language.prototype[field],
-                results = [];
-
-            for (i = 0; i < count; i++) {
-                m = moment().utc().set(setter, i);
-                str = method.call(moment.fn._lang, m, format || '');
-                results.push(str);
+        moment[field] = function (format, index) {
+            var i,
+                method = moment.fn._lang[field],
+                results = [],
+                getter = function (i) {
+                    var m = moment().utc().set(setter, i);
+                    return method.call(moment.fn._lang, m, format || '');
+                };
+
+            index = (typeof format === 'number') ? format : index;
+
+            if (index) {
+                return getter(index);
+            }
+            else {
+                for (i = 0; i < count; i++) {
+                    results.push(getter(i));
+                }
+                return results;
             }
-
-            return results;
         };
     }
 
index daef437190c9e28d3242550f4fac6910c67c3844..4b6bf12bc320d926f47677781677fe24c054503d 100644 (file)
@@ -21,6 +21,16 @@ exports.listers = {
         test.done();
     },
 
+    "index" : function (test) {
+        test.expect(5);
+        test.equal(moment.months(2), "March");
+        test.equal(moment.monthsShort(2), "Mar");
+        test.equal(moment.weekdays(2), "Tuesday");
+        test.equal(moment.weekdaysShort(2), "Tue");
+        test.equal(moment.weekdaysMin(2), "Tu");
+        test.done();
+    },
+
     "localized" : function (test) {
         var months = "one_two_three_four_five_six_seven_eight_nine_ten_eleven_twelve".split('_'),
             monthsShort = "on_tw_th_fo_fi_si_se_ei_ni_te_el_tw".split("_"),
@@ -36,12 +46,19 @@ exports.listers = {
             weekdaysMin: weekdaysMin
         });
 
-        test.expect(5);
+        test.expect(10);
         test.deepEqual(moment.months(), months);
         test.deepEqual(moment.monthsShort(), monthsShort);
         test.deepEqual(moment.weekdays(), weekdays);
         test.deepEqual(moment.weekdaysShort(), weekdaysShort);
         test.deepEqual(moment.weekdaysMin(), weekdaysMin);
+
+        test.equal(moment.months(2), "three");
+        test.equal(moment.monthsShort(2), "th");
+        test.equal(moment.weekdays(2), "three");
+        test.equal(moment.weekdaysShort(2), "th");
+        test.equal(moment.weekdaysMin(2), "3");
+
         test.done();
     },
 
@@ -57,10 +74,14 @@ exports.listers = {
             }
         });
 
-        test.expect(3);
+        test.expect(5);
         test.deepEqual(moment.monthsShort(), monthsShort);
         test.deepEqual(moment.monthsShort('MMM'), monthsShort);
         test.deepEqual(moment.monthsShort('-MMM-'), monthsShortWeird);
+
+        test.deepEqual(moment.monthsShort('MMM', 2), 'three');
+        test.deepEqual(moment.monthsShort('-MMM-', 2), 'threesy');
+
         test.done();
     }
 };