From 468dd028e0bd0dad93f2edba8e14352f0706f4ed Mon Sep 17 00:00:00 2001 From: Isaac Cambron Date: Mon, 16 Sep 2013 21:52:25 -0400 Subject: [PATCH] allow an index argument --- moment.js | 30 +++++++++++++++++++----------- test/moment/listers.js | 25 +++++++++++++++++++++++-- 2 files changed, 42 insertions(+), 13 deletions(-) diff --git a/moment.js b/moment.js index e35fff447..15787075d 100644 --- a/moment.js +++ b/moment.js @@ -382,18 +382,26 @@ 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; }; } diff --git a/test/moment/listers.js b/test/moment/listers.js index daef43719..4b6bf12bc 100644 --- a/test/moment/listers.js +++ b/test/moment/listers.js @@ -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(); } }; -- 2.47.2