romo 0.10.0 → 0.11.0
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.
- data/Gemfile +1 -1
- data/assets/css/romo/_mixins.scss +2 -0
- data/assets/css/romo/base.scss +1 -0
- data/assets/js/romo/dropdown.js +54 -9
- data/assets/js/romo/indicator.js +18 -7
- data/assets/js/romo/modal.js +50 -6
- data/assets/js/romo/tooltip.js +27 -7
- data/lib/romo/dassets.rb +1 -1
- data/lib/romo/version.rb +1 -1
- data/romo.gemspec +1 -1
- data/test/unit/dassets_tests.rb +1 -1
- metadata +7 -7
data/Gemfile
CHANGED
@@ -145,6 +145,8 @@
|
|
145
145
|
@mixin text-border-base($i:"") { color: $baseBorderColor #{$i}; }
|
146
146
|
@mixin text-border-alt($i:"") { color: $altBorderColor #{$i}; }
|
147
147
|
|
148
|
+
@mixin text-disabled($i:"") { color: $disabledColor #{$i}; }
|
149
|
+
|
148
150
|
@mixin text-base($i:"") { color: $baseText #{$i}; }
|
149
151
|
@mixin text-base-hover($i:"") { color: $baseTextHover #{$i}; }
|
150
152
|
@mixin bg-base($i:"") { background-color: $baseBackground #{$i}; }
|
data/assets/css/romo/base.scss
CHANGED
@@ -224,6 +224,7 @@ h3 { @include text1; }
|
|
224
224
|
|
225
225
|
.romo-text-border-base { @include text-border-base(!important); }
|
226
226
|
.romo-text-border-alt { @include text-border-alt(!important); }
|
227
|
+
.romo-text-disabled { @include text-disabled(!important); }
|
227
228
|
.romo-text-base { @include text-base(!important); }
|
228
229
|
.romo-text-alt { @include text-alt(!important); }
|
229
230
|
.romo-text-muted { @include text-muted(!important); }
|
data/assets/js/romo/dropdown.js
CHANGED
@@ -7,7 +7,7 @@ $.fn.romoDropdown = function() {
|
|
7
7
|
var RomoDropdown = function(element) {
|
8
8
|
this.elem = $(element);
|
9
9
|
this.popupElem = $('<div class="romo-dropdown-popup"><div class="romo-dropdown-body"></div></div>');
|
10
|
-
this.popupElem.appendTo('body');
|
10
|
+
this.popupElem.appendTo(this.elem.closest(this.elem.data('romo-dropdown-append-to-closest') || 'body'));
|
11
11
|
this.doSetPopupZIndex(this.elem);
|
12
12
|
this.bodyElem = this.popupElem.find('> .romo-dropdown-body');
|
13
13
|
this.contentElem = $();
|
@@ -45,8 +45,8 @@ var RomoDropdown = function(element) {
|
|
45
45
|
this.elem.on('invoke:loadError', $.proxy(function(e, xhr, invoke) {
|
46
46
|
this.doLoadBodyError(xhr);
|
47
47
|
}, this));
|
48
|
-
|
49
|
-
this.
|
48
|
+
|
49
|
+
this.doBindElemKeyUp();
|
50
50
|
|
51
51
|
this.doInit();
|
52
52
|
this.doInitBody();
|
@@ -61,6 +61,16 @@ RomoDropdown.prototype.doInit = function() {
|
|
61
61
|
RomoDropdown.prototype.doInitBody = function() {
|
62
62
|
this.doResetBody();
|
63
63
|
|
64
|
+
this.popupElem.on('modal:popupOpen', $.proxy(function(e) {
|
65
|
+
this.doUnBindWindowBodyClick();
|
66
|
+
this.doUnBindWindowBodyKeyUp();
|
67
|
+
this.doUnBindElemKeyUp();
|
68
|
+
}, this));
|
69
|
+
this.popupElem.on('modal:popupClose', $.proxy(function(e) {
|
70
|
+
this.doBindWindowBodyClick();
|
71
|
+
this.doBindWindowBodyKeyUp();
|
72
|
+
this.doBindElemKeyUp();
|
73
|
+
}, this));
|
64
74
|
this.contentElem = this.bodyElem.find('.romo-dropdown-content').last();
|
65
75
|
if (this.contentElem.size() === 0) {
|
66
76
|
this.contentElem = this.bodyElem;
|
@@ -180,10 +190,13 @@ RomoDropdown.prototype.doPopupOpen = function() {
|
|
180
190
|
// event, then the toggle click will propagate which will call
|
181
191
|
// this event and immediately close the popup.
|
182
192
|
setTimeout($.proxy(function() {
|
183
|
-
|
184
|
-
$('body').on('modal:mousedown', $.proxy(this.onWindowBodyClick, this));
|
193
|
+
this.doBindWindowBodyClick();
|
185
194
|
}, this), 100);
|
186
|
-
|
195
|
+
|
196
|
+
// bind "esc" keystroke to toggle close
|
197
|
+
this.doBindWindowBodyKeyUp();
|
198
|
+
|
199
|
+
// bind window resizes reposition dropdown
|
187
200
|
$(window).on('resize', $.proxy(this.onResizeWindow, this));
|
188
201
|
|
189
202
|
this.elem.trigger('dropdown:popupOpen', [this]);
|
@@ -205,9 +218,13 @@ RomoDropdown.prototype.onPopupClose = function(e) {
|
|
205
218
|
RomoDropdown.prototype.doPopupClose = function() {
|
206
219
|
this.popupElem.removeClass('romo-dropdown-open');
|
207
220
|
|
208
|
-
|
209
|
-
|
210
|
-
|
221
|
+
// unbind any event to close the popup when clicking away from it
|
222
|
+
this.doUnBindWindowBodyClick();
|
223
|
+
|
224
|
+
// unbind "esc" keystroke to toggle close
|
225
|
+
this.doUnBindWindowBodyKeyUp();
|
226
|
+
|
227
|
+
// unbind window resizes reposition dropdown
|
211
228
|
$(window).off('resize', $.proxy(this.onResizeWindow, this));
|
212
229
|
|
213
230
|
// clear the content elem markup if configured to
|
@@ -218,6 +235,16 @@ RomoDropdown.prototype.doPopupClose = function() {
|
|
218
235
|
this.elem.trigger('dropdown:popupClose', [this]);
|
219
236
|
}
|
220
237
|
|
238
|
+
RomoDropdown.prototype.doBindElemKeyUp = function() {
|
239
|
+
this.elem.on('keyup', $.proxy(this.onElemKeyUp, this));
|
240
|
+
this.popupElem.on('keyup', $.proxy(this.onElemKeyUp, this));
|
241
|
+
}
|
242
|
+
|
243
|
+
RomoDropdown.prototype.doUnBindElemKeyUp = function() {
|
244
|
+
this.elem.off('keyup', $.proxy(this.onElemKeyUp, this));
|
245
|
+
this.popupElem.off('keyup', $.proxy(this.onElemKeyUp, this));
|
246
|
+
}
|
247
|
+
|
221
248
|
RomoDropdown.prototype.onElemKeyUp = function(e) {
|
222
249
|
if (this.elem.hasClass('disabled') === false) {
|
223
250
|
if (this.popupElem.hasClass('romo-dropdown-open')) {
|
@@ -234,6 +261,16 @@ RomoDropdown.prototype.onElemKeyUp = function(e) {
|
|
234
261
|
return true;
|
235
262
|
}
|
236
263
|
|
264
|
+
RomoDropdown.prototype.doBindWindowBodyClick = function() {
|
265
|
+
$('body').on('click', $.proxy(this.onWindowBodyClick, this));
|
266
|
+
$('body').on('modal:mousemove', $.proxy(this.onWindowBodyClick, this));
|
267
|
+
}
|
268
|
+
|
269
|
+
RomoDropdown.prototype.doUnBindWindowBodyClick = function() {
|
270
|
+
$('body').off('click', $.proxy(this.onWindowBodyClick, this));
|
271
|
+
$('body').off('modal:mousemove', $.proxy(this.onWindowBodyClick, this));
|
272
|
+
}
|
273
|
+
|
237
274
|
RomoDropdown.prototype.onWindowBodyClick = function(e) {
|
238
275
|
// if not clicked on the popup elem or the elem
|
239
276
|
var target = $(e.target);
|
@@ -245,6 +282,14 @@ RomoDropdown.prototype.onWindowBodyClick = function(e) {
|
|
245
282
|
return true;
|
246
283
|
}
|
247
284
|
|
285
|
+
RomoDropdown.prototype.doBindWindowBodyKeyUp = function() {
|
286
|
+
$('body').on('keyup', $.proxy(this.onWindowBodyKeyUp, this));
|
287
|
+
}
|
288
|
+
|
289
|
+
RomoDropdown.prototype.doUnBindWindowBodyKeyUp = function() {
|
290
|
+
$('body').off('keyup', $.proxy(this.onWindowBodyKeyUp, this));
|
291
|
+
}
|
292
|
+
|
248
293
|
RomoDropdown.prototype.onWindowBodyKeyUp = function(e) {
|
249
294
|
if (e.keyCode === 27 /* Esc */) {
|
250
295
|
this.doPopupClose();
|
data/assets/js/romo/indicator.js
CHANGED
@@ -31,12 +31,6 @@ var RomoIndicator = function(element) {
|
|
31
31
|
this.doInit();
|
32
32
|
this.spinner = new Spinner(this.spinnerOpts);
|
33
33
|
|
34
|
-
this.elemHtml = this.elem.html();
|
35
|
-
this.elem.css({
|
36
|
-
'position': 'relative',
|
37
|
-
'width': this.elem.css('width'),
|
38
|
-
'height': this.elem.css('height'),
|
39
|
-
});
|
40
34
|
this.elem.on('indicator:triggerStart', $.proxy(this.onStart, this));
|
41
35
|
this.elem.on('indicator:triggerStop', $.proxy(this.onStop, this));
|
42
36
|
|
@@ -70,6 +64,13 @@ RomoIndicator.prototype.onStop = function(e) {
|
|
70
64
|
}
|
71
65
|
|
72
66
|
RomoIndicator.prototype.doStart = function() {
|
67
|
+
this.elemHtml = this.elem.html();
|
68
|
+
this.elemStyle = this.elem.attr('style');
|
69
|
+
this.elem.css({
|
70
|
+
'position': 'relative',
|
71
|
+
'width': this.elem.css('width'),
|
72
|
+
'height': this.elem.css('height'),
|
73
|
+
});
|
73
74
|
this.elem.html('');
|
74
75
|
this.spinner.spin(this.elem[0]);
|
75
76
|
this.elem.trigger('indicator:start', [this]);
|
@@ -77,7 +78,17 @@ RomoIndicator.prototype.doStart = function() {
|
|
77
78
|
|
78
79
|
RomoIndicator.prototype.doStop = function() {
|
79
80
|
this.spinner.stop();
|
80
|
-
|
81
|
+
if (this.elemHtml !== undefined) {
|
82
|
+
this.elem.html(this.elemHtml);
|
83
|
+
}
|
84
|
+
this.elem.css({
|
85
|
+
'position': '',
|
86
|
+
'width': '',
|
87
|
+
'height': '',
|
88
|
+
});
|
89
|
+
if (this.elemStyle !== undefined) {
|
90
|
+
this.elem.attr('style', this.elemStyle);
|
91
|
+
}
|
81
92
|
this.elem.trigger('indicator:stop', [this]);
|
82
93
|
}
|
83
94
|
|
data/assets/js/romo/modal.js
CHANGED
@@ -7,7 +7,7 @@ $.fn.romoModal = function() {
|
|
7
7
|
var RomoModal = function(element) {
|
8
8
|
this.elem = $(element);
|
9
9
|
this.popupElem = $('<div class="romo-modal-popup"><div class="romo-modal-body"></div></div>');
|
10
|
-
this.popupElem.appendTo('body');
|
10
|
+
this.popupElem.appendTo(this.elem.closest(this.elem.data('romo-modal-append-to-closest') || 'body'));
|
11
11
|
this.bodyElem = this.popupElem.find('> .romo-modal-body');
|
12
12
|
this.contentElem = $();
|
13
13
|
this.closeElem = $();
|
@@ -33,6 +33,8 @@ var RomoModal = function(element) {
|
|
33
33
|
this.doLoadBodyError(xhr);
|
34
34
|
}, this));
|
35
35
|
|
36
|
+
this.doBindElemKeyUp();
|
37
|
+
|
36
38
|
this.doInit();
|
37
39
|
this.doInitBody();
|
38
40
|
|
@@ -158,11 +160,11 @@ RomoModal.prototype.doPopupOpen = function() {
|
|
158
160
|
// event, then the toggle click will propagate which will call
|
159
161
|
// this event and immediately close the popup.
|
160
162
|
setTimeout($.proxy(function() {
|
161
|
-
|
163
|
+
this.doBindWindowBodyClick();
|
162
164
|
}, this), 100);
|
163
165
|
|
164
166
|
// bind "esc" keystroke to toggle close
|
165
|
-
|
167
|
+
this.doBindWindowBodyKeyUp();
|
166
168
|
|
167
169
|
// bind window resizes reposition modal
|
168
170
|
$(window).on('resize', $.proxy(this.onResizeWindow, this));
|
@@ -187,10 +189,10 @@ RomoModal.prototype.doPopupClose = function() {
|
|
187
189
|
this.popupElem.removeClass('romo-modal-open');
|
188
190
|
|
189
191
|
// unbind any event to close the popup when clicking away from it
|
190
|
-
|
192
|
+
this.doUnBindWindowBodyClick();
|
191
193
|
|
192
194
|
// unbind "esc" keystroke to toggle close
|
193
|
-
|
195
|
+
this.doUnBindWindowBodyKeyUp();
|
194
196
|
|
195
197
|
// unbind window resizes reposition modal
|
196
198
|
$(window).off('resize', $.proxy(this.onResizeWindow, this));
|
@@ -204,7 +206,6 @@ RomoModal.prototype.doPopupClose = function() {
|
|
204
206
|
}
|
205
207
|
|
206
208
|
RomoModal.prototype.onMouseDown = function(e) {
|
207
|
-
$('body').trigger('modal:mousedown');
|
208
209
|
e.preventDefault();
|
209
210
|
e.stopPropagation();
|
210
211
|
this.doDragStart(e);
|
@@ -227,6 +228,7 @@ RomoModal.prototype.doDragStart = function(e) {
|
|
227
228
|
}
|
228
229
|
|
229
230
|
RomoModal.prototype.onMouseMove = function(e) {
|
231
|
+
$('body').trigger('modal:mousemove');
|
230
232
|
e.preventDefault();
|
231
233
|
e.stopPropagation();
|
232
234
|
this.doDragMove(e.clientX, e.clientY);
|
@@ -262,6 +264,40 @@ RomoModal.prototype.doDragStop = function(e) {
|
|
262
264
|
this.elem.trigger("modal:dragStop", [this]);
|
263
265
|
}
|
264
266
|
|
267
|
+
RomoModal.prototype.doBindElemKeyUp = function() {
|
268
|
+
this.elem.on('keyup', $.proxy(this.onElemKeyUp, this));
|
269
|
+
this.popupElem.on('keyup', $.proxy(this.onElemKeyUp, this));
|
270
|
+
}
|
271
|
+
|
272
|
+
RomoModal.prototype.doUnBindElemKeyUp = function() {
|
273
|
+
this.elem.off('keyup', $.proxy(this.onElemKeyUp, this));
|
274
|
+
this.popupElem.off('keyup', $.proxy(this.onElemKeyUp, this));
|
275
|
+
}
|
276
|
+
|
277
|
+
RomoModal.prototype.onElemKeyUp = function(e) {
|
278
|
+
if (this.elem.hasClass('disabled') === false) {
|
279
|
+
if (this.popupElem.hasClass('romo-modal-open')) {
|
280
|
+
if(e.keyCode === 27 /* Esc */ ) {
|
281
|
+
this.doPopupClose();
|
282
|
+
return false;
|
283
|
+
} else {
|
284
|
+
return true;
|
285
|
+
}
|
286
|
+
} else {
|
287
|
+
return true;
|
288
|
+
}
|
289
|
+
}
|
290
|
+
return true;
|
291
|
+
}
|
292
|
+
|
293
|
+
RomoModal.prototype.doBindWindowBodyClick = function() {
|
294
|
+
$('body').on('click', $.proxy(this.onWindowBodyClick, this));
|
295
|
+
}
|
296
|
+
|
297
|
+
RomoModal.prototype.doUnBindWindowBodyClick = function() {
|
298
|
+
$('body').off('click', $.proxy(this.onWindowBodyClick, this));
|
299
|
+
}
|
300
|
+
|
265
301
|
RomoModal.prototype.onWindowBodyClick = function(e) {
|
266
302
|
// if not clicked on the popup elem
|
267
303
|
if (e !== undefined && $(e.target).parents('.romo-modal-popup').size() === 0) {
|
@@ -270,6 +306,14 @@ RomoModal.prototype.onWindowBodyClick = function(e) {
|
|
270
306
|
return true;
|
271
307
|
}
|
272
308
|
|
309
|
+
RomoModal.prototype.doBindWindowBodyKeyUp = function() {
|
310
|
+
$('body').on('keyup', $.proxy(this.onWindowBodyKeyUp, this));
|
311
|
+
}
|
312
|
+
|
313
|
+
RomoModal.prototype.doUnBindWindowBodyKeyUp = function() {
|
314
|
+
$('body').off('keyup', $.proxy(this.onWindowBodyKeyUp, this));
|
315
|
+
}
|
316
|
+
|
273
317
|
RomoModal.prototype.onWindowBodyKeyUp = function(e) {
|
274
318
|
if (e.keyCode === 27 /* Esc */) {
|
275
319
|
this.doPopupClose();
|
data/assets/js/romo/tooltip.js
CHANGED
@@ -7,7 +7,7 @@ $.fn.romoTooltip = function() {
|
|
7
7
|
var RomoTooltip = function(element) {
|
8
8
|
this.elem = $(element);
|
9
9
|
this.popupElem = $('<div class="romo-tooltip-popup"><div class="romo-tooltip-arrow"></div><div class="romo-tooltip-body"></div></div>');
|
10
|
-
this.popupElem.appendTo('body');
|
10
|
+
this.popupElem.appendTo(this.elem.closest(this.elem.data('romo-tooltip-append-to-closest') || 'body'));
|
11
11
|
this.doSetPopupZIndex(this.elem);
|
12
12
|
this.arrowElem = this.popupElem.find('> .romo-tooltip-arrow');
|
13
13
|
this.bodyElem = this.popupElem.find('> .romo-tooltip-body');
|
@@ -42,18 +42,17 @@ var RomoTooltip = function(element) {
|
|
42
42
|
if (this.elem.data('romo-tooltip-style-class') !== undefined) {
|
43
43
|
this.bodyElem.addClass(this.elem.data('romo-tooltip-style-class'));
|
44
44
|
}
|
45
|
-
this.contentData = this.elem.data('romo-tooltip-content');
|
46
|
-
this.bodyElem.html(this.contentData || '');
|
47
45
|
|
48
46
|
this.elem.on('mouseenter', $.proxy(this.onToggleEnter, this));
|
49
47
|
this.elem.on('mouseleave', $.proxy(this.onToggleLeave, this));
|
50
48
|
this.elem.on('tooltip:triggerPopupOpen', $.proxy(this.onPopupOpen, this));
|
51
49
|
this.elem.on('tooltip:triggerPopupClose', $.proxy(this.onPopupClose, this));
|
50
|
+
this.elem.on('tooltip:triggerSetContent', $.proxy(this.onSetContent, this));
|
52
51
|
$(window).on('resize', $.proxy(this.onResizeWindow, this))
|
53
52
|
|
54
53
|
this.doInit();
|
55
54
|
this.doInitBody();
|
56
|
-
if (this.
|
55
|
+
if (this.elem.data('romo-tooltip-content') === undefined) {
|
57
56
|
this.doBindInvoke();
|
58
57
|
}
|
59
58
|
|
@@ -104,7 +103,7 @@ RomoTooltip.prototype.doBindInvoke = function() {
|
|
104
103
|
}
|
105
104
|
|
106
105
|
RomoTooltip.prototype.doLoadBodyStart = function() {
|
107
|
-
this.
|
106
|
+
this._setBodyHtml('');
|
108
107
|
this.doInitBody();
|
109
108
|
this.doPlacePopupElem();
|
110
109
|
this.elem.trigger('tooltip:loadBodyStart', [this]);
|
@@ -172,12 +171,14 @@ RomoTooltip.prototype.onPopupOpen = function(e) {
|
|
172
171
|
RomoTooltip.prototype.doPopupOpen = function() {
|
173
172
|
if (this.romoInvoke !== undefined) {
|
174
173
|
this.romoInvoke.doInvoke();
|
174
|
+
} else {
|
175
|
+
this._setBodyHtml(this.elem.data('romo-tooltip-content'));
|
175
176
|
}
|
176
177
|
this.popupElem.addClass('romo-tooltip-open');
|
177
178
|
this.doPlacePopupElem();
|
178
179
|
|
179
180
|
if (this.elem.parents('.romo-modal-popup').size() !== 0) {
|
180
|
-
$('body').on('modal:
|
181
|
+
$('body').on('modal:mousemove', $.proxy(this.onModalPopupChange, this));
|
181
182
|
$('body').on('modal:popupclose', $.proxy(this.onModalPopupChange, this));
|
182
183
|
}
|
183
184
|
$(window).on('resize', $.proxy(this.onResizeWindow, this));
|
@@ -199,7 +200,7 @@ RomoTooltip.prototype.doPopupClose = function() {
|
|
199
200
|
this.popupElem.removeClass('romo-tooltip-open');
|
200
201
|
|
201
202
|
if (this.elem.parents('.romo-modal-popup').size() !== 0) {
|
202
|
-
$('body').off('modal:
|
203
|
+
$('body').off('modal:mousemove', $.proxy(this.onModalPopupChange, this));
|
203
204
|
$('body').off('modal:popupclose', $.proxy(this.onModalPopupChange, this));
|
204
205
|
}
|
205
206
|
$(window).off('resize', $.proxy(this.onResizeWindow, this));
|
@@ -214,6 +215,19 @@ RomoTooltip.prototype.onModalPopupChange = function(e) {
|
|
214
215
|
return true;
|
215
216
|
}
|
216
217
|
|
218
|
+
RomoTooltip.prototype.onSetContent = function(e, value) {
|
219
|
+
if (e !== undefined) {
|
220
|
+
e.preventDefault();
|
221
|
+
}
|
222
|
+
this.doSetContent(value);
|
223
|
+
}
|
224
|
+
|
225
|
+
RomoTooltip.prototype.doSetContent = function(value) {
|
226
|
+
this.elem.data('romo-tooltip-content', value);
|
227
|
+
this._setBodyHtml(this.elem.data('romo-tooltip-content'));
|
228
|
+
this.doPlacePopupElem();
|
229
|
+
}
|
230
|
+
|
217
231
|
RomoTooltip.prototype.onResizeWindow = function(e) {
|
218
232
|
this.doPlacePopupElem();
|
219
233
|
return true;
|
@@ -253,6 +267,12 @@ RomoTooltip.prototype.doSetPopupZIndex = function(relativeElem) {
|
|
253
267
|
this.popupElem.css({'z-index': relativeZIndex + 1100}); // see z-index.css
|
254
268
|
}
|
255
269
|
|
270
|
+
// private
|
271
|
+
|
272
|
+
RomoTooltip.prototype._setBodyHtml = function(content) {
|
273
|
+
this.bodyElem.html(content || '');
|
274
|
+
}
|
275
|
+
|
256
276
|
Romo.onInitUI(function(e) {
|
257
277
|
Romo.initUIElems(e, '[data-romo-tooltip-auto="true"]').romoTooltip();
|
258
278
|
});
|
data/lib/romo/dassets.rb
CHANGED
data/lib/romo/version.rb
CHANGED
data/romo.gemspec
CHANGED
data/test/unit/dassets_tests.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: romo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 51
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 11
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.11.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Kelly Redding
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2015-
|
19
|
+
date: 2015-10-15 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
requirement: &id001 !ruby/object:Gem::Requirement
|
@@ -24,11 +24,11 @@ dependencies:
|
|
24
24
|
requirements:
|
25
25
|
- - ~>
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
hash:
|
27
|
+
hash: 29
|
28
28
|
segments:
|
29
29
|
- 2
|
30
|
-
-
|
31
|
-
version: "2.
|
30
|
+
- 15
|
31
|
+
version: "2.15"
|
32
32
|
type: :development
|
33
33
|
name: assert
|
34
34
|
version_requirements: *id001
|