momentjs-rails 2.2.1 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/news.md +3 -0
  4. data/test/dummy/log/test.log +147 -14
  5. data/test/dummy/tmp/cache/assets/D1C/680/sprockets%2F16ed4d5afdb2919596e6f8790e2116c2 +0 -0
  6. data/test/dummy/tmp/cache/assets/D35/CA0/sprockets%2F493e64bce2d302801dc01cf7cd096a58 +0 -0
  7. data/test/dummy/tmp/cache/assets/D3F/5F0/sprockets%2F4a6c53eae7c6e41a69a191578bbb6417 +0 -0
  8. data/test/dummy/tmp/cache/assets/D58/BD0/sprockets%2F4de9ddc9b725c715a54c98697b2528fe +0 -0
  9. data/test/dummy/tmp/cache/assets/D75/510/sprockets%2Fe690787ac522f47a6be024bfcc1767ee +0 -0
  10. data/test/dummy/tmp/cache/assets/E10/250/sprockets%2Fe4badb9ddfda484eb9671bf88567be61 +0 -0
  11. data/test/integration/navigation_test.rb +1 -1
  12. data/vendor/assets/javascripts/moment.js +717 -178
  13. data/vendor/assets/javascripts/moment/ar-ma.js +2 -2
  14. data/vendor/assets/javascripts/moment/ar.js +2 -2
  15. data/vendor/assets/javascripts/moment/bg.js +3 -3
  16. data/vendor/assets/javascripts/moment/br.js +2 -2
  17. data/vendor/assets/javascripts/moment/bs.js +139 -0
  18. data/vendor/assets/javascripts/moment/ca.js +2 -2
  19. data/vendor/assets/javascripts/moment/cs.js +2 -2
  20. data/vendor/assets/javascripts/moment/cv.js +2 -2
  21. data/vendor/assets/javascripts/moment/cy.js +77 -0
  22. data/vendor/assets/javascripts/moment/da.js +2 -2
  23. data/vendor/assets/javascripts/moment/de.js +2 -2
  24. data/vendor/assets/javascripts/moment/el.js +2 -2
  25. data/vendor/assets/javascripts/moment/en-au.js +62 -0
  26. data/vendor/assets/javascripts/moment/en-ca.js +2 -2
  27. data/vendor/assets/javascripts/moment/en-gb.js +2 -2
  28. data/vendor/assets/javascripts/moment/eo.js +2 -2
  29. data/vendor/assets/javascripts/moment/es.js +2 -2
  30. data/vendor/assets/javascripts/moment/et.js +2 -2
  31. data/vendor/assets/javascripts/moment/eu.js +2 -2
  32. data/vendor/assets/javascripts/moment/fa.js +2 -2
  33. data/vendor/assets/javascripts/moment/fi.js +2 -2
  34. data/vendor/assets/javascripts/moment/fo.js +56 -0
  35. data/vendor/assets/javascripts/moment/fr-ca.js +2 -2
  36. data/vendor/assets/javascripts/moment/fr.js +2 -2
  37. data/vendor/assets/javascripts/moment/gl.js +2 -2
  38. data/vendor/assets/javascripts/moment/he.js +2 -2
  39. data/vendor/assets/javascripts/moment/hi.js +2 -2
  40. data/vendor/assets/javascripts/moment/hr.js +2 -2
  41. data/vendor/assets/javascripts/moment/hu.js +4 -3
  42. data/vendor/assets/javascripts/moment/id.js +2 -2
  43. data/vendor/assets/javascripts/moment/is.js +2 -2
  44. data/vendor/assets/javascripts/moment/it.js +2 -2
  45. data/vendor/assets/javascripts/moment/ja.js +2 -2
  46. data/vendor/assets/javascripts/moment/ka.js +2 -2
  47. data/vendor/assets/javascripts/moment/ko.js +2 -2
  48. data/vendor/assets/javascripts/moment/lt.js +118 -0
  49. data/vendor/assets/javascripts/moment/lv.js +2 -2
  50. data/vendor/assets/javascripts/moment/ml.js +2 -2
  51. data/vendor/assets/javascripts/moment/mr.js +2 -2
  52. data/vendor/assets/javascripts/moment/ms-my.js +2 -2
  53. data/vendor/assets/javascripts/moment/nb.js +2 -2
  54. data/vendor/assets/javascripts/moment/ne.js +2 -2
  55. data/vendor/assets/javascripts/moment/nl.js +5 -5
  56. data/vendor/assets/javascripts/moment/nn.js +2 -2
  57. data/vendor/assets/javascripts/moment/pl.js +2 -2
  58. data/vendor/assets/javascripts/moment/pt-br.js +2 -2
  59. data/vendor/assets/javascripts/moment/pt.js +2 -2
  60. data/vendor/assets/javascripts/moment/ro.js +2 -2
  61. data/vendor/assets/javascripts/moment/ru.js +20 -5
  62. data/vendor/assets/javascripts/moment/sk.js +2 -2
  63. data/vendor/assets/javascripts/moment/sl.js +2 -2
  64. data/vendor/assets/javascripts/moment/sq.js +2 -2
  65. data/vendor/assets/javascripts/moment/sv.js +2 -2
  66. data/vendor/assets/javascripts/moment/th.js +2 -2
  67. data/vendor/assets/javascripts/moment/tl-ph.js +58 -0
  68. data/vendor/assets/javascripts/moment/tr.js +2 -2
  69. data/vendor/assets/javascripts/moment/tzm-la.js +2 -2
  70. data/vendor/assets/javascripts/moment/tzm.js +2 -2
  71. data/vendor/assets/javascripts/moment/uk.js +18 -3
  72. data/vendor/assets/javascripts/moment/uz.js +55 -0
  73. data/vendor/assets/javascripts/moment/vn.js +62 -0
  74. data/vendor/assets/javascripts/moment/zh-cn.js +43 -18
  75. data/vendor/assets/javascripts/moment/zh-tw.js +7 -6
  76. metadata +10 -2
@@ -6,12 +6,12 @@
6
6
  if (typeof define === 'function' && define.amd) {
7
7
  define(['moment'], factory); // AMD
8
8
  } else if (typeof exports === 'object') {
9
- factory(require('../moment')); // Node
9
+ module.exports = factory(require('../moment')); // Node
10
10
  } else {
11
11
  factory(window.moment); // Browser global
12
12
  }
13
13
  }(function (moment) {
14
- moment.lang('tzm', {
14
+ return moment.lang('tzm', {
15
15
  months : "ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),
16
16
  monthsShort : "ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),
17
17
  weekdays : "ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),
@@ -7,7 +7,7 @@
7
7
  if (typeof define === 'function' && define.amd) {
8
8
  define(['moment'], factory); // AMD
9
9
  } else if (typeof exports === 'object') {
10
- factory(require('../moment')); // Node
10
+ module.exports = factory(require('../moment')); // Node
11
11
  } else {
12
12
  factory(window.moment); // Browser global
13
13
  }
@@ -71,11 +71,11 @@
71
71
  };
72
72
  }
73
73
 
74
- moment.lang('uk', {
74
+ return moment.lang('uk', {
75
75
  months : monthsCaseReplace,
76
76
  monthsShort : "січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),
77
77
  weekdays : weekdaysCaseReplace,
78
- weekdaysShort : "нед_пон_вів_сер_чет_п’ят_суб".split("_"),
78
+ weekdaysShort : "нд_пн_вт_ср_чт_пт_сб".split("_"),
79
79
  weekdaysMin : "нд_пн_вт_ср_чт_пт_сб".split("_"),
80
80
  longDateFormat : {
81
81
  LT : "HH:mm",
@@ -119,6 +119,21 @@
119
119
  y : "рік",
120
120
  yy : relativeTimeWithPlural
121
121
  },
122
+
123
+ // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
124
+
125
+ meridiem : function (hour, minute, isLower) {
126
+ if (hour < 4) {
127
+ return "ночі";
128
+ } else if (hour < 12) {
129
+ return "ранку";
130
+ } else if (hour < 17) {
131
+ return "дня";
132
+ } else {
133
+ return "вечора";
134
+ }
135
+ },
136
+
122
137
  ordinal: function (number, period) {
123
138
  switch (period) {
124
139
  case 'M':
@@ -0,0 +1,55 @@
1
+ // moment.js language configuration
2
+ // language : uzbek
3
+ // author : Sardor Muminov : https://github.com/muminoff
4
+
5
+ (function (factory) {
6
+ if (typeof define === 'function' && define.amd) {
7
+ define(['moment'], factory); // AMD
8
+ } else if (typeof exports === 'object') {
9
+ module.exports = factory(require('../moment')); // Node
10
+ } else {
11
+ factory(window.moment); // Browser global
12
+ }
13
+ }(function (moment) {
14
+ return moment.lang('uz', {
15
+ months : "январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),
16
+ monthsShort : "янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),
17
+ weekdays : "Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),
18
+ weekdaysShort : "Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),
19
+ weekdaysMin : "Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),
20
+ longDateFormat : {
21
+ LT : "HH:mm",
22
+ L : "DD/MM/YYYY",
23
+ LL : "D MMMM YYYY",
24
+ LLL : "D MMMM YYYY LT",
25
+ LLLL : "D MMMM YYYY, dddd LT"
26
+ },
27
+ calendar : {
28
+ sameDay : '[Бугун соат] LT [да]',
29
+ nextDay : '[Эртага] LT [да]',
30
+ nextWeek : 'dddd [куни соат] LT [да]',
31
+ lastDay : '[Кеча соат] LT [да]',
32
+ lastWeek : '[Утган] dddd [куни соат] LT [да]',
33
+ sameElse : 'L'
34
+ },
35
+ relativeTime : {
36
+ future : "Якин %s ичида",
37
+ past : "Бир неча %s олдин",
38
+ s : "фурсат",
39
+ m : "бир дакика",
40
+ mm : "%d дакика",
41
+ h : "бир соат",
42
+ hh : "%d соат",
43
+ d : "бир кун",
44
+ dd : "%d кун",
45
+ M : "бир ой",
46
+ MM : "%d ой",
47
+ y : "бир йил",
48
+ yy : "%d йил"
49
+ },
50
+ week : {
51
+ dow : 1, // Monday is the first day of the week.
52
+ doy : 7 // The week that contains Jan 4th is the first week of the year.
53
+ }
54
+ });
55
+ }));
@@ -0,0 +1,62 @@
1
+ // moment.js language configuration
2
+ // language : vietnamese (vn)
3
+ // author : Bang Nguyen : https://github.com/bangnk
4
+
5
+ (function (factory) {
6
+ if (typeof define === 'function' && define.amd) {
7
+ define(['moment'], factory); // AMD
8
+ } else if (typeof exports === 'object') {
9
+ module.exports = factory(require('../moment')); // Node
10
+ } else {
11
+ factory(window.moment); // Browser global
12
+ }
13
+ }(function (moment) {
14
+ return moment.lang('vn', {
15
+ months : "tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),
16
+ monthsShort : "Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),
17
+ weekdays : "chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),
18
+ weekdaysShort : "CN_T2_T3_T4_T5_T6_T7".split("_"),
19
+ weekdaysMin : "CN_T2_T3_T4_T5_T6_T7".split("_"),
20
+ longDateFormat : {
21
+ LT : "HH:mm",
22
+ L : "DD/MM/YYYY",
23
+ LL : "D MMMM [năm] YYYY",
24
+ LLL : "D MMMM [năm] YYYY LT",
25
+ LLLL : "dddd, D MMMM [năm] YYYY LT",
26
+ l : "DD/M/YYYY",
27
+ ll : "D MMM YYYY",
28
+ lll : "D MMM YYYY LT",
29
+ llll : "ddd, D MMM YYYY LT"
30
+ },
31
+ calendar : {
32
+ sameDay: "[Hôm nay lúc] LT",
33
+ nextDay: '[Ngày mai lúc] LT',
34
+ nextWeek: 'dddd [tuần tới lúc] LT',
35
+ lastDay: '[Hôm qua lúc] LT',
36
+ lastWeek: 'dddd [tuần rồi lúc] LT',
37
+ sameElse: 'L'
38
+ },
39
+ relativeTime : {
40
+ future : "%s tới",
41
+ past : "%s trước",
42
+ s : "vài giây",
43
+ m : "một phút",
44
+ mm : "%d phút",
45
+ h : "một giờ",
46
+ hh : "%d giờ",
47
+ d : "một ngày",
48
+ dd : "%d ngày",
49
+ M : "một tháng",
50
+ MM : "%d tháng",
51
+ y : "một năm",
52
+ yy : "%d năm"
53
+ },
54
+ ordinal : function (number) {
55
+ return number;
56
+ },
57
+ week : {
58
+ dow : 1, // Monday is the first day of the week.
59
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
60
+ }
61
+ });
62
+ }));
@@ -1,17 +1,18 @@
1
1
  // moment.js language configuration
2
2
  // language : chinese
3
3
  // author : suupic : https://github.com/suupic
4
+ // author : Zeno Zeng : https://github.com/zenozeng
4
5
 
5
6
  (function (factory) {
6
7
  if (typeof define === 'function' && define.amd) {
7
8
  define(['moment'], factory); // AMD
8
9
  } else if (typeof exports === 'object') {
9
- factory(require('../moment')); // Node
10
+ module.exports = factory(require('../moment')); // Node
10
11
  } else {
11
12
  factory(window.moment); // Browser global
12
13
  }
13
14
  }(function (moment) {
14
- moment.lang('zh-cn', {
15
+ return moment.lang('zh-cn', {
15
16
  months : "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),
16
17
  monthsShort : "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
17
18
  weekdays : "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),
@@ -29,38 +30,57 @@
29
30
  llll : "YYYY年MMMD日ddddLT"
30
31
  },
31
32
  meridiem : function (hour, minute, isLower) {
32
- if (hour < 9) {
33
+ var hm = hour * 100 + minute;
34
+ if (hm < 600) {
35
+ return "凌晨";
36
+ } else if (hm < 900) {
33
37
  return "早上";
34
- } else if (hour < 11 && minute < 30) {
38
+ } else if (hm < 1130) {
35
39
  return "上午";
36
- } else if (hour < 13 && minute < 30) {
40
+ } else if (hm < 1230) {
37
41
  return "中午";
38
- } else if (hour < 18) {
42
+ } else if (hm < 1800) {
39
43
  return "下午";
40
44
  } else {
41
45
  return "晚上";
42
46
  }
43
47
  },
44
48
  calendar : {
45
- sameDay : '[今天]LT',
46
- nextDay : '[明天]LT',
47
- nextWeek : '[下]ddddLT',
48
- lastDay : '[昨天]LT',
49
- lastWeek : '[]ddddLT',
49
+ sameDay : function () {
50
+ return this.minutes() === 0 ? "[今天]Ah[点整]" : "[今天]LT";
51
+ },
52
+ nextDay : function () {
53
+ return this.minutes() === 0 ? "[明天]Ah[点整]" : "[明天]LT";
54
+ },
55
+ lastDay : function () {
56
+ return this.minutes() === 0 ? "[昨天]Ah[点整]" : "[昨天]LT";
57
+ },
58
+ nextWeek : function () {
59
+ var startOfWeek, prefix;
60
+ startOfWeek = moment().startOf('week');
61
+ prefix = this.unix() - startOfWeek.unix() >= 7 * 24 * 3600 ? '[下]' : '[本]';
62
+ return this.minutes() === 0 ? prefix + "dddAh点整" : prefix + "dddAh点mm";
63
+ },
64
+ lastWeek : function () {
65
+ var startOfWeek, prefix;
66
+ startOfWeek = moment().startOf('week');
67
+ prefix = this.unix() < startOfWeek.unix() ? '[上]' : '[本]';
68
+ return this.minutes() === 0 ? prefix + "dddAh点整" : prefix + "dddAh点mm";
69
+ },
50
70
  sameElse : 'L'
51
71
  },
52
72
  ordinal : function (number, period) {
53
73
  switch (period) {
54
- case "d" :
55
- case "D" :
56
- case "DDD" :
74
+ case "d":
75
+ case "D":
76
+ case "DDD":
57
77
  return number + "日";
58
- case "M" :
78
+ case "M":
59
79
  return number + "月";
60
- case "w" :
61
- case "W" :
80
+ case "w":
81
+ case "W":
62
82
  return number + "周";
63
- default :
83
+ default:
64
84
  return number;
65
85
  }
66
86
  },
@@ -78,6 +98,11 @@
78
98
  MM : "%d个月",
79
99
  y : "1年",
80
100
  yy : "%d年"
101
+ },
102
+ week : {
103
+ // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
104
+ dow : 1, // Monday is the first day of the week.
105
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
81
106
  }
82
107
  });
83
108
  }));
@@ -6,12 +6,12 @@
6
6
  if (typeof define === 'function' && define.amd) {
7
7
  define(['moment'], factory); // AMD
8
8
  } else if (typeof exports === 'object') {
9
- factory(require('../moment')); // Node
9
+ module.exports = factory(require('../moment')); // Node
10
10
  } else {
11
11
  factory(window.moment); // Browser global
12
12
  }
13
13
  }(function (moment) {
14
- moment.lang('zh-tw', {
14
+ return moment.lang('zh-tw', {
15
15
  months : "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),
16
16
  monthsShort : "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
17
17
  weekdays : "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),
@@ -29,13 +29,14 @@
29
29
  llll : "YYYY年MMMD日ddddLT"
30
30
  },
31
31
  meridiem : function (hour, minute, isLower) {
32
- if (hour < 9) {
32
+ var hm = hour * 100 + minute;
33
+ if (hm < 900) {
33
34
  return "早上";
34
- } else if (hour < 11 && minute < 30) {
35
+ } else if (hm < 1130) {
35
36
  return "上午";
36
- } else if (hour < 13 && minute < 30) {
37
+ } else if (hm < 1230) {
37
38
  return "中午";
38
- } else if (hour < 18) {
39
+ } else if (hm < 1800) {
39
40
  return "下午";
40
41
  } else {
41
42
  return "晚上";
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: momentjs-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Derek Prior
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-19 00:00:00.000000000 Z
11
+ date: 2013-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -51,12 +51,15 @@ files:
51
51
  - vendor/assets/javascripts/moment/ar.js
52
52
  - vendor/assets/javascripts/moment/bg.js
53
53
  - vendor/assets/javascripts/moment/br.js
54
+ - vendor/assets/javascripts/moment/bs.js
54
55
  - vendor/assets/javascripts/moment/ca.js
55
56
  - vendor/assets/javascripts/moment/cs.js
56
57
  - vendor/assets/javascripts/moment/cv.js
58
+ - vendor/assets/javascripts/moment/cy.js
57
59
  - vendor/assets/javascripts/moment/da.js
58
60
  - vendor/assets/javascripts/moment/de.js
59
61
  - vendor/assets/javascripts/moment/el.js
62
+ - vendor/assets/javascripts/moment/en-au.js
60
63
  - vendor/assets/javascripts/moment/en-ca.js
61
64
  - vendor/assets/javascripts/moment/en-gb.js
62
65
  - vendor/assets/javascripts/moment/eo.js
@@ -65,6 +68,7 @@ files:
65
68
  - vendor/assets/javascripts/moment/eu.js
66
69
  - vendor/assets/javascripts/moment/fa.js
67
70
  - vendor/assets/javascripts/moment/fi.js
71
+ - vendor/assets/javascripts/moment/fo.js
68
72
  - vendor/assets/javascripts/moment/fr-ca.js
69
73
  - vendor/assets/javascripts/moment/fr.js
70
74
  - vendor/assets/javascripts/moment/gl.js
@@ -78,6 +82,7 @@ files:
78
82
  - vendor/assets/javascripts/moment/ja.js
79
83
  - vendor/assets/javascripts/moment/ka.js
80
84
  - vendor/assets/javascripts/moment/ko.js
85
+ - vendor/assets/javascripts/moment/lt.js
81
86
  - vendor/assets/javascripts/moment/lv.js
82
87
  - vendor/assets/javascripts/moment/ml.js
83
88
  - vendor/assets/javascripts/moment/mr.js
@@ -96,10 +101,13 @@ files:
96
101
  - vendor/assets/javascripts/moment/sq.js
97
102
  - vendor/assets/javascripts/moment/sv.js
98
103
  - vendor/assets/javascripts/moment/th.js
104
+ - vendor/assets/javascripts/moment/tl-ph.js
99
105
  - vendor/assets/javascripts/moment/tr.js
100
106
  - vendor/assets/javascripts/moment/tzm-la.js
101
107
  - vendor/assets/javascripts/moment/tzm.js
102
108
  - vendor/assets/javascripts/moment/uk.js
109
+ - vendor/assets/javascripts/moment/uz.js
110
+ - vendor/assets/javascripts/moment/vn.js
103
111
  - vendor/assets/javascripts/moment/zh-cn.js
104
112
  - vendor/assets/javascripts/moment/zh-tw.js
105
113
  - vendor/assets/javascripts/moment.js