momentjs-rails 2.4.0 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/news.md +3 -0
- data/test/dummy/log/test.log +21 -146
- data/test/dummy/tmp/cache/assets/D1C/680/sprockets%2F16ed4d5afdb2919596e6f8790e2116c2 +0 -0
- data/test/dummy/tmp/cache/assets/D35/CA0/sprockets%2F493e64bce2d302801dc01cf7cd096a58 +0 -0
- data/test/dummy/tmp/cache/assets/D3F/5F0/sprockets%2F4a6c53eae7c6e41a69a191578bbb6417 +0 -0
- data/test/dummy/tmp/cache/assets/D58/BD0/sprockets%2F4de9ddc9b725c715a54c98697b2528fe +0 -0
- data/test/dummy/tmp/cache/assets/D75/510/sprockets%2Fe690787ac522f47a6be024bfcc1767ee +0 -0
- data/test/dummy/tmp/cache/assets/E10/250/sprockets%2Fe4badb9ddfda484eb9671bf88567be61 +0 -0
- data/test/integration/navigation_test.rb +1 -1
- data/vendor/assets/javascripts/moment.js +105 -56
- data/vendor/assets/javascripts/moment/et.js +29 -13
- data/vendor/assets/javascripts/moment/it.js +1 -1
- data/vendor/assets/javascripts/moment/ko.js +10 -3
- data/vendor/assets/javascripts/moment/lb.js +160 -0
- data/vendor/assets/javascripts/moment/mk.js +86 -0
- data/vendor/assets/javascripts/moment/pl.js +1 -1
- data/vendor/assets/javascripts/moment/ro.js +25 -9
- data/vendor/assets/javascripts/moment/rs.js +139 -0
- data/vendor/assets/javascripts/moment/sq.js +2 -2
- data/vendor/assets/javascripts/moment/ta.js +112 -0
- data/vendor/assets/javascripts/moment/zh-cn.js +3 -3
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 26eb8540bc610de37cf2c7e9e69de07878cc0af0
|
4
|
+
data.tar.gz: 7c4d2fa1f0f2ab5f324aaff5741a3ce4ce2543ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dab238e9515fdbdea5e8cdca93307e2412f3984368a83ecf85541ecaff8c7c080c19de90595ee7991ef711a3795d67564272c85fd6e38dde34ce87428bcce34f
|
7
|
+
data.tar.gz: efa50aa5bb9cf93b0573cc712cc9db6ea375ecd3f3aa3d8b04c6aaf90c9241b9a4a64aa1f5ef2a73bb2c97cc7489d217e144b5883dd7373106f0b252ce500823
|
data/README.md
CHANGED
@@ -24,7 +24,7 @@ If you want to include a localization file, also add the following directive:
|
|
24
24
|
|
25
25
|
## Versioning
|
26
26
|
|
27
|
-
momentjs-rails 2.
|
27
|
+
momentjs-rails 2.5.0 == Moment.js 2.5.0
|
28
28
|
|
29
29
|
Every attempt is made to mirror the currently shipping Momentum.js version number wherever possible.
|
30
30
|
The major, minor, and patch version numbers will always represent the Momentum.js version. Should a gem
|
data/news.md
CHANGED
data/test/dummy/log/test.log
CHANGED
@@ -1,153 +1,28 @@
|
|
1
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-
|
2
|
-
Compiled moment.js (0ms) (pid
|
3
|
-
Served asset /moment.js - 200 OK (
|
4
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-
|
5
|
-
Compiled moment/fr.js (0ms) (pid
|
6
|
-
Served asset /moment/fr.js - 200 OK (
|
7
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-
|
8
|
-
Served asset /moment.js - 200 OK (25ms)
|
9
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:05:04 -0400
|
10
|
-
Served asset /moment/fr.js - 200 OK (2ms)
|
11
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:05:17 -0400
|
12
|
-
Served asset /moment.js - 200 OK (2ms)
|
13
|
-
Started GET "/assets/momentmotherfucker/fr.js" for 127.0.0.1 at 2013-03-16 16:05:17 -0400
|
14
|
-
Served asset /momentmotherfucker/fr.js - 404 Not Found (1ms)
|
15
|
-
Started GET "/assets/moments.js" for 127.0.0.1 at 2013-03-16 16:05:53 -0400
|
16
|
-
Served asset /moments.js - 404 Not Found (1ms)
|
17
|
-
Started GET "/assets/moment/rfr.js" for 127.0.0.1 at 2013-03-16 16:05:53 -0400
|
18
|
-
Served asset /moment/rfr.js - 404 Not Found (1ms)
|
19
|
-
Started GET "/assets/moments.js" for 127.0.0.1 at 2013-03-16 16:06:02 -0400
|
20
|
-
Served asset /moments.js - 404 Not Found (1ms)
|
21
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:06:02 -0400
|
22
|
-
Served asset /moment/fr.js - 200 OK (2ms)
|
23
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:06:22 -0400
|
24
|
-
Served asset /moment.js - 200 OK (2ms)
|
25
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:06:22 -0400
|
26
|
-
Served asset /moment/fr.js - 200 OK (1ms)
|
27
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:07:08 -0400
|
28
|
-
Served asset /moment.js - 200 OK (3ms)
|
29
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:07:08 -0400
|
30
|
-
Served asset /moment/fr.js - 200 OK (1ms)
|
31
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:08:10 -0400
|
32
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:08:10 -0400
|
33
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:08:17 -0400
|
34
|
-
Served asset /moment.js - 200 OK (2ms)
|
35
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:08:17 -0400
|
36
|
-
Served asset /moment/fr.js - 200 OK (1ms)
|
37
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:08:51 -0400
|
38
|
-
Served asset /moment.js - 200 OK (2ms)
|
39
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:08:51 -0400
|
40
|
-
Served asset /moment/fr.js - 200 OK (1ms)
|
41
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:08:57 -0400
|
42
|
-
Served asset /moment.js - 200 OK (2ms)
|
43
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:08:57 -0400
|
44
|
-
Served asset /moment/fr.js - 200 OK (1ms)
|
45
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:09:13 -0400
|
46
|
-
Served asset /moment.js - 200 OK (2ms)
|
47
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:09:13 -0400
|
48
|
-
Served asset /moment/fr.js - 200 OK (2ms)
|
49
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:09:49 -0400
|
50
|
-
Served asset /moment.js - 200 OK (2ms)
|
51
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:09:49 -0400
|
52
|
-
Served asset /moment/fr.js - 200 OK (1ms)
|
53
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:10:05 -0400
|
54
|
-
Served asset /moment.js - 200 OK (2ms)
|
55
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:10:05 -0400
|
56
|
-
Served asset /moment/fr.js - 200 OK (1ms)
|
57
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:11:18 -0400
|
58
|
-
Served asset /moment.js - 200 OK (2ms)
|
59
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:11:18 -0400
|
60
|
-
Served asset /moment/fr.js - 200 OK (1ms)
|
61
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:12:28 -0400
|
62
|
-
Served asset /moment.js - 200 OK (16ms)
|
63
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:12:28 -0400
|
64
|
-
Served asset /moment/fr.js - 200 OK (10ms)
|
65
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:12:47 -0400
|
66
|
-
Served asset /moment.js - 200 OK (1ms)
|
67
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:12:47 -0400
|
68
|
-
Served asset /moment/fr.js - 200 OK (11ms)
|
69
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:14:04 -0400
|
70
|
-
Served asset /moment.js - 200 OK (1ms)
|
71
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:14:04 -0400
|
72
|
-
Served asset /moment/fr.js - 200 OK (1ms)
|
73
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:15:39 -0400
|
74
|
-
Served asset /moment.js - 200 OK (1ms)
|
75
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:15:39 -0400
|
76
|
-
Served asset /moment/fr.js - 200 OK (12ms)
|
77
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:37:24 -0400
|
78
|
-
Served asset /moment.js - 200 OK (14ms)
|
79
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:37:24 -0400
|
80
|
-
Served asset /moment/fr.js - 200 OK (11ms)
|
81
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:37:32 -0400
|
82
|
-
Served asset /moment.js - 200 OK (1ms)
|
83
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:37:32 -0400
|
84
|
-
Served asset /moment/fr.js - 200 OK (12ms)
|
85
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:44:51 -0400
|
86
|
-
Served asset /moment.js - 200 OK (46ms)
|
87
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:44:52 -0400
|
88
|
-
Served asset /moment/fr.js - 200 OK (12ms)
|
89
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:44:52 -0400
|
1
|
+
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-09-19 11:00:54 -0400
|
2
|
+
Compiled moment.js (0ms) (pid 11385)
|
3
|
+
Served asset /moment.js - 200 OK (6ms)
|
4
|
+
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-09-19 11:00:54 -0400
|
5
|
+
Compiled moment/fr.js (0ms) (pid 11385)
|
6
|
+
Served asset /moment/fr.js - 200 OK (23ms)
|
7
|
+
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-09-19 11:00:54 -0400
|
90
8
|
Served asset /moment.js - 200 OK (0ms)
|
91
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-
|
92
|
-
Served asset /moment.js - 200 OK (
|
93
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-
|
94
|
-
Served asset /moment/fr.js - 200 OK (11ms)
|
95
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:45:09 -0400
|
96
|
-
Served asset /moment.js - 200 OK (0ms)
|
97
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:47:53 -0400
|
98
|
-
Compiled moment.js (0ms) (pid 62815)
|
99
|
-
Served asset /moment.js - 200 OK (18ms)
|
100
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:47:53 -0400
|
101
|
-
Compiled moment/fr.js (0ms) (pid 62815)
|
102
|
-
Served asset /moment/fr.js - 200 OK (18ms)
|
103
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:47:53 -0400
|
104
|
-
Served asset /moment.js - 200 OK (0ms)
|
105
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:48:16 -0400
|
106
|
-
Served asset /moment.js - 200 OK (2ms)
|
107
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:48:16 -0400
|
9
|
+
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-09-19 11:01:37 -0400
|
10
|
+
Served asset /moment.js - 200 OK (11ms)
|
11
|
+
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-09-19 11:01:37 -0400
|
108
12
|
Served asset /moment/fr.js - 200 OK (1ms)
|
109
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-
|
110
|
-
Served asset /moment.js - 200 OK (0ms)
|
111
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:50:40 -0400
|
112
|
-
Compiled moment.js (10ms) (pid 64044)
|
113
|
-
Served asset /moment.js - 200 OK (40ms)
|
114
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:50:40 -0400
|
115
|
-
Served asset /moment/fr.js - 200 OK (2ms)
|
116
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:50:40 -0400
|
117
|
-
Served asset /moment.js - 200 OK (0ms)
|
118
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:50:53 -0400
|
119
|
-
Compiled moment.js (11ms) (pid 64218)
|
120
|
-
Served asset /moment.js - 200 OK (16ms)
|
121
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-03-16 16:50:53 -0400
|
122
|
-
Served asset /moment/fr.js - 200 OK (1ms)
|
123
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-03-16 16:50:53 -0400
|
124
|
-
Served asset /moment.js - 200 OK (0ms)
|
125
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-06-06 21:49:55 -0400
|
126
|
-
Served asset /moment.js - 200 OK (2ms)
|
127
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-06-06 21:49:55 -0400
|
128
|
-
Compiled moment/fr.js (0ms) (pid 73048)
|
129
|
-
Served asset /moment/fr.js - 200 OK (28ms)
|
130
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-06-06 21:49:55 -0400
|
131
|
-
Served asset /moment.js - 200 OK (0ms)
|
132
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-07-20 10:00:25 -0400
|
133
|
-
Compiled moment.js (0ms) (pid 5373)
|
134
|
-
Served asset /moment.js - 200 OK (75ms)
|
135
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-07-20 10:00:25 -0400
|
136
|
-
Compiled moment/fr.js (0ms) (pid 5373)
|
137
|
-
Served asset /moment/fr.js - 200 OK (96ms)
|
138
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-07-20 10:00:25 -0400
|
13
|
+
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-09-19 11:01:37 -0400
|
139
14
|
Served asset /moment.js - 200 OK (0ms)
|
140
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-
|
15
|
+
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-09-19 11:02:11 -0400
|
141
16
|
Served asset /moment.js - 200 OK (2ms)
|
142
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-
|
17
|
+
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2013-09-19 11:02:11 -0400
|
143
18
|
Served asset /moment/fr.js - 200 OK (1ms)
|
144
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-
|
19
|
+
Started GET "/assets/moment.js" for 127.0.0.1 at 2013-09-19 11:02:11 -0400
|
145
20
|
Served asset /moment.js - 200 OK (0ms)
|
146
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at
|
147
|
-
Compiled moment.js (1ms) (pid
|
148
|
-
Served asset /moment.js - 200 OK (
|
149
|
-
Started GET "/assets/moment/fr.js" for 127.0.0.1 at
|
150
|
-
Compiled moment/fr.js (0ms) (pid
|
151
|
-
Served asset /moment/fr.js - 200 OK (
|
152
|
-
Started GET "/assets/moment.js" for 127.0.0.1 at
|
21
|
+
Started GET "/assets/moment.js" for 127.0.0.1 at 2014-01-09 09:25:18 -0500
|
22
|
+
Compiled moment.js (1ms) (pid 4859)
|
23
|
+
Served asset /moment.js - 200 OK (10ms)
|
24
|
+
Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2014-01-09 09:25:18 -0500
|
25
|
+
Compiled moment/fr.js (0ms) (pid 4859)
|
26
|
+
Served asset /moment/fr.js - 200 OK (4ms)
|
27
|
+
Started GET "/assets/moment.js" for 127.0.0.1 at 2014-01-09 09:25:18 -0500
|
153
28
|
Served asset /moment.js - 200 OK (0ms)
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -8,7 +8,7 @@ class NavigationTest < ActionDispatch::IntegrationTest
|
|
8
8
|
|
9
9
|
test 'momentjs response is for the expected version' do
|
10
10
|
get 'assets/moment.js'
|
11
|
-
assert_match(/VERSION = "2\.
|
11
|
+
assert_match(/VERSION = "2\.5\.0"/, @response.body)
|
12
12
|
end
|
13
13
|
|
14
14
|
test 'can access momentjs translation' do
|
@@ -1,5 +1,5 @@
|
|
1
1
|
//! moment.js
|
2
|
-
//! version : 2.
|
2
|
+
//! version : 2.5.0
|
3
3
|
//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
|
4
4
|
//! license : MIT
|
5
5
|
//! momentjs.com
|
@@ -11,7 +11,8 @@
|
|
11
11
|
************************************/
|
12
12
|
|
13
13
|
var moment,
|
14
|
-
VERSION = "2.
|
14
|
+
VERSION = "2.5.0",
|
15
|
+
global = this,
|
15
16
|
round = Math.round,
|
16
17
|
i,
|
17
18
|
|
@@ -27,7 +28,7 @@
|
|
27
28
|
languages = {},
|
28
29
|
|
29
30
|
// check for nodeJS
|
30
|
-
hasModule = (typeof module !== 'undefined' && module.exports),
|
31
|
+
hasModule = (typeof module !== 'undefined' && module.exports && typeof require !== 'undefined'),
|
31
32
|
|
32
33
|
// ASP.NET json date format regex
|
33
34
|
aspNetJsonRegex = /^\/?Date\((\-?\d+)/i,
|
@@ -38,24 +39,30 @@
|
|
38
39
|
isoDurationRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,
|
39
40
|
|
40
41
|
// format tokens
|
41
|
-
formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,
|
42
|
+
formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,
|
42
43
|
localFormattingTokens = /(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,
|
43
44
|
|
44
45
|
// parsing token regexes
|
45
46
|
parseTokenOneOrTwoDigits = /\d\d?/, // 0 - 99
|
46
47
|
parseTokenOneToThreeDigits = /\d{1,3}/, // 0 - 999
|
47
|
-
|
48
|
-
|
49
|
-
parseTokenSixDigits = /[+\-]?\d{1,6}/, // -999,999 - 999,999
|
48
|
+
parseTokenOneToFourDigits = /\d{1,4}/, // 0 - 9999
|
49
|
+
parseTokenOneToSixDigits = /[+\-]?\d{1,6}/, // -999,999 - 999,999
|
50
50
|
parseTokenDigits = /\d+/, // nonzero number of digits
|
51
51
|
parseTokenWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, // any word (or two) characters or numbers including two/three word month in arabic.
|
52
|
-
parseTokenTimezone = /Z|[\+\-]\d\d:?\d\d/
|
53
|
-
parseTokenT = /T/i, // T (ISO
|
52
|
+
parseTokenTimezone = /Z|[\+\-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z
|
53
|
+
parseTokenT = /T/i, // T (ISO separator)
|
54
54
|
parseTokenTimestampMs = /[\+\-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123
|
55
55
|
|
56
|
-
//
|
57
|
-
|
58
|
-
|
56
|
+
//strict parsing regexes
|
57
|
+
parseTokenOneDigit = /\d/, // 0 - 9
|
58
|
+
parseTokenTwoDigits = /\d\d/, // 00 - 99
|
59
|
+
parseTokenThreeDigits = /\d{3}/, // 000 - 999
|
60
|
+
parseTokenFourDigits = /\d{4}/, // 0000 - 9999
|
61
|
+
parseTokenSixDigits = /[+\-]?\d{6}/, // -999,999 - 999,999
|
62
|
+
|
63
|
+
// iso 8601 regex
|
64
|
+
// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
|
65
|
+
isoRegex = /^\s*\d{4}-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
|
59
66
|
|
60
67
|
isoFormat = 'YYYY-MM-DDTHH:mm:ssZ',
|
61
68
|
|
@@ -165,6 +172,10 @@
|
|
165
172
|
YYYYY : function () {
|
166
173
|
return leftZeroFill(this.year(), 5);
|
167
174
|
},
|
175
|
+
YYYYYY : function () {
|
176
|
+
var y = this.year(), sign = y >= 0 ? '+' : '-';
|
177
|
+
return sign + leftZeroFill(Math.abs(y), 6);
|
178
|
+
},
|
168
179
|
gg : function () {
|
169
180
|
return leftZeroFill(this.weekYear() % 100, 2);
|
170
181
|
},
|
@@ -235,7 +246,7 @@
|
|
235
246
|
a = -a;
|
236
247
|
b = "-";
|
237
248
|
}
|
238
|
-
return b + leftZeroFill(toInt(
|
249
|
+
return b + leftZeroFill(toInt(a / 60), 2) + leftZeroFill(toInt(a) % 60, 2);
|
239
250
|
},
|
240
251
|
z : function () {
|
241
252
|
return this.zoneAbbr();
|
@@ -245,6 +256,9 @@
|
|
245
256
|
},
|
246
257
|
X : function () {
|
247
258
|
return this.unix();
|
259
|
+
},
|
260
|
+
Q : function () {
|
261
|
+
return this.quarter();
|
248
262
|
}
|
249
263
|
},
|
250
264
|
|
@@ -298,9 +312,6 @@
|
|
298
312
|
seconds = normalizedInput.second || 0,
|
299
313
|
milliseconds = normalizedInput.millisecond || 0;
|
300
314
|
|
301
|
-
// store reference to input for deterministic cloning
|
302
|
-
this._input = duration;
|
303
|
-
|
304
315
|
// representation for dateAddRemove
|
305
316
|
this._milliseconds = +milliseconds +
|
306
317
|
seconds * 1e3 + // 1000
|
@@ -354,12 +365,14 @@
|
|
354
365
|
|
355
366
|
// left zero fill a number
|
356
367
|
// see http://jsperf.com/left-zero-filling for performance comparison
|
357
|
-
function leftZeroFill(number, targetLength) {
|
358
|
-
var output = number + ''
|
368
|
+
function leftZeroFill(number, targetLength, forceSign) {
|
369
|
+
var output = Math.abs(number) + '',
|
370
|
+
sign = number >= 0;
|
371
|
+
|
359
372
|
while (output.length < targetLength) {
|
360
373
|
output = '0' + output;
|
361
374
|
}
|
362
|
-
return output;
|
375
|
+
return (sign ? (forceSign ? '+' : '') : '-') + output;
|
363
376
|
}
|
364
377
|
|
365
378
|
// helper function for _.addTime and _.subtractTime
|
@@ -430,8 +443,7 @@
|
|
430
443
|
function normalizeObjectUnits(inputObject) {
|
431
444
|
var normalizedInput = {},
|
432
445
|
normalizedProp,
|
433
|
-
prop
|
434
|
-
index;
|
446
|
+
prop;
|
435
447
|
|
436
448
|
for (prop in inputObject) {
|
437
449
|
if (inputObject.hasOwnProperty(prop)) {
|
@@ -572,6 +584,12 @@
|
|
572
584
|
return key ? key.toLowerCase().replace('_', '-') : key;
|
573
585
|
}
|
574
586
|
|
587
|
+
// Return a moment from input, that is local/utc/zone equivalent to model.
|
588
|
+
function makeAs(input, model) {
|
589
|
+
return model._isUTC ? moment(input).zone(model._offset || 0) :
|
590
|
+
moment(input).local();
|
591
|
+
}
|
592
|
+
|
575
593
|
/************************************
|
576
594
|
Languages
|
577
595
|
************************************/
|
@@ -903,23 +921,28 @@
|
|
903
921
|
|
904
922
|
// get the regex to find the next token
|
905
923
|
function getParseRegexForToken(token, config) {
|
906
|
-
var a;
|
924
|
+
var a, strict = config._strict;
|
907
925
|
switch (token) {
|
908
926
|
case 'DDDD':
|
909
927
|
return parseTokenThreeDigits;
|
910
928
|
case 'YYYY':
|
911
929
|
case 'GGGG':
|
912
930
|
case 'gggg':
|
913
|
-
return parseTokenFourDigits;
|
931
|
+
return strict ? parseTokenFourDigits : parseTokenOneToFourDigits;
|
932
|
+
case 'YYYYYY':
|
914
933
|
case 'YYYYY':
|
915
934
|
case 'GGGGG':
|
916
935
|
case 'ggggg':
|
917
|
-
return parseTokenSixDigits;
|
936
|
+
return strict ? parseTokenSixDigits : parseTokenOneToSixDigits;
|
918
937
|
case 'S':
|
938
|
+
if (strict) { return parseTokenOneDigit; }
|
939
|
+
/* falls through */
|
919
940
|
case 'SS':
|
941
|
+
if (strict) { return parseTokenTwoDigits; }
|
942
|
+
/* falls through */
|
920
943
|
case 'SSS':
|
921
944
|
case 'DDD':
|
922
|
-
return parseTokenOneToThreeDigits;
|
945
|
+
return strict ? parseTokenThreeDigits : parseTokenOneToThreeDigits;
|
923
946
|
case 'MMM':
|
924
947
|
case 'MMMM':
|
925
948
|
case 'dd':
|
@@ -947,6 +970,9 @@
|
|
947
970
|
case 'hh':
|
948
971
|
case 'mm':
|
949
972
|
case 'ss':
|
973
|
+
case 'ww':
|
974
|
+
case 'WW':
|
975
|
+
return strict ? parseTokenTwoDigits : parseTokenOneOrTwoDigits;
|
950
976
|
case 'M':
|
951
977
|
case 'D':
|
952
978
|
case 'd':
|
@@ -955,12 +981,10 @@
|
|
955
981
|
case 'm':
|
956
982
|
case 's':
|
957
983
|
case 'w':
|
958
|
-
case 'ww':
|
959
984
|
case 'W':
|
960
|
-
case 'WW':
|
961
985
|
case 'e':
|
962
986
|
case 'E':
|
963
|
-
return parseTokenOneOrTwoDigits;
|
987
|
+
return strict ? parseTokenOneDigit : parseTokenOneOrTwoDigits;
|
964
988
|
default :
|
965
989
|
a = new RegExp(regexpEscape(unescapeFormat(token.replace('\\', '')), "i"));
|
966
990
|
return a;
|
@@ -968,8 +992,10 @@
|
|
968
992
|
}
|
969
993
|
|
970
994
|
function timezoneMinutesFromString(string) {
|
971
|
-
|
972
|
-
|
995
|
+
string = string || "";
|
996
|
+
var possibleTzMatches = (string.match(parseTokenTimezone) || []),
|
997
|
+
tzChunk = possibleTzMatches[possibleTzMatches.length - 1] || [],
|
998
|
+
parts = (tzChunk + '').match(parseTimezoneChunker) || ['-', 0, 0],
|
973
999
|
minutes = +(parts[1] * 60) + toInt(parts[2]);
|
974
1000
|
|
975
1001
|
return parts[0] === '+' ? -minutes : minutes;
|
@@ -1018,6 +1044,7 @@
|
|
1018
1044
|
break;
|
1019
1045
|
case 'YYYY' :
|
1020
1046
|
case 'YYYYY' :
|
1047
|
+
case 'YYYYYY' :
|
1021
1048
|
datePartArray[YEAR] = toInt(input);
|
1022
1049
|
break;
|
1023
1050
|
// AM / PM
|
@@ -1102,8 +1129,9 @@
|
|
1102
1129
|
//compute day of the year from weeks and weekdays
|
1103
1130
|
if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
|
1104
1131
|
fixYear = function (val) {
|
1132
|
+
var int_val = parseInt(val, 10);
|
1105
1133
|
return val ?
|
1106
|
-
(val.length < 3 ? (
|
1134
|
+
(val.length < 3 ? (int_val > 68 ? 1900 + int_val : 2000 + int_val) : int_val) :
|
1107
1135
|
(config._a[YEAR] == null ? moment().weekYear() : config._a[YEAR]);
|
1108
1136
|
};
|
1109
1137
|
|
@@ -1215,7 +1243,7 @@
|
|
1215
1243
|
|
1216
1244
|
for (i = 0; i < tokens.length; i++) {
|
1217
1245
|
token = tokens[i];
|
1218
|
-
parsedInput = (getParseRegexForToken(token, config)
|
1246
|
+
parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
|
1219
1247
|
if (parsedInput) {
|
1220
1248
|
skipped = string.substr(0, string.indexOf(parsedInput));
|
1221
1249
|
if (skipped.length > 0) {
|
@@ -1333,7 +1361,7 @@
|
|
1333
1361
|
break;
|
1334
1362
|
}
|
1335
1363
|
}
|
1336
|
-
if (
|
1364
|
+
if (string.match(parseTokenTimezone)) {
|
1337
1365
|
config._f += "Z";
|
1338
1366
|
}
|
1339
1367
|
makeDateFromStringAndFormat(config);
|
@@ -1468,7 +1496,10 @@
|
|
1468
1496
|
|
1469
1497
|
//http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
|
1470
1498
|
function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) {
|
1471
|
-
|
1499
|
+
// The only solid way to create an iso date from year is to use
|
1500
|
+
// a string format (Date.UTC handles only years > 1900). Don't ask why
|
1501
|
+
// it doesn't need Z at the end.
|
1502
|
+
var d = new Date(leftZeroFill(year, 6, true) + '-01-01').getUTCDay(),
|
1472
1503
|
daysToAdd, dayOfYear;
|
1473
1504
|
|
1474
1505
|
weekday = weekday != null ? weekday : firstDayOfWeek;
|
@@ -1559,18 +1590,21 @@
|
|
1559
1590
|
|
1560
1591
|
// duration
|
1561
1592
|
moment.duration = function (input, key) {
|
1562
|
-
var
|
1563
|
-
isNumber = (typeof input === 'number'),
|
1564
|
-
duration = (isDuration ? input._input : (isNumber ? {} : input)),
|
1593
|
+
var duration = input,
|
1565
1594
|
// matching against regexp is expensive, do it on demand
|
1566
1595
|
match = null,
|
1567
1596
|
sign,
|
1568
1597
|
ret,
|
1569
|
-
parseIso
|
1570
|
-
timeEmpty,
|
1571
|
-
dateTimeEmpty;
|
1598
|
+
parseIso;
|
1572
1599
|
|
1573
|
-
if (
|
1600
|
+
if (moment.isDuration(input)) {
|
1601
|
+
duration = {
|
1602
|
+
ms: input._milliseconds,
|
1603
|
+
d: input._days,
|
1604
|
+
M: input._months
|
1605
|
+
};
|
1606
|
+
} else if (typeof input === 'number') {
|
1607
|
+
duration = {};
|
1574
1608
|
if (key) {
|
1575
1609
|
duration[key] = input;
|
1576
1610
|
} else {
|
@@ -1609,7 +1643,7 @@
|
|
1609
1643
|
|
1610
1644
|
ret = new Duration(duration);
|
1611
1645
|
|
1612
|
-
if (isDuration && input.hasOwnProperty('_lang')) {
|
1646
|
+
if (moment.isDuration(input) && input.hasOwnProperty('_lang')) {
|
1613
1647
|
ret._lang = input._lang;
|
1614
1648
|
}
|
1615
1649
|
|
@@ -1716,7 +1750,12 @@
|
|
1716
1750
|
},
|
1717
1751
|
|
1718
1752
|
toISOString : function () {
|
1719
|
-
|
1753
|
+
var m = moment(this).utc();
|
1754
|
+
if (0 < m.year() && m.year() <= 9999) {
|
1755
|
+
return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
|
1756
|
+
} else {
|
1757
|
+
return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
|
1758
|
+
}
|
1720
1759
|
},
|
1721
1760
|
|
1722
1761
|
toArray : function () {
|
@@ -1793,7 +1832,7 @@
|
|
1793
1832
|
},
|
1794
1833
|
|
1795
1834
|
diff : function (input, units, asFloat) {
|
1796
|
-
var that =
|
1835
|
+
var that = makeAs(input, this),
|
1797
1836
|
zoneDiff = (this.zone() - that.zone()) * 6e4,
|
1798
1837
|
diff, output;
|
1799
1838
|
|
@@ -1835,13 +1874,16 @@
|
|
1835
1874
|
},
|
1836
1875
|
|
1837
1876
|
calendar : function () {
|
1838
|
-
|
1877
|
+
// We want to compare the start of today, vs this.
|
1878
|
+
// Getting start-of-today depends on whether we're zone'd or not.
|
1879
|
+
var sod = makeAs(moment(), this).startOf('day'),
|
1880
|
+
diff = this.diff(sod, 'days', true),
|
1839
1881
|
format = diff < -6 ? 'sameElse' :
|
1840
|
-
|
1841
|
-
|
1842
|
-
|
1843
|
-
|
1844
|
-
|
1882
|
+
diff < -1 ? 'lastWeek' :
|
1883
|
+
diff < 0 ? 'lastDay' :
|
1884
|
+
diff < 1 ? 'sameDay' :
|
1885
|
+
diff < 2 ? 'nextDay' :
|
1886
|
+
diff < 7 ? 'nextWeek' : 'sameElse';
|
1845
1887
|
return this.format(this.lang().calendar(format, this));
|
1846
1888
|
},
|
1847
1889
|
|
@@ -1941,8 +1983,8 @@
|
|
1941
1983
|
},
|
1942
1984
|
|
1943
1985
|
isSame: function (input, units) {
|
1944
|
-
units =
|
1945
|
-
return +this.clone().startOf(units) === +
|
1986
|
+
units = units || 'ms';
|
1987
|
+
return +this.clone().startOf(units) === +makeAs(input, this).startOf(units);
|
1946
1988
|
},
|
1947
1989
|
|
1948
1990
|
min: function (other) {
|
@@ -1984,7 +2026,9 @@
|
|
1984
2026
|
},
|
1985
2027
|
|
1986
2028
|
parseZone : function () {
|
1987
|
-
if (
|
2029
|
+
if (this._tzm) {
|
2030
|
+
this.zone(this._tzm);
|
2031
|
+
} else if (typeof this._i === 'string') {
|
1988
2032
|
this.zone(this._i);
|
1989
2033
|
}
|
1990
2034
|
return this;
|
@@ -2010,6 +2054,10 @@
|
|
2010
2054
|
return input == null ? dayOfYear : this.add("d", (input - dayOfYear));
|
2011
2055
|
},
|
2012
2056
|
|
2057
|
+
quarter : function () {
|
2058
|
+
return Math.ceil((this.month() + 1.0) / 3.0);
|
2059
|
+
},
|
2060
|
+
|
2013
2061
|
weekYear : function (input) {
|
2014
2062
|
var year = weekOfYear(this, this.lang()._week.dow, this.lang()._week.doy).year;
|
2015
2063
|
return input == null ? year : this.add("y", (input - year));
|
@@ -2280,7 +2328,7 @@
|
|
2280
2328
|
// add `moment` as a global object via a string identifier,
|
2281
2329
|
// for Closure Compiler "advanced" mode
|
2282
2330
|
if (deprecate) {
|
2283
|
-
|
2331
|
+
global.moment = function () {
|
2284
2332
|
if (!warned && console && console.warn) {
|
2285
2333
|
warned = true;
|
2286
2334
|
console.warn(
|
@@ -2290,8 +2338,9 @@
|
|
2290
2338
|
}
|
2291
2339
|
return local_moment.apply(null, arguments);
|
2292
2340
|
};
|
2341
|
+
extend(global.moment, local_moment);
|
2293
2342
|
} else {
|
2294
|
-
|
2343
|
+
global['moment'] = moment;
|
2295
2344
|
}
|
2296
2345
|
}
|
2297
2346
|
|
@@ -2301,7 +2350,7 @@
|
|
2301
2350
|
makeGlobal(true);
|
2302
2351
|
} else if (typeof define === "function" && define.amd) {
|
2303
2352
|
define("moment", function (require, exports, module) {
|
2304
|
-
if (module.config().noGlobal !== true) {
|
2353
|
+
if (module.config && module.config() && module.config().noGlobal !== true) {
|
2305
2354
|
// If user provided noGlobal, he is aware of global
|
2306
2355
|
makeGlobal(module.config().noGlobal === undefined);
|
2307
2356
|
}
|