sugar-rails 1.3.4 → 1.3.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (24) hide show
  1. data/copy_release.sh +28 -0
  2. data/lib/sugar/rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/precompiled/development/array.js +6 -4
  4. data/vendor/assets/javascripts/precompiled/development/date.js +45 -31
  5. data/vendor/assets/javascripts/precompiled/development/date_locales.js +274 -47
  6. data/vendor/assets/javascripts/precompiled/development/number.js +2 -2
  7. data/vendor/assets/javascripts/precompiled/development/object.js +2 -2
  8. data/vendor/assets/javascripts/precompiled/minified/array.js +15 -15
  9. data/vendor/assets/javascripts/precompiled/minified/core.js +9 -9
  10. data/vendor/assets/javascripts/precompiled/minified/date.js +40 -40
  11. data/vendor/assets/javascripts/precompiled/minified/date_locales.js +33 -22
  12. data/vendor/assets/javascripts/precompiled/minified/date_ranges.js +2 -2
  13. data/vendor/assets/javascripts/precompiled/minified/es5.js +8 -8
  14. data/vendor/assets/javascripts/precompiled/minified/function.js +4 -4
  15. data/vendor/assets/javascripts/precompiled/minified/inflections.js +5 -5
  16. data/vendor/assets/javascripts/precompiled/minified/language.js +5 -5
  17. data/vendor/assets/javascripts/precompiled/minified/number.js +5 -5
  18. data/vendor/assets/javascripts/precompiled/minified/object.js +5 -5
  19. data/vendor/assets/javascripts/precompiled/minified/regexp.js +2 -2
  20. data/vendor/assets/javascripts/precompiled/minified/string.js +11 -11
  21. data/vendor/assets/javascripts/sugar-development.js +330 -87
  22. data/vendor/assets/javascripts/sugar-full.js +145 -134
  23. data/vendor/assets/javascripts/sugar.js +102 -102
  24. metadata +5 -4
data/copy_release.sh ADDED
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -e
4
+
5
+ # assign the release version to copy
6
+ release=$1
7
+
8
+ if [ -z $release ]; then
9
+ echo "You must enter a release version." >&2
10
+ exit 1
11
+ fi
12
+
13
+ # working paths
14
+ copy_from="../Sugar/release"
15
+ copy_to="vendor/assets/javascripts"
16
+
17
+ # move the 'precompiled' directory
18
+ cp -R $copy_from/$release/precompiled $copy_to
19
+
20
+ # move the full scripts
21
+ cp $copy_from/$release/sugar-$release-full.development.js $copy_to/sugar-development.js
22
+ cp $copy_from/$release/sugar-$release-full.min.js $copy_to/sugar-full.js
23
+ cp $copy_from/$release/sugar-$release.min.js $copy_to/sugar.js
24
+
25
+ # update the version identifier
26
+ sed -i "" "s/SUGARJS_VERSION = \"[0-9\.]*\"/SUGARJS_VERSION = \"$release\"/" lib/sugar/rails/version.rb
27
+
28
+ echo "Successfully copied Sugar $release to the sugar-rails"
@@ -1,6 +1,6 @@
1
1
  module Sugar
2
2
  module Rails
3
- VERSION = "1.3.4"
4
- SUGARJS_VERSION = "1.3.4"
3
+ VERSION = "1.3.5"
4
+ SUGARJS_VERSION = "1.3.5"
5
5
  end
6
6
  end
@@ -314,13 +314,15 @@
314
314
  *
315
315
  ***/
316
316
  'create': function() {
317
- var result = []
317
+ var result = [], tmp;
318
318
  multiArgs(arguments, function(a) {
319
319
  if(isObjectPrimitive(a)) {
320
- result = result.concat(array.prototype.slice.call(a));
321
- } else {
322
- result.push(a);
320
+ tmp = array.prototype.slice.call(a);
321
+ if(tmp.length > 0) {
322
+ a = tmp;
323
+ }
323
324
  }
325
+ result = result.concat(a);
324
326
  });
325
327
  return result;
326
328
  }
@@ -90,6 +90,7 @@
90
90
  {
91
91
  token: '[Tt]{1,2}',
92
92
  format: function(d, loc, n, format) {
93
+ if(loc['ampm'].length == 0) return '';
93
94
  var hours = callDateGet(d, 'Hours');
94
95
  var str = loc['ampm'][floor(hours / 12)];
95
96
  if(format.length === 1) str = str.slice(0,1);
@@ -246,7 +247,7 @@
246
247
  return English['units'][this['units'].indexOf(n) % 8];
247
248
  },
248
249
 
249
- relative: function(adu) {
250
+ getRelativeFormat: function(adu) {
250
251
  return this.convertAdjustedToFormat(adu, adu[2] > 0 ? 'future' : 'past');
251
252
  },
252
253
 
@@ -264,25 +265,23 @@
264
265
  },
265
266
 
266
267
  matchPM: function(str) {
267
- return str === this['ampm'][1];
268
+ return str && str === this['ampm'][1];
268
269
  },
269
270
 
270
- convertAdjustedToFormat: function(adu, format) {
271
- var num = adu[0], u = adu[1], ms = adu[2], sign, unit, last, mult;
272
- if(this['code'] == 'ru') {
273
- last = num.toString().slice(-1);
274
- switch(true) {
275
- case last == 1: mult = 1; break;
276
- case last >= 2 && last <= 4: mult = 2; break;
277
- default: mult = 3;
278
- }
279
- } else {
280
- mult = this['plural'] && num > 1 ? 1 : 0;
271
+ convertAdjustedToFormat: function(adu, mode) {
272
+ var sign, unit, mult,
273
+ num = adu[0],
274
+ u = adu[1],
275
+ ms = adu[2],
276
+ format = this[mode] || this['relative'];
277
+ if(isFunction(format)) {
278
+ return format.call(this, num, u, ms, mode);
281
279
  }
280
+ mult = this['plural'] && num > 1 ? 1 : 0;
282
281
  unit = this['units'][mult * 8 + u] || this['units'][u];
283
282
  if(this['capitalizeUnit']) unit = simpleCapitalize(unit);
284
283
  sign = this['modifiers'].filter(function(m) { return m.name == 'sign' && m.value == (ms > 0 ? 1 : -1); })[0];
285
- return this[format].replace(/\{(.*?)\}/g, function(full, match) {
284
+ return format.replace(/\{(.*?)\}/g, function(full, match) {
286
285
  switch(match) {
287
286
  case 'num': return num;
288
287
  case 'unit': return unit;
@@ -300,9 +299,13 @@
300
299
 
301
300
  src = src.replace(/\s+/g, '[-,. ]*');
302
301
  src = src.replace(/\{([^,]+?)\}/g, function(all, k) {
303
- var opt = k.match(/\?$/), slice = k.match(/(\d)(?:-(\d))?/), nc = k.match(/^\d+$/), key = k.replace(/[^a-z]+$/, ''), value, arr;
302
+ var value, arr, result,
303
+ opt = k.match(/\?$/),
304
+ nc = k.match(/^(\d+)\??$/),
305
+ slice = k.match(/(\d)(?:-(\d))?/),
306
+ key = k.replace(/[^a-z]+$/, '');
304
307
  if(nc) {
305
- value = loc['optionals'][nc[0]];
308
+ value = loc['tokens'][nc[1]];
306
309
  } else if(loc[key]) {
307
310
  value = loc[key];
308
311
  } else if(loc[key + 's']) {
@@ -322,13 +325,17 @@
322
325
  value = arrayToAlternates(value);
323
326
  }
324
327
  if(nc) {
325
- return '(?:' + value + ')?';
328
+ result = '(?:' + value + ')';
326
329
  } else {
327
330
  if(!match) {
328
331
  to.push(key);
329
332
  }
330
- return '(' + value + ')' + (opt ? '?' : '');
333
+ result = '(' + value + ')';
331
334
  }
335
+ if(opt) {
336
+ result += '?';
337
+ }
338
+ return result;
332
339
  });
333
340
  if(allowsTime) {
334
341
  time = prepareTime(RequiredTime, loc, iso);
@@ -423,7 +430,7 @@
423
430
  // Initialize the locale
424
431
  loc = new Localization(set);
425
432
  initializeField('modifiers');
426
- 'months,weekdays,units,numbers,articles,optionals,timeMarker,ampm,timeSuffixes,dateParse,timeParse'.split(',').forEach(initializeField);
433
+ 'months,weekdays,units,numbers,articles,tokens,timeMarker,ampm,timeSuffixes,dateParse,timeParse'.split(',').forEach(initializeField);
427
434
 
428
435
  canAbbreviate = !loc['monthSuffix'];
429
436
 
@@ -571,7 +578,7 @@
571
578
  d.utc(forceUTC);
572
579
 
573
580
  if(isDate(f)) {
574
- d = f.clone();
581
+ d = new date(f.getTime());
575
582
  } else if(isNumber(f)) {
576
583
  d = new date(f);
577
584
  } else if(isObject(f)) {
@@ -824,7 +831,7 @@
824
831
  adu[1] = 1;
825
832
  adu[0] = 1;
826
833
  }
827
- return loc.relative(adu);
834
+ return loc.getRelativeFormat(adu);
828
835
  }
829
836
 
830
837
  format = format || 'long';
@@ -891,6 +898,10 @@
891
898
  return isDefined(getParam(key));
892
899
  }
893
900
 
901
+ function uniqueParamExists(key, isDay) {
902
+ return paramExists(key) || (isDay && paramExists('weekday'));
903
+ }
904
+
894
905
  function canDisambiguate() {
895
906
  var now = new date;
896
907
  return (prefer === -1 && d > now) || (prefer === 1 && d < now);
@@ -915,7 +926,7 @@
915
926
  // as setting hour: 3, minute: 345, etc.
916
927
  iterateOverObject(DateUnitsReversed, function(i,u) {
917
928
  var isDay = u.unit === 'day';
918
- if(paramExists(u.unit) || (isDay && paramExists('weekday'))) {
929
+ if(uniqueParamExists(u.unit, isDay)) {
919
930
  params.specificity = u.unit;
920
931
  specificityIndex = +i;
921
932
  return false;
@@ -925,6 +936,7 @@
925
936
  }
926
937
  });
927
938
 
939
+
928
940
  // Now actually set or advance the date in order, higher units first.
929
941
  DateUnits.forEach(function(u,i) {
930
942
  var unit = u.unit, method = u.method, higherUnit = DateUnits[i - 1], value;
@@ -959,6 +971,7 @@
959
971
  }
960
972
  });
961
973
 
974
+
962
975
  // If a weekday is included in the params, set it ahead of time and set the params
963
976
  // to reflect the updated date so that resetting works properly.
964
977
  if(!advance && !paramExists('day') && paramExists('weekday')) {
@@ -969,7 +982,7 @@
969
982
  if(canDisambiguate()) {
970
983
  iterateOverObject(DateUnitsReversed.slice(specificityIndex + 1), function(i,u) {
971
984
  var ambiguous = u.ambiguous || (u.unit === 'week' && paramExists('weekday'));
972
- if(ambiguous && !paramExists(u.unit)) {
985
+ if(ambiguous && !uniqueParamExists(u.unit, u.unit === 'day')) {
973
986
  d[u.addMethod](prefer);
974
987
  return false;
975
988
  }
@@ -2139,7 +2152,7 @@
2139
2152
  'units': 'millisecond:|s,second:|s,minute:|s,hour:|s,day:|s,week:|s,month:|s,year:|s',
2140
2153
  'numbers': 'one,two,three,four,five,six,seven,eight,nine,ten',
2141
2154
  'articles': 'a,an,the',
2142
- 'optionals': 'the,st|nd|rd|th,of',
2155
+ 'tokens': 'the,st|nd|rd|th,of',
2143
2156
  'short': '{Month} {d}, {yyyy}',
2144
2157
  'long': '{Month} {d}, {yyyy} {h}:{mm}{tt}',
2145
2158
  'full': '{Weekday} {Month} {d}, {yyyy} {h}:{mm}:{ss}{tt}',
@@ -2151,7 +2164,7 @@
2151
2164
  { 'name': 'day', 'src': 'today', 'value': 0 },
2152
2165
  { 'name': 'day', 'src': 'tomorrow', 'value': 1 },
2153
2166
  { 'name': 'sign', 'src': 'ago|before', 'value': -1 },
2154
- { 'name': 'sign', 'src': 'from now|after|from|in', 'value': 1 },
2167
+ { 'name': 'sign', 'src': 'from now|after|from|in|later', 'value': 1 },
2155
2168
  { 'name': 'edge', 'src': 'last day', 'value': -2 },
2156
2169
  { 'name': 'edge', 'src': 'end', 'value': -1 },
2157
2170
  { 'name': 'edge', 'src': 'first day|beginning', 'value': 1 },
@@ -2162,20 +2175,21 @@
2162
2175
  'dateParse': [
2163
2176
  '{num} {unit} {sign}',
2164
2177
  '{sign} {num} {unit}',
2165
- '{num} {unit=4-5} {sign} {day}',
2166
2178
  '{month} {year}',
2167
2179
  '{shift} {unit=5-7}',
2168
- '{0} {edge} of {shift?} {unit=4-7?}{month?}{year?}'
2180
+ '{0?} {date}{1}',
2181
+ '{0?} {edge} of {shift?} {unit=4-7?}{month?}{year?}'
2169
2182
  ],
2170
2183
  'timeParse': [
2171
2184
  '{0} {num}{1} {day} of {month} {year?}',
2172
- '{weekday?} {month} {date}{1} {year?}',
2185
+ '{weekday?} {month} {date}{1?} {year?}',
2173
2186
  '{date} {month} {year}',
2174
2187
  '{shift} {weekday}',
2175
2188
  '{shift} week {weekday}',
2176
- '{weekday} {2} {shift} week',
2177
- '{0} {date}{1} of {month}',
2178
- '{0}{month?} {date?}{1} of {shift} {unit=6-7}'
2189
+ '{weekday} {2?} {shift} week',
2190
+ '{num} {unit=4-5} {sign} {day}',
2191
+ '{0?} {date}{1} of {month}',
2192
+ '{0?}{month?} {date?}{1?} of {shift} {unit=6-7}'
2179
2193
  ]
2180
2194
  });
2181
2195