momentjs-rails 2.10.2 → 2.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d9c477b6091d6fa24441df39ce1a71d2cb7a6463
4
- data.tar.gz: fe685203b8d89a9e6614bd1fd9188f3f4698795b
3
+ metadata.gz: 7ecbb975f247a7d1689999cff015d72d564469b8
4
+ data.tar.gz: 8d9fb91691c855910a1533ea2c273d8c8134d6bd
5
5
  SHA512:
6
- metadata.gz: 3e9b6c0a8f4f0c0c1f725008183d194c85210092f649238f1ea5ff5ec47b17d21f075f00765d28459f3e72a4c62b73515964846893082bf2ab311ce2230a9013
7
- data.tar.gz: 7ea24371200abf550b4959777c731106a18a2ca6e3e9175eb26b6668ad2314998c780127d189f3d98393980a661e752224e925f48a246a5a0a39c43d2c9b60ce
6
+ metadata.gz: e70cc141df19bc1f881ae932c55ee3849271e1e587c93e4c466052f2d7a748c1fea1ff9fa38837fa29198ba2b381920c4869176be0638d8a5d5b15f7cb193dc4
7
+ data.tar.gz: 729c90235279487f207829ab849c42021b86224baa0bb2e45d652d43a4f20ccab0dd979de0f61456ebe349769f7ebcdf4a5589e7ce187489068e7e141c509e45
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.10.2 == Moment.js 2.10.2
27
+ momentjs-rails 2.10.3 == Moment.js 2.10.3
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
@@ -1,3 +1,6 @@
1
+ ### Version 2.10.3 (2015-06-09)
2
+ - Updated Moment.js to 2.10.3
3
+
1
4
  ### Version 2.10.2 (2015-04-23)
2
5
  - Updated Moment.js to 2.10.2
3
6
 
@@ -75,10 +78,3 @@
75
78
 
76
79
  ### Version 1.3.0 (2012-01-10)
77
80
  - Initial Release
78
-
79
-
80
-
81
-
82
-
83
-
84
-
@@ -79,3 +79,10 @@ Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2015-04-24 15:44:20 -0400
79
79
  Served asset /moment/fr.js - 200 OK (1ms)
80
80
  Started GET "/assets/moment.js" for 127.0.0.1 at 2015-04-24 15:44:20 -0400
81
81
  Served asset /moment.js - 200 OK (0ms)
82
+ Started GET "/assets/moment.js" for 127.0.0.1 at 2015-06-09 08:51:18 -0400
83
+ Compiled moment.js (1ms) (pid 83147)
84
+ Served asset /moment.js - 200 OK (13ms)
85
+ Started GET "/assets/moment/fr.js" for 127.0.0.1 at 2015-06-09 08:51:18 -0400
86
+ Served asset /moment/fr.js - 200 OK (2ms)
87
+ Started GET "/assets/moment.js" for 127.0.0.1 at 2015-06-09 08:51:18 -0400
88
+ Served asset /moment.js - 200 OK (0ms)
@@ -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(/utils_hooks__hooks.version = '2\.10\.2'/, @response.body)
11
+ assert_match(/utils_hooks__hooks.version = '2\.10\.3'/, @response.body)
12
12
  end
13
13
 
14
14
  test 'can access momentjs translation' do
@@ -16,4 +16,3 @@ class NavigationTest < ActionDispatch::IntegrationTest
16
16
  assert_response :success
17
17
  end
18
18
  end
19
-
@@ -1,5 +1,5 @@
1
1
  //! moment.js
2
- //! version : 2.10.2
2
+ //! version : 2.10.3
3
3
  //! authors : Tim Wood, Iskren Chernev, Moment.js contributors
4
4
  //! license : MIT
5
5
  //! momentjs.com
@@ -22,28 +22,12 @@
22
22
  hookCallback = callback;
23
23
  }
24
24
 
25
- function defaultParsingFlags() {
26
- // We need to deep clone this object.
27
- return {
28
- empty : false,
29
- unusedTokens : [],
30
- unusedInput : [],
31
- overflow : -2,
32
- charsLeftOver : 0,
33
- nullInput : false,
34
- invalidMonth : null,
35
- invalidFormat : false,
36
- userInvalidated : false,
37
- iso : false
38
- };
39
- }
40
-
41
25
  function isArray(input) {
42
26
  return Object.prototype.toString.call(input) === '[object Array]';
43
27
  }
44
28
 
45
29
  function isDate(input) {
46
- return Object.prototype.toString.call(input) === '[object Date]' || input instanceof Date;
30
+ return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
47
31
  }
48
32
 
49
33
  function map(arr, fn) {
@@ -80,21 +64,45 @@
80
64
  return createLocalOrUTC(input, format, locale, strict, true).utc();
81
65
  }
82
66
 
67
+ function defaultParsingFlags() {
68
+ // We need to deep clone this object.
69
+ return {
70
+ empty : false,
71
+ unusedTokens : [],
72
+ unusedInput : [],
73
+ overflow : -2,
74
+ charsLeftOver : 0,
75
+ nullInput : false,
76
+ invalidMonth : null,
77
+ invalidFormat : false,
78
+ userInvalidated : false,
79
+ iso : false
80
+ };
81
+ }
82
+
83
+ function getParsingFlags(m) {
84
+ if (m._pf == null) {
85
+ m._pf = defaultParsingFlags();
86
+ }
87
+ return m._pf;
88
+ }
89
+
83
90
  function valid__isValid(m) {
84
91
  if (m._isValid == null) {
92
+ var flags = getParsingFlags(m);
85
93
  m._isValid = !isNaN(m._d.getTime()) &&
86
- m._pf.overflow < 0 &&
87
- !m._pf.empty &&
88
- !m._pf.invalidMonth &&
89
- !m._pf.nullInput &&
90
- !m._pf.invalidFormat &&
91
- !m._pf.userInvalidated;
94
+ flags.overflow < 0 &&
95
+ !flags.empty &&
96
+ !flags.invalidMonth &&
97
+ !flags.nullInput &&
98
+ !flags.invalidFormat &&
99
+ !flags.userInvalidated;
92
100
 
93
101
  if (m._strict) {
94
102
  m._isValid = m._isValid &&
95
- m._pf.charsLeftOver === 0 &&
96
- m._pf.unusedTokens.length === 0 &&
97
- m._pf.bigHour === undefined;
103
+ flags.charsLeftOver === 0 &&
104
+ flags.unusedTokens.length === 0 &&
105
+ flags.bigHour === undefined;
98
106
  }
99
107
  }
100
108
  return m._isValid;
@@ -103,10 +111,10 @@
103
111
  function valid__createInvalid (flags) {
104
112
  var m = create_utc__createUTC(NaN);
105
113
  if (flags != null) {
106
- extend(m._pf, flags);
114
+ extend(getParsingFlags(m), flags);
107
115
  }
108
116
  else {
109
- m._pf.userInvalidated = true;
117
+ getParsingFlags(m).userInvalidated = true;
110
118
  }
111
119
 
112
120
  return m;
@@ -142,7 +150,7 @@
142
150
  to._offset = from._offset;
143
151
  }
144
152
  if (typeof from._pf !== 'undefined') {
145
- to._pf = from._pf;
153
+ to._pf = getParsingFlags(from);
146
154
  }
147
155
  if (typeof from._locale !== 'undefined') {
148
156
  to._locale = from._locale;
@@ -177,7 +185,7 @@
177
185
  }
178
186
 
179
187
  function isMoment (obj) {
180
- return obj instanceof Moment || (obj != null && hasOwnProp(obj, '_isAMomentObject'));
188
+ return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);
181
189
  }
182
190
 
183
191
  function toInt(argumentForCoercion) {
@@ -615,7 +623,7 @@
615
623
  if (month != null) {
616
624
  array[MONTH] = month;
617
625
  } else {
618
- config._pf.invalidMonth = input;
626
+ getParsingFlags(config).invalidMonth = input;
619
627
  }
620
628
  });
621
629
 
@@ -699,7 +707,7 @@
699
707
  var overflow;
700
708
  var a = m._a;
701
709
 
702
- if (a && m._pf.overflow === -2) {
710
+ if (a && getParsingFlags(m).overflow === -2) {
703
711
  overflow =
704
712
  a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :
705
713
  a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :
@@ -709,11 +717,11 @@
709
717
  a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :
710
718
  -1;
711
719
 
712
- if (m._pf._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
720
+ if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
713
721
  overflow = DATE;
714
722
  }
715
723
 
716
- m._pf.overflow = overflow;
724
+ getParsingFlags(m).overflow = overflow;
717
725
  }
718
726
 
719
727
  return m;
@@ -726,10 +734,12 @@
726
734
  }
727
735
 
728
736
  function deprecate(msg, fn) {
729
- var firstTime = true;
737
+ var firstTime = true,
738
+ msgWithStack = msg + '\n' + (new Error()).stack;
739
+
730
740
  return extend(function () {
731
741
  if (firstTime) {
732
- warn(msg);
742
+ warn(msgWithStack);
733
743
  firstTime = false;
734
744
  }
735
745
  return fn.apply(this, arguments);
@@ -774,7 +784,7 @@
774
784
  match = from_string__isoRegex.exec(string);
775
785
 
776
786
  if (match) {
777
- config._pf.iso = true;
787
+ getParsingFlags(config).iso = true;
778
788
  for (i = 0, l = isoDates.length; i < l; i++) {
779
789
  if (isoDates[i][1].exec(string)) {
780
790
  // match[5] should be 'T' or undefined
@@ -1054,7 +1064,7 @@
1054
1064
  yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
1055
1065
 
1056
1066
  if (config._dayOfYear > daysInYear(yearToUse)) {
1057
- config._pf._overflowDayOfYear = true;
1067
+ getParsingFlags(config)._overflowDayOfYear = true;
1058
1068
  }
1059
1069
 
1060
1070
  date = createUTCDate(yearToUse, 0, config._dayOfYear);
@@ -1150,7 +1160,7 @@
1150
1160
  }
1151
1161
 
1152
1162
  config._a = [];
1153
- config._pf.empty = true;
1163
+ getParsingFlags(config).empty = true;
1154
1164
 
1155
1165
  // This array is used to make a Date, either with `new Date` or `Date.UTC`
1156
1166
  var string = '' + config._i,
@@ -1166,7 +1176,7 @@
1166
1176
  if (parsedInput) {
1167
1177
  skipped = string.substr(0, string.indexOf(parsedInput));
1168
1178
  if (skipped.length > 0) {
1169
- config._pf.unusedInput.push(skipped);
1179
+ getParsingFlags(config).unusedInput.push(skipped);
1170
1180
  }
1171
1181
  string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
1172
1182
  totalParsedInputLength += parsedInput.length;
@@ -1174,27 +1184,29 @@
1174
1184
  // don't parse if it's not a known token
1175
1185
  if (formatTokenFunctions[token]) {
1176
1186
  if (parsedInput) {
1177
- config._pf.empty = false;
1187
+ getParsingFlags(config).empty = false;
1178
1188
  }
1179
1189
  else {
1180
- config._pf.unusedTokens.push(token);
1190
+ getParsingFlags(config).unusedTokens.push(token);
1181
1191
  }
1182
1192
  addTimeToArrayFromToken(token, parsedInput, config);
1183
1193
  }
1184
1194
  else if (config._strict && !parsedInput) {
1185
- config._pf.unusedTokens.push(token);
1195
+ getParsingFlags(config).unusedTokens.push(token);
1186
1196
  }
1187
1197
  }
1188
1198
 
1189
1199
  // add remaining unparsed input length to the string
1190
- config._pf.charsLeftOver = stringLength - totalParsedInputLength;
1200
+ getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;
1191
1201
  if (string.length > 0) {
1192
- config._pf.unusedInput.push(string);
1202
+ getParsingFlags(config).unusedInput.push(string);
1193
1203
  }
1194
1204
 
1195
1205
  // clear _12h flag if hour is <= 12
1196
- if (config._pf.bigHour === true && config._a[HOUR] <= 12) {
1197
- config._pf.bigHour = undefined;
1206
+ if (getParsingFlags(config).bigHour === true &&
1207
+ config._a[HOUR] <= 12 &&
1208
+ config._a[HOUR] > 0) {
1209
+ getParsingFlags(config).bigHour = undefined;
1198
1210
  }
1199
1211
  // handle meridiem
1200
1212
  config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);
@@ -1238,7 +1250,7 @@
1238
1250
  currentScore;
1239
1251
 
1240
1252
  if (config._f.length === 0) {
1241
- config._pf.invalidFormat = true;
1253
+ getParsingFlags(config).invalidFormat = true;
1242
1254
  config._d = new Date(NaN);
1243
1255
  return;
1244
1256
  }
@@ -1249,7 +1261,6 @@
1249
1261
  if (config._useUTC != null) {
1250
1262
  tempConfig._useUTC = config._useUTC;
1251
1263
  }
1252
- tempConfig._pf = defaultParsingFlags();
1253
1264
  tempConfig._f = config._f[i];
1254
1265
  configFromStringAndFormat(tempConfig);
1255
1266
 
@@ -1258,12 +1269,12 @@
1258
1269
  }
1259
1270
 
1260
1271
  // if there is any input that was not parsed add a penalty for that format
1261
- currentScore += tempConfig._pf.charsLeftOver;
1272
+ currentScore += getParsingFlags(tempConfig).charsLeftOver;
1262
1273
 
1263
1274
  //or tokens
1264
- currentScore += tempConfig._pf.unusedTokens.length * 10;
1275
+ currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
1265
1276
 
1266
- tempConfig._pf.score = currentScore;
1277
+ getParsingFlags(tempConfig).score = currentScore;
1267
1278
 
1268
1279
  if (scoreToBeat == null || currentScore < scoreToBeat) {
1269
1280
  scoreToBeat = currentScore;
@@ -1306,6 +1317,8 @@
1306
1317
  configFromStringAndArray(config);
1307
1318
  } else if (format) {
1308
1319
  configFromStringAndFormat(config);
1320
+ } else if (isDate(input)) {
1321
+ config._d = input;
1309
1322
  } else {
1310
1323
  configFromInput(config);
1311
1324
  }
@@ -1358,7 +1371,6 @@
1358
1371
  c._i = input;
1359
1372
  c._f = format;
1360
1373
  c._strict = strict;
1361
- c._pf = defaultParsingFlags();
1362
1374
 
1363
1375
  return createFromConfig(c);
1364
1376
  }
@@ -1932,6 +1944,9 @@
1932
1944
  }
1933
1945
 
1934
1946
  function from (time, withoutSuffix) {
1947
+ if (!this.isValid()) {
1948
+ return this.localeData().invalidDate();
1949
+ }
1935
1950
  return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
1936
1951
  }
1937
1952
 
@@ -1939,6 +1954,17 @@
1939
1954
  return this.from(local__createLocal(), withoutSuffix);
1940
1955
  }
1941
1956
 
1957
+ function to (time, withoutSuffix) {
1958
+ if (!this.isValid()) {
1959
+ return this.localeData().invalidDate();
1960
+ }
1961
+ return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);
1962
+ }
1963
+
1964
+ function toNow (withoutSuffix) {
1965
+ return this.to(local__createLocal(), withoutSuffix);
1966
+ }
1967
+
1942
1968
  function locale (key) {
1943
1969
  var newLocaleData;
1944
1970
 
@@ -2041,11 +2067,11 @@
2041
2067
  }
2042
2068
 
2043
2069
  function parsingFlags () {
2044
- return extend({}, this._pf);
2070
+ return extend({}, getParsingFlags(this));
2045
2071
  }
2046
2072
 
2047
2073
  function invalidAt () {
2048
- return this._pf.overflow;
2074
+ return getParsingFlags(this).overflow;
2049
2075
  }
2050
2076
 
2051
2077
  addFormatToken(0, ['gg', 2], 0, function () {
@@ -2196,7 +2222,7 @@
2196
2222
  if (weekday != null) {
2197
2223
  week.d = weekday;
2198
2224
  } else {
2199
- config._pf.invalidWeekday = input;
2225
+ getParsingFlags(config).invalidWeekday = input;
2200
2226
  }
2201
2227
  });
2202
2228
 
@@ -2321,7 +2347,7 @@
2321
2347
  });
2322
2348
  addParseToken(['h', 'hh'], function (input, array, config) {
2323
2349
  array[HOUR] = toInt(input);
2324
- config._pf.bigHour = true;
2350
+ getParsingFlags(config).bigHour = true;
2325
2351
  });
2326
2352
 
2327
2353
  // LOCALES
@@ -2438,6 +2464,8 @@
2438
2464
  momentPrototype__proto.format = format;
2439
2465
  momentPrototype__proto.from = from;
2440
2466
  momentPrototype__proto.fromNow = fromNow;
2467
+ momentPrototype__proto.to = to;
2468
+ momentPrototype__proto.toNow = toNow;
2441
2469
  momentPrototype__proto.get = getSet;
2442
2470
  momentPrototype__proto.invalidAt = invalidAt;
2443
2471
  momentPrototype__proto.isAfter = isAfter;
@@ -2626,7 +2654,7 @@
2626
2654
  }
2627
2655
  // Lenient ordinal parsing accepts just a number in addition to
2628
2656
  // number + (possibly) stuff coming from _ordinalParseLenient.
2629
- this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + /\d{1,2}/.source);
2657
+ this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source);
2630
2658
  }
2631
2659
 
2632
2660
  var prototype__proto = Locale.prototype;
@@ -2843,13 +2871,13 @@
2843
2871
  // handle milliseconds separately because of floating point math errors (issue #1867)
2844
2872
  days = this._days + Math.round(yearsToDays(this._months / 12));
2845
2873
  switch (units) {
2846
- case 'week' : return days / 7 + milliseconds / 6048e5;
2847
- case 'day' : return days + milliseconds / 864e5;
2848
- case 'hour' : return days * 24 + milliseconds / 36e5;
2849
- case 'minute' : return days * 24 * 60 + milliseconds / 6e4;
2850
- case 'second' : return days * 24 * 60 * 60 + milliseconds / 1000;
2874
+ case 'week' : return days / 7 + milliseconds / 6048e5;
2875
+ case 'day' : return days + milliseconds / 864e5;
2876
+ case 'hour' : return days * 24 + milliseconds / 36e5;
2877
+ case 'minute' : return days * 1440 + milliseconds / 6e4;
2878
+ case 'second' : return days * 86400 + milliseconds / 1000;
2851
2879
  // Math.floor prevents floating point math errors here
2852
- case 'millisecond': return Math.floor(days * 24 * 60 * 60 * 1000) + milliseconds;
2880
+ case 'millisecond': return Math.floor(days * 864e5) + milliseconds;
2853
2881
  default: throw new Error('Unknown unit ' + units);
2854
2882
  }
2855
2883
  }
@@ -3050,7 +3078,7 @@
3050
3078
  // Side effect imports
3051
3079
 
3052
3080
 
3053
- utils_hooks__hooks.version = '2.10.2';
3081
+ utils_hooks__hooks.version = '2.10.3';
3054
3082
 
3055
3083
  setHookCallback(local__createLocal);
3056
3084
 
@@ -3080,4 +3108,4 @@
3080
3108
 
3081
3109
  return _moment;
3082
3110
 
3083
- }));
3111
+ }));