fullcalendar.io-rails 3.3.0 → 3.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fff0c0d29fd03d1936961495bfeca8ee0954dbb7
4
- data.tar.gz: f126510b73657173511b0d60ef8733f76cc5678e
3
+ metadata.gz: 183d16d2fc0cd0013d71ab3931e407e1c462d825
4
+ data.tar.gz: c240d22deeced6d3ed07fa23f1c2fd5773146531
5
5
  SHA512:
6
- metadata.gz: c15e22c3fffaea4c7c253fff9090216f5954000c18cc5668f37e1450c0db57ed281e4354fbf08ade8552cf26f232f55023609e1bec77f45a32c92a734b04c21d
7
- data.tar.gz: bbf9a890a7af974c9f87978cfdf0438a7f53e198b057cdc7fb9b24fa5be55b0a42f74c965bbe049d0090b7b4b15671478b43ac32c0729991378fc70b3dd0d23e
6
+ metadata.gz: 647278a51aa2ad0b2416cd7e6f2be82499e04a06eeaa3f40a7950d02884b75538d6d2dd0d5567313053c20c9c4b3cf45f4c94d6862355def7fa66bd6318f4f9f
7
+ data.tar.gz: eec81bf6e5a4038afb977bb8d725751159582fbe657ae95cdc7cde4598be179c7a54a6caed08d97872e0d642ef02d16d14f5adac7f001b51ca13471dc825d3c4
@@ -1,5 +1,5 @@
1
1
  module Fullcalendario
2
2
  module Rails
3
- VERSION = "3.3.0"
3
+ VERSION = "3.3.1"
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * FullCalendar v3.3.0
2
+ * FullCalendar v3.3.1
3
3
  * Docs & License: https://fullcalendar.io/
4
4
  * (c) 2017 Adam Shaw
5
5
  */
@@ -19,11 +19,11 @@
19
19
  ;;
20
20
 
21
21
  var FC = $.fullCalendar = {
22
- version: "3.3.0",
22
+ version: "3.3.1",
23
23
  // When introducing internal API incompatibilities (where fullcalendar plugins would break),
24
24
  // the minor version of the calendar should be upped (ex: 2.7.2 -> 2.8.0)
25
25
  // and the below integer should be incremented.
26
- internalApiVersion: 8
26
+ internalApiVersion: 9
27
27
  };
28
28
  var fcViews = FC.views = {};
29
29
 
@@ -277,6 +277,7 @@ function getOuterRect(el, origin) {
277
277
  // Queries the area within the margin/border/scrollbars of a jQuery element. Does not go within the padding.
278
278
  // Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive).
279
279
  // Origin is optional.
280
+ // WARNING: given element can't have borders
280
281
  // NOTE: should use clientLeft/clientTop, but very unreliable cross-browser.
281
282
  function getClientRect(el, origin) {
282
283
  var offset = el.offset();
@@ -313,10 +314,11 @@ function getContentRect(el, origin) {
313
314
 
314
315
 
315
316
  // Returns the computed left/right/top/bottom scrollbar widths for the given jQuery element.
317
+ // WARNING: given element can't have borders (which will cause offsetWidth/offsetHeight to be larger).
316
318
  // NOTE: should use clientLeft/clientTop, but very unreliable cross-browser.
317
319
  function getScrollbarWidths(el) {
318
- var leftRightWidth = el.innerWidth() - el[0].clientWidth; // the paddings cancel out, leaving the scrollbars
319
- var bottomWidth = el.innerHeight() - el[0].clientHeight; // "
320
+ var leftRightWidth = el[0].offsetWidth - el[0].clientWidth;
321
+ var bottomWidth = el[0].offsetHeight - el[0].clientHeight;
320
322
  var widths;
321
323
 
322
324
  leftRightWidth = sanitizeScrollbarWidth(leftRightWidth);
@@ -680,6 +682,19 @@ function computeGreatestUnit(start, end) {
680
682
  }
681
683
 
682
684
 
685
+ // like computeGreatestUnit, but has special abilities to interpret the source input for clues
686
+ function computeDurationGreatestUnit(duration, durationInput) {
687
+ var unit = computeGreatestUnit(duration);
688
+
689
+ // prevent days:7 from being interpreted as a week
690
+ if (unit === 'week' && typeof durationInput === 'object' && durationInput.days) {
691
+ unit = 'day';
692
+ }
693
+
694
+ return unit;
695
+ }
696
+
697
+
683
698
  // Computes the number of units (like "hours") in the given range.
684
699
  // Range can be a {start,end} object, separate start/end args, or a Duration.
685
700
  // Results are based on Moment's .as() and .diff() methods, so results can depend on internal handling
@@ -8960,7 +8975,7 @@ var View = FC.View = Class.extend(EmitterMixin, ListenerMixin, {
8960
8975
  var isReset = this.isDateSet;
8961
8976
 
8962
8977
  this.isDateSet = true;
8963
- this.handleDate(date, isReset);
8978
+ this.handleRawDate(date);
8964
8979
  this.trigger(isReset ? 'dateReset' : 'dateSet', date);
8965
8980
  },
8966
8981
 
@@ -8978,12 +8993,31 @@ var View = FC.View = Class.extend(EmitterMixin, ListenerMixin, {
8978
8993
  // -----------------------------------------------------------------------------------------------------------------
8979
8994
 
8980
8995
 
8981
- handleDate: function(date, isReset) {
8996
+ handleRawDate: function(date) {
8997
+ var _this = this;
8998
+ var dateProfile = this.buildDateProfile(date, null, true); // forceToValid=true
8999
+
9000
+ if (!this.isSameDateProfile(dateProfile)) { // real change
9001
+ this.handleDate(dateProfile);
9002
+ }
9003
+ else {
9004
+ // View might have no date change, but still needs to render (because of a view unrender/rerender).
9005
+ // Wait for possible queued unrenders. TODO: refactor.
9006
+ this.dateRenderQueue.add(function() {
9007
+ if (!_this.isDateRendered) {
9008
+ _this.handleDate(dateProfile);
9009
+ }
9010
+ });
9011
+ }
9012
+ },
9013
+
9014
+
9015
+ handleDate: function(dateProfile) {
8982
9016
  var _this = this;
8983
9017
 
8984
9018
  this.unbindEvents(); // will do nothing if not already bound
8985
- this.requestDateRender(date).then(function() {
8986
- // wish we could start earlier, but setRangeFromDate needs to execute first
9019
+ this.requestDateRender(dateProfile).then(function() {
9020
+ // wish we could start earlier, but setDateProfile needs to execute first
8987
9021
  _this.bindEvents(); // will request events
8988
9022
  });
8989
9023
  },
@@ -8999,12 +9033,12 @@ var View = FC.View = Class.extend(EmitterMixin, ListenerMixin, {
8999
9033
  // -----------------------------------------------------------------------------------------------------------------
9000
9034
 
9001
9035
 
9002
- // if date not specified, uses current
9003
- requestDateRender: function(date) {
9036
+ // if dateProfile not specified, uses current
9037
+ requestDateRender: function(dateProfile) {
9004
9038
  var _this = this;
9005
9039
 
9006
9040
  return this.dateRenderQueue.add(function() {
9007
- return _this.executeDateRender(date);
9041
+ return _this.executeDateRender(dateProfile);
9008
9042
  });
9009
9043
  },
9010
9044
 
@@ -9022,50 +9056,46 @@ var View = FC.View = Class.extend(EmitterMixin, ListenerMixin, {
9022
9056
  // -----------------------------------------------------------------------------------------------------------------
9023
9057
 
9024
9058
 
9025
- // if date not specified, uses current
9026
- executeDateRender: function(date) {
9059
+ // if dateProfile not specified, uses current
9060
+ executeDateRender: function(dateProfile) {
9027
9061
  var _this = this;
9028
- var rangeChanged = false;
9029
9062
 
9030
- if (date) {
9031
- rangeChanged = _this.setRangeFromDate(date);
9063
+ if (dateProfile) {
9064
+ _this.setDateProfile(dateProfile);
9032
9065
  }
9033
9066
 
9034
- if (!date || rangeChanged || !_this.isDateRendered) { // should render?
9067
+ this.updateTitle();
9068
+ this.calendar.updateToolbarButtons();
9035
9069
 
9036
- // if rendering a new date, reset scroll to initial state (scrollTime)
9037
- if (date) {
9038
- this.captureInitialScroll();
9039
- }
9040
- else {
9041
- this.captureScroll(); // a rerender of the current date
9042
- }
9070
+ // if rendering a new date, reset scroll to initial state (scrollTime)
9071
+ if (dateProfile) {
9072
+ this.captureInitialScroll();
9073
+ }
9074
+ else {
9075
+ this.captureScroll(); // a rerender of the current date
9076
+ }
9043
9077
 
9044
- this.freezeHeight();
9078
+ this.freezeHeight();
9045
9079
 
9046
- // potential issue: date-unrendering will happen with the *new* range
9047
- return this.executeDateUnrender().then(function() {
9080
+ // potential issue: date-unrendering will happen with the *new* range
9081
+ return this.executeDateUnrender().then(function() {
9048
9082
 
9049
- if (_this.render) {
9050
- _this.render(); // TODO: deprecate
9051
- }
9083
+ if (_this.render) {
9084
+ _this.render(); // TODO: deprecate
9085
+ }
9052
9086
 
9053
- _this.renderDates();
9054
- _this.updateSize();
9055
- _this.renderBusinessHours(); // might need coordinates, so should go after updateSize()
9056
- _this.startNowIndicator();
9087
+ _this.renderDates();
9088
+ _this.updateSize();
9089
+ _this.renderBusinessHours(); // might need coordinates, so should go after updateSize()
9090
+ _this.startNowIndicator();
9057
9091
 
9058
- _this.thawHeight();
9059
- _this.releaseScroll();
9092
+ _this.thawHeight();
9093
+ _this.releaseScroll();
9060
9094
 
9061
- _this.isDateRendered = true;
9062
- _this.onDateRender();
9063
- _this.trigger('dateRender');
9064
- });
9065
- }
9066
- else {
9067
- return Promise.resolve();
9068
- }
9095
+ _this.isDateRendered = true;
9096
+ _this.onDateRender();
9097
+ _this.trigger('dateRender');
9098
+ });
9069
9099
  },
9070
9100
 
9071
9101
 
@@ -10077,63 +10107,51 @@ View.mixin({
10077
10107
  ------------------------------------------------------------------------------------------------------------------*/
10078
10108
 
10079
10109
 
10080
- // Updates all internal dates/ranges for eventual rendering around the given date.
10081
- // Returns a boolean about whether there was some sort of change.
10082
- setRangeFromDate: function(date) {
10083
-
10084
- var rangeInfo = this.buildRangeInfo(date);
10085
-
10086
- // some sort of change? (TODO: compare other ranges too?)
10087
- if (!this.activeRange || !isRangesEqual(this.activeRange, rangeInfo.activeRange)) {
10088
-
10089
- this.currentRange = rangeInfo.currentRange;
10090
- this.currentRangeUnit = rangeInfo.currentRangeUnit;
10091
- this.renderRange = rangeInfo.renderRange;
10092
- this.activeRange = rangeInfo.activeRange;
10093
- this.validRange = rangeInfo.validRange;
10094
- this.dateIncrement = rangeInfo.dateIncrement;
10095
- this.currentDate = rangeInfo.date;
10096
- this.minTime = rangeInfo.minTime;
10097
- this.maxTime = rangeInfo.maxTime;
10110
+ isSameDateProfile: function(dateProfile) {
10111
+ return this.activeRange && isRangesEqual(this.activeRange, dateProfile.activeRange);
10112
+ },
10098
10113
 
10099
- // DEPRECATED, but we need to keep it updated
10100
- this.start = rangeInfo.activeRange.start;
10101
- this.end = rangeInfo.activeRange.end;
10102
- this.intervalStart = rangeInfo.currentRange.start;
10103
- this.intervalEnd = rangeInfo.currentRange.end;
10104
10114
 
10105
- this.updateTitle();
10106
- this.calendar.updateToolbarButtons();
10115
+ setDateProfile: function(dateProfile) {
10116
+ this.currentRange = dateProfile.currentRange;
10117
+ this.currentRangeUnit = dateProfile.currentRangeUnit;
10118
+ this.renderRange = dateProfile.renderRange;
10119
+ this.activeRange = dateProfile.activeRange;
10120
+ this.validRange = dateProfile.validRange;
10121
+ this.dateIncrement = dateProfile.dateIncrement;
10122
+ this.currentDate = dateProfile.date;
10123
+ this.minTime = dateProfile.minTime;
10124
+ this.maxTime = dateProfile.maxTime;
10107
10125
 
10108
- return true;
10109
- }
10110
-
10111
- return false;
10126
+ // DEPRECATED, but we need to keep it updated
10127
+ this.start = dateProfile.activeRange.start;
10128
+ this.end = dateProfile.activeRange.end;
10129
+ this.intervalStart = dateProfile.currentRange.start;
10130
+ this.intervalEnd = dateProfile.currentRange.end;
10112
10131
  },
10113
10132
 
10114
10133
 
10115
10134
  // Builds a structure with info about what the dates/ranges will be for the "prev" view.
10116
- buildPrevRangeInfo: function(date) {
10135
+ buildPrevDateProfile: function(date) {
10117
10136
  var prevDate = date.clone().startOf(this.currentRangeUnit).subtract(this.dateIncrement);
10118
10137
 
10119
- return this.buildRangeInfo(prevDate, -1);
10138
+ return this.buildDateProfile(prevDate, -1);
10120
10139
  },
10121
10140
 
10122
10141
 
10123
10142
  // Builds a structure with info about what the dates/ranges will be for the "next" view.
10124
- buildNextRangeInfo: function(date) {
10143
+ buildNextDateProfile: function(date) {
10125
10144
  var nextDate = date.clone().startOf(this.currentRangeUnit).add(this.dateIncrement);
10126
10145
 
10127
- return this.buildRangeInfo(nextDate, 1);
10146
+ return this.buildDateProfile(nextDate, 1);
10128
10147
  },
10129
10148
 
10130
10149
 
10131
10150
  // Builds a structure holding dates/ranges for rendering around the given date.
10132
10151
  // Optional direction param indicates whether the date is being incremented/decremented
10133
10152
  // from its previous value. decremented = -1, incremented = 1 (default).
10134
- buildRangeInfo: function(givenDate, direction) {
10153
+ buildDateProfile: function(date, direction, forceToValid) {
10135
10154
  var validRange = this.buildValidRange();
10136
- var constrainedDate = constrainDate(givenDate, validRange);
10137
10155
  var minTime = null;
10138
10156
  var maxTime = null;
10139
10157
  var currentInfo;
@@ -10141,7 +10159,11 @@ View.mixin({
10141
10159
  var activeRange;
10142
10160
  var isValid;
10143
10161
 
10144
- currentInfo = this.buildCurrentRangeInfo(constrainedDate, direction);
10162
+ if (forceToValid) {
10163
+ date = constrainDate(date, validRange);
10164
+ }
10165
+
10166
+ currentInfo = this.buildCurrentRangeInfo(date, direction);
10145
10167
  renderRange = this.buildRenderRange(currentInfo.range, currentInfo.unit);
10146
10168
  activeRange = cloneRange(renderRange);
10147
10169
 
@@ -10154,12 +10176,11 @@ View.mixin({
10154
10176
  this.adjustActiveRange(activeRange, minTime, maxTime);
10155
10177
 
10156
10178
  activeRange = constrainRange(activeRange, validRange);
10157
- constrainedDate = constrainDate(constrainedDate, activeRange);
10179
+ date = constrainDate(date, activeRange);
10158
10180
 
10159
10181
  // it's invalid if the originally requested date is not contained,
10160
10182
  // or if the range is completely outside of the valid range.
10161
- isValid = isDateWithinRange(givenDate, currentInfo.range) &&
10162
- doRangesIntersect(currentInfo.range, validRange);
10183
+ isValid = doRangesIntersect(currentInfo.range, validRange);
10163
10184
 
10164
10185
  return {
10165
10186
  validRange: validRange,
@@ -10170,7 +10191,7 @@ View.mixin({
10170
10191
  minTime: minTime,
10171
10192
  maxTime: maxTime,
10172
10193
  isValid: isValid,
10173
- date: constrainedDate,
10194
+ date: date,
10174
10195
  dateIncrement: this.buildDateIncrement(currentInfo.duration)
10175
10196
  // pass a fallback (might be null) ^
10176
10197
  };
@@ -10186,7 +10207,7 @@ View.mixin({
10186
10207
 
10187
10208
  // Builds a structure with info about the "current" range, the range that is
10188
10209
  // highlighted as being the current month for example.
10189
- // See buildRangeInfo for a description of `direction`.
10210
+ // See buildDateProfile for a description of `direction`.
10190
10211
  // Guaranteed to have `range` and `unit` properties. `duration` is optional.
10191
10212
  buildCurrentRangeInfo: function(date, direction) {
10192
10213
  var duration = null;
@@ -10274,9 +10295,11 @@ View.mixin({
10274
10295
  // Builds the "current" range when it is specified as an explicit duration.
10275
10296
  // `unit` is the already-computed computeGreatestUnit value of duration.
10276
10297
  buildRangeFromDuration: function(date, direction, duration, unit) {
10277
- var customAlignment = this.opt('dateAlignment');
10298
+ var alignment = this.opt('dateAlignment');
10278
10299
  var start = date.clone();
10279
10300
  var end;
10301
+ var dateIncrementInput;
10302
+ var dateIncrementDuration;
10280
10303
 
10281
10304
  // if the view displays a single day or smaller
10282
10305
  if (duration.as('days') <= 1) {
@@ -10286,7 +10309,27 @@ View.mixin({
10286
10309
  }
10287
10310
  }
10288
10311
 
10289
- start.startOf(customAlignment || unit);
10312
+ // compute what the alignment should be
10313
+ if (!alignment) {
10314
+ dateIncrementInput = this.opt('dateIncrement');
10315
+
10316
+ if (dateIncrementInput) {
10317
+ dateIncrementDuration = moment.duration(dateIncrementInput);
10318
+
10319
+ // use the smaller of the two units
10320
+ if (dateIncrementDuration < duration) {
10321
+ alignment = computeDurationGreatestUnit(dateIncrementDuration, dateIncrementInput);
10322
+ }
10323
+ else {
10324
+ alignment = unit;
10325
+ }
10326
+ }
10327
+ else {
10328
+ alignment = unit;
10329
+ }
10330
+ }
10331
+
10332
+ start.startOf(alignment);
10290
10333
  end = start.clone().add(duration);
10291
10334
 
10292
10335
  return { start: start, end: end };
@@ -11021,12 +11064,7 @@ var Calendar = FC.Calendar = Class.extend({
11021
11064
 
11022
11065
  if (duration.valueOf()) { // valid?
11023
11066
 
11024
- unit = computeGreatestUnit(duration);
11025
-
11026
- // prevent days:7 from being interpreted as a week
11027
- if (unit === 'week' && typeof durationInput === 'object' && durationInput.days) {
11028
- unit = 'day';
11029
- }
11067
+ unit = computeDurationGreatestUnit(duration, durationInput);
11030
11068
 
11031
11069
  spec.duration = duration;
11032
11070
  spec.durationUnit = unit;
@@ -11182,7 +11220,7 @@ var Calendar = FC.Calendar = Class.extend({
11182
11220
 
11183
11221
 
11184
11222
  prev: function() {
11185
- var prevInfo = this.view.buildPrevRangeInfo(this.currentDate);
11223
+ var prevInfo = this.view.buildPrevDateProfile(this.currentDate);
11186
11224
 
11187
11225
  if (prevInfo.isValid) {
11188
11226
  this.currentDate = prevInfo.date;
@@ -11192,7 +11230,7 @@ var Calendar = FC.Calendar = Class.extend({
11192
11230
 
11193
11231
 
11194
11232
  next: function() {
11195
- var nextInfo = this.view.buildNextRangeInfo(this.currentDate);
11233
+ var nextInfo = this.view.buildNextDateProfile(this.currentDate);
11196
11234
 
11197
11235
  if (nextInfo.isValid) {
11198
11236
  this.currentDate = nextInfo.date;
@@ -11852,9 +11890,9 @@ function Calendar_constructor(element, overrides) {
11852
11890
 
11853
11891
  t.updateToolbarButtons = function() {
11854
11892
  var now = t.getNow();
11855
- var todayInfo = currentView.buildRangeInfo(now);
11856
- var prevInfo = currentView.buildPrevRangeInfo(t.currentDate);
11857
- var nextInfo = currentView.buildNextRangeInfo(t.currentDate);
11893
+ var todayInfo = currentView.buildDateProfile(now);
11894
+ var prevInfo = currentView.buildPrevDateProfile(t.currentDate);
11895
+ var nextInfo = currentView.buildNextDateProfile(t.currentDate);
11858
11896
 
11859
11897
  toolbarsManager.proxyCall(
11860
11898
  (todayInfo.isValid && !isDateWithinRange(now, currentView.currentRange)) ?
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * FullCalendar v3.3.0 Google Calendar Plugin
2
+ * FullCalendar v3.3.1 Google Calendar Plugin
3
3
  * Docs & License: https://fullcalendar.io/
4
4
  * (c) 2017 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * FullCalendar v3.3.0 Stylesheet
2
+ * FullCalendar v3.3.1 Stylesheet
3
3
  * Docs & License: https://fullcalendar.io/
4
4
  * (c) 2017 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * FullCalendar v3.3.0 Print Stylesheet
2
+ * FullCalendar v3.3.1 Print Stylesheet
3
3
  * Docs & License: https://fullcalendar.io/
4
4
  * (c) 2017 Adam Shaw
5
5
  */
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fullcalendar.io-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0
4
+ version: 3.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - dbackowski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-26 00:00:00.000000000 Z
11
+ date: 2017-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jquery-rails
@@ -187,18 +187,31 @@ files:
187
187
  - spec/dummy/public/422.html
188
188
  - spec/dummy/public/500.html
189
189
  - spec/dummy/public/favicon.ico
190
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/2P/2P5spSyAcTAKS4aCA-o3-eXv6E_hhMQmXrpzm1mcdQQ.cache
191
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/3d/3dKzammzi4qtSyy2vg82IYFv_dZnHtMqE4-I2QRgnLI.cache
192
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/4L/4Lncie-grIRu8o3w0GoLUEwN2hjKhoV4euPXWcGdOVI.cache
190
193
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/4y/4yDGyI9P-ycbEJV3st7b3Cl23UUy3mS_8dOItuQ4WQs.cache
194
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/5G/5G9j-cEcAJdCJzGLf8VkajaMgg0o6ibXwG0NLVHD3dI.cache
195
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/5L/5LvHvKruXO5TFlFaUSXyZKddNWWaFa-ZRwj4qjWSZls.cache
196
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/60/60QR035PTzIL_ERGf1ZenH-53wM4Ajhg_glBdQTPOzg.cache
191
197
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/7X/7XT_zYx_T65Ig1-tI3W2b-1YmBgSN5ocwaRU6JWLg50.cache
198
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/7Y/7Y9wslxA9L8dPk0r4uGCY-FVf7AnvQC96y4Vw1Ja_fw.cache
192
199
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/9l/9lyDx_SpBBKxlLmBR6419nzqj7bX9kE1pKAu81-j1e8.cache
193
200
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/9m/9mgdO_CaXZJ-vC5ll8cP1XKz3wCECNQSPLjUeXC5d00.cache
194
201
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/CV/CVEYgRUZBsm1bBquX1-8SqFdT7sc9GPLGQPJ_NK9Uh0.cache
195
202
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/CZ/CZHjvu2s7K-UnKF62Xk-ACIbM8s3VoQgAPVMuCKM5iI.cache
196
203
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/DK/DKPi01dwcEcU_ydI496hnsR36bDQK3ZaTD6H6AGDVSo.cache
197
204
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/DR/DRoNiGViBBUT-1VTQCcg8omGljl88QwNIxVREbYaPk0.cache
205
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Fv/FvJlRHyMKMMSd8hoIJzDDQPRakvpf21WietXgAHoYIY.cache
206
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Fz/FzygF5SKhztBrKXeEPvroCRZe4QS87qMo_wMOE4s2Nk.cache
198
207
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/Hb/HbyJZdNWCMyI7J2Kxw-ppzZ1Cf5KdveMkkcnUVG60GM.cache
208
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/I0/I04BxjPsEGmsMr88ORwuWpgGXLI1dRnB1c5ndH8egcI.cache
199
209
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/IL/ILhpn6eigtulj-mYC5zvPjOE49OeJUCj0HzRfTSEUTo.cache
210
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/K1/K1O7XumnEzOMuOqGCa8E_qICaU1FatsdxaxOBvoZuUU.cache
200
211
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/Ko/KolhVuPF1NkgO0S-1x6v1xNGb5gFEWEjvZEEteEHGxU.cache
212
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Mp/MpTrMaNLnURkrOude8Mai0Q-9tXWm3QFE-sEAxGQvHI.cache
201
213
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/N8/N84EFqwrsTo_Tw88DjZpZc62Z7euEwwKkTLU4VMrMDE.cache
214
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/PW/PWm6uPcS4qVtvPmC-utmC-HWI0eZsHLj3ztWoPGmwxU.cache
202
215
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/Qh/Qhj6lhYjgrbxCrzYZuQHtAJnrc4GAU02MUNlKDg3ceY.cache
203
216
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/Qv/QvdKQXdJJXdFSOXQ-MXRTBiQtyVgc5RvjCJZ6J4rg00.cache
204
217
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/Rb/Rbm8nkPS1Of8Rz0rWkok4MSNVIlnPgH9XHKR7hgiv04.cache
@@ -206,20 +219,36 @@ files:
206
219
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/TX/TXvC1s0RwEok5qyXreihpd5DOVq-nJ50VidQ5BGZskQ.cache
207
220
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/UE/UEDUyjE1DXBxIQ_p0U_E_t5I_cJvlnVOKlXNU4GqS_Y.cache
208
221
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/Uh/UhsOeKMDQiu7EfjvaV9ohgtqjGaU4uXFmQbtEx_jMBw.cache
222
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/WI/WI50RPknV6gYR0Aplyrv_mFxOZ_pMLvAwoxgBa8a8iY.cache
209
223
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/Wj/WjH_EHXvlMDw78-0_LEnXWHfmat2T4EIjjRnQr8XpLg.cache
224
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Zd/Zd974jZcxvH-MhDRGTUpL9wkcI-X3w3cnd9AtuEDlGk.cache
210
225
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/a4/a4_fyeSyS2-mZ9BX47IKD8z_lsJfQ8XxlYmqHolNSok.cache
226
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/ab/abIHusMZFinoCmUhvtot_5XjKVHWpxFX7uEBYlWA3Co.cache
211
227
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/ak/akEtN5UI756WTx2HrDpUrmyaxtLOesJIsbh7SMrNBxo.cache
212
228
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/c5/c5ukb30hpWfrOXfKCTNn9yBORe7ZQR9PJjGMKMsAe6w.cache
229
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/h0/h0rn1DiPO9ccypGoAqlMHn551__8MAMynJGHJ4eKRO8.cache
213
230
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/h1/h1-mgdelDIkDFRTv01FyDH_SPuu-SNjfuyPjzxkTBdE.cache
231
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/hf/hfQ0m4DOk_gg28K1MxF6hVeEgnen75YgCSFNh7Sla-k.cache
232
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/i0/i0-dpmkq2Qg1Z74SElswjQuqpgKCEKg_S0Z6BNfnglQ.cache
214
233
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/jS/jSIhGbOIMmrTZwhfKUglo6FfoHenUfowQb0XlmibruI.cache
215
234
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/l4/l4HO2rzZUYDw4TbQtFtDQzVjLH7Vz8XxxPAEZjYR7xo.cache
235
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/lc/lcDzAqoOnJPKB4xQjCKQF7M1VhLmtjTfd75MB3pjwnQ.cache
236
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/mN/mNgeptjwXN7Y-qDaMNLgh386iNcLLYAxNKIDHKYf1MQ.cache
216
237
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/p8/p81pAbcLJHXA6CG_aMyQkwMuh-lrXqqVY4mTgdnXmUo.cache
238
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/pL/pLyPfUXjSp954q5Xo2evt--UelJhRhb-9_GHHJ4H_ks.cache
239
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/pP/pPSiidm8ssfTxzaSv3HDCnUOuguPwGI7ZNvndWgqrrs.cache
240
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/ps/ps4TqKx-BwydgW8ZhE2JsdStYDg7uJpBbs_Jwlou9LU.cache
241
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/qT/qT1JHngVlVMYsfOs8djSPuBnb8xL6zpg56GMf7IoWnY.cache
217
242
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/rh/rhYQUAg7PWjDiHfFfHyqnSbdco2A-XtwQL-caAd6Vhs.cache
218
243
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/uE/uE2U4G3P2HooIC1xKr87545DNdocxCbwAg3GOKFYtmk.cache
244
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/uJ/uJgvt1T01ZLyh6mh8pU68YwutZEqJJnDZExH39O-pps.cache
245
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/uj/ujOz1icLtoO2u6Xs-dDld2yYJDg905RW9859E_Ll354.cache
219
246
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/v5/v50HRxuwfzJwnH_gq5x6fv-NxrraSPkUNYwd1ltq6Ck.cache
220
247
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/vl/vlZYZK4PdV8DB-4CyGZuH-1e-Ts3JVLjSpRP4Djpf98.cache
221
248
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/wz/wz0K-l71cAY6qzTqNojmW0icKR0Xy4cIOdjAyV_Qq94.cache
249
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/xA/xAB8K05aO57Z3nT_o2p9XmIopdBbdZmQU7BkSN7BiI4.cache
222
250
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/xK/xKV2Id3Vd6th4Mw_Xlz6QvEsxO9jF--t8S31xC3IyIg.cache
251
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/xa/xau3ikIdr5UoXeg2moTigSxLRwWfUIvrVWlCr2TpcHo.cache
223
252
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/y8/y8npHBsQJHpNd5vLRaY1exx-HSaKZpvNm8flv2AwaIY.cache
224
253
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/yz/yz6jNITUuiiRhpp2UF6fgHGaoHmOwrnL1u29somV0V0.cache
225
254
  - spec/features/assets_spec.rb
@@ -325,39 +354,68 @@ test_files:
325
354
  - spec/dummy/log/test.log
326
355
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/Qh/Qhj6lhYjgrbxCrzYZuQHtAJnrc4GAU02MUNlKDg3ceY.cache
327
356
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/CZ/CZHjvu2s7K-UnKF62Xk-ACIbM8s3VoQgAPVMuCKM5iI.cache
357
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/ps/ps4TqKx-BwydgW8ZhE2JsdStYDg7uJpBbs_Jwlou9LU.cache
358
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/qT/qT1JHngVlVMYsfOs8djSPuBnb8xL6zpg56GMf7IoWnY.cache
359
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/ab/abIHusMZFinoCmUhvtot_5XjKVHWpxFX7uEBYlWA3Co.cache
360
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/3d/3dKzammzi4qtSyy2vg82IYFv_dZnHtMqE4-I2QRgnLI.cache
361
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/xa/xau3ikIdr5UoXeg2moTigSxLRwWfUIvrVWlCr2TpcHo.cache
328
362
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/p8/p81pAbcLJHXA6CG_aMyQkwMuh-lrXqqVY4mTgdnXmUo.cache
329
363
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/Uh/UhsOeKMDQiu7EfjvaV9ohgtqjGaU4uXFmQbtEx_jMBw.cache
330
364
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/ak/akEtN5UI756WTx2HrDpUrmyaxtLOesJIsbh7SMrNBxo.cache
331
365
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/TX/TXvC1s0RwEok5qyXreihpd5DOVq-nJ50VidQ5BGZskQ.cache
366
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/PW/PWm6uPcS4qVtvPmC-utmC-HWI0eZsHLj3ztWoPGmwxU.cache
332
367
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/v5/v50HRxuwfzJwnH_gq5x6fv-NxrraSPkUNYwd1ltq6Ck.cache
333
368
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/N8/N84EFqwrsTo_Tw88DjZpZc62Z7euEwwKkTLU4VMrMDE.cache
334
369
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/DK/DKPi01dwcEcU_ydI496hnsR36bDQK3ZaTD6H6AGDVSo.cache
370
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Mp/MpTrMaNLnURkrOude8Mai0Q-9tXWm3QFE-sEAxGQvHI.cache
335
371
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/DR/DRoNiGViBBUT-1VTQCcg8omGljl88QwNIxVREbYaPk0.cache
336
372
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/yz/yz6jNITUuiiRhpp2UF6fgHGaoHmOwrnL1u29somV0V0.cache
337
373
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/a4/a4_fyeSyS2-mZ9BX47IKD8z_lsJfQ8XxlYmqHolNSok.cache
338
374
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/CV/CVEYgRUZBsm1bBquX1-8SqFdT7sc9GPLGQPJ_NK9Uh0.cache
339
375
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/9m/9mgdO_CaXZJ-vC5ll8cP1XKz3wCECNQSPLjUeXC5d00.cache
376
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/pL/pLyPfUXjSp954q5Xo2evt--UelJhRhb-9_GHHJ4H_ks.cache
377
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/pP/pPSiidm8ssfTxzaSv3HDCnUOuguPwGI7ZNvndWgqrrs.cache
378
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Zd/Zd974jZcxvH-MhDRGTUpL9wkcI-X3w3cnd9AtuEDlGk.cache
379
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/5L/5LvHvKruXO5TFlFaUSXyZKddNWWaFa-ZRwj4qjWSZls.cache
340
380
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/Rb/Rbm8nkPS1Of8Rz0rWkok4MSNVIlnPgH9XHKR7hgiv04.cache
381
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Fz/FzygF5SKhztBrKXeEPvroCRZe4QS87qMo_wMOE4s2Nk.cache
382
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/uJ/uJgvt1T01ZLyh6mh8pU68YwutZEqJJnDZExH39O-pps.cache
341
383
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/y8/y8npHBsQJHpNd5vLRaY1exx-HSaKZpvNm8flv2AwaIY.cache
384
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/hf/hfQ0m4DOk_gg28K1MxF6hVeEgnen75YgCSFNh7Sla-k.cache
342
385
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/h1/h1-mgdelDIkDFRTv01FyDH_SPuu-SNjfuyPjzxkTBdE.cache
343
386
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/xK/xKV2Id3Vd6th4Mw_Xlz6QvEsxO9jF--t8S31xC3IyIg.cache
387
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Fv/FvJlRHyMKMMSd8hoIJzDDQPRakvpf21WietXgAHoYIY.cache
388
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/K1/K1O7XumnEzOMuOqGCa8E_qICaU1FatsdxaxOBvoZuUU.cache
344
389
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/IL/ILhpn6eigtulj-mYC5zvPjOE49OeJUCj0HzRfTSEUTo.cache
390
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/lc/lcDzAqoOnJPKB4xQjCKQF7M1VhLmtjTfd75MB3pjwnQ.cache
391
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/h0/h0rn1DiPO9ccypGoAqlMHn551__8MAMynJGHJ4eKRO8.cache
345
392
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/9l/9lyDx_SpBBKxlLmBR6419nzqj7bX9kE1pKAu81-j1e8.cache
393
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/7Y/7Y9wslxA9L8dPk0r4uGCY-FVf7AnvQC96y4Vw1Ja_fw.cache
346
394
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/4y/4yDGyI9P-ycbEJV3st7b3Cl23UUy3mS_8dOItuQ4WQs.cache
395
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/xA/xAB8K05aO57Z3nT_o2p9XmIopdBbdZmQU7BkSN7BiI4.cache
347
396
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/Ko/KolhVuPF1NkgO0S-1x6v1xNGb5gFEWEjvZEEteEHGxU.cache
348
397
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/wz/wz0K-l71cAY6qzTqNojmW0icKR0Xy4cIOdjAyV_Qq94.cache
349
398
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/c5/c5ukb30hpWfrOXfKCTNn9yBORe7ZQR9PJjGMKMsAe6w.cache
399
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/I0/I04BxjPsEGmsMr88ORwuWpgGXLI1dRnB1c5ndH8egcI.cache
350
400
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/UE/UEDUyjE1DXBxIQ_p0U_E_t5I_cJvlnVOKlXNU4GqS_Y.cache
401
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/uj/ujOz1icLtoO2u6Xs-dDld2yYJDg905RW9859E_Ll354.cache
402
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/60/60QR035PTzIL_ERGf1ZenH-53wM4Ajhg_glBdQTPOzg.cache
351
403
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/Hb/HbyJZdNWCMyI7J2Kxw-ppzZ1Cf5KdveMkkcnUVG60GM.cache
352
404
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/Sd/Sd04KBX_Tx0-pgiqxpvgIbEGIUv8U_VC3EeD7FEWgwM.cache
405
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/mN/mNgeptjwXN7Y-qDaMNLgh386iNcLLYAxNKIDHKYf1MQ.cache
353
406
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/jS/jSIhGbOIMmrTZwhfKUglo6FfoHenUfowQb0XlmibruI.cache
407
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/4L/4Lncie-grIRu8o3w0GoLUEwN2hjKhoV4euPXWcGdOVI.cache
354
408
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/Qv/QvdKQXdJJXdFSOXQ-MXRTBiQtyVgc5RvjCJZ6J4rg00.cache
355
409
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/vl/vlZYZK4PdV8DB-4CyGZuH-1e-Ts3JVLjSpRP4Djpf98.cache
410
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/2P/2P5spSyAcTAKS4aCA-o3-eXv6E_hhMQmXrpzm1mcdQQ.cache
356
411
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/Wj/WjH_EHXvlMDw78-0_LEnXWHfmat2T4EIjjRnQr8XpLg.cache
357
412
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/uE/uE2U4G3P2HooIC1xKr87545DNdocxCbwAg3GOKFYtmk.cache
358
413
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/l4/l4HO2rzZUYDw4TbQtFtDQzVjLH7Vz8XxxPAEZjYR7xo.cache
414
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/WI/WI50RPknV6gYR0Aplyrv_mFxOZ_pMLvAwoxgBa8a8iY.cache
415
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/5G/5G9j-cEcAJdCJzGLf8VkajaMgg0o6ibXwG0NLVHD3dI.cache
359
416
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/7X/7XT_zYx_T65Ig1-tI3W2b-1YmBgSN5ocwaRU6JWLg50.cache
360
417
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/rh/rhYQUAg7PWjDiHfFfHyqnSbdco2A-XtwQL-caAd6Vhs.cache
418
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/i0/i0-dpmkq2Qg1Z74SElswjQuqpgKCEKg_S0Z6BNfnglQ.cache
361
419
  - spec/dummy/bin/rake
362
420
  - spec/dummy/bin/bundle
363
421
  - spec/dummy/bin/rails