zeroclipboard-rails 0.0.7 → 0.0.8

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,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MTIxMzM1OGM0YWVkYTI4ODAwY2RhYzE2MzNmYjRhNjdiMGQ3YjY5ZA==
5
- data.tar.gz: !binary |-
6
- NDA3OTdiMzU5YWI0NDVkOGVlNjQ5MDhmOWMwZTc0YjEwN2E4ZDc3Mw==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- MWJlNDdkMmQ3MTAyZTYyNjQwY2ViMTdjM2EyMTE0ZDI3NGQxZmUwOTY1MWYx
10
- ZTkzY2ZjYTI3YjkwNmMxNTM5MjM5ZGU0NWEzYmEyMGFhYjliNTM1ZGE2NmNi
11
- MzYwNjdmNWZjMTdmOGYwMDM4Y2I2YWU1YTM2MmRjNzRlMTE0N2I=
12
- data.tar.gz: !binary |-
13
- Yjk2NmQ1NDQ2ZGIzMWU0N2Q1YjFkYzdjYmY1MjRhM2E1ZWExOTU2M2NjNmY0
14
- MzJiMzc4MWI0YmFiZTgwMWMzZDY2NWM5NmY1NGM0YzNlMjRmY2U5YmVhYTM5
15
- OTZkOWM2YTgyZDBjZDNjOGIyYjZjYjY3MGNjN2RkMTEzMzM0N2M=
2
+ SHA1:
3
+ metadata.gz: b5884e438fb4efc6deb96fae16c35ee654c6cc39
4
+ data.tar.gz: 6e6dee00c12ccc40070e048167b39358d4b9721f
5
+ SHA512:
6
+ metadata.gz: c2d098e026f30e1f18d5895002797a36bef16b30fd23802d46f2b0b418abd3ad6386c98c4aff8c61bfe688f4f6a53ea1c7d4bbacc3a55511742757f0ec0800e2
7
+ data.tar.gz: add4715b320ed79d5eb6add9ebb36a2200beab898318b51d23de2ec607289d724939fc33814aa6e6ce8ec9524684d549c24dd5381a0eed1b9806cefc0497cf91
data/README.md CHANGED
@@ -124,6 +124,13 @@ This gem is merely a wrapper around [ZeroClipboard](https://github.com/zeroclipb
124
124
  Includes workaround for <a href="https://github.com/zeroclipboard/ZeroClipboard/issues/149">CSS zoom bug</a>
125
125
  </td>
126
126
  </tr>
127
+ <tr>
128
+ <td><a href="https://rubygems.org/gems/zeroclipboard-rails/versions/0.0.7">0.0.7</a></td>
129
+ <td><a href="https://github.com/zeroclipboard/ZeroClipboard/tree/v1.1.7">1.1.7</a></td>
130
+ <td>
131
+ Includes workaround for <a href="https://github.com/zeroclipboard/ZeroClipboard/issues/149">CSS zoom bug</a>
132
+ </td>
133
+ </tr>
127
134
  </table>
128
135
 
129
136
 
@@ -1,35 +1,45 @@
1
1
  /*!
2
- * zeroclipboard
3
- * The Zero Clipboard library provides an easy way to copy text to the clipboard using an invisible Adobe Flash movie, and a JavaScript interface.
4
- * Copyright 2012 Jon Rohan, James M. Greene, .
5
- * Released under the MIT license
6
- * http://jonrohan.github.com/ZeroClipboard/
7
- * v1.1.7
8
- */(function() {
2
+ * ZeroClipboard
3
+ * The ZeroClipboard library provides an easy way to copy text to the clipboard using an invisible Adobe Flash movie and a JavaScript interface.
4
+ * Copyright (c) 2013 Jon Rohan, James M. Greene
5
+ * Licensed MIT
6
+ * http://zeroclipboard.org/
7
+ * v1.2.2
8
+ */
9
+ (function() {
9
10
  "use strict";
11
+ var _camelizeCssPropName = function() {
12
+ var matcherRegex = /\-([a-z])/g, replacerFn = function(match, group) {
13
+ return group.toUpperCase();
14
+ };
15
+ return function(prop) {
16
+ return prop.replace(matcherRegex, replacerFn);
17
+ };
18
+ }();
10
19
  var _getStyle = function(el, prop) {
11
- var y = el.style[prop];
12
- if (el.currentStyle) y = el.currentStyle[prop]; else if (window.getComputedStyle) y = document.defaultView.getComputedStyle(el, null).getPropertyValue(prop);
13
- if (y == "auto" && prop == "cursor") {
14
- var possiblePointers = [ "a" ];
15
- for (var i = 0; i < possiblePointers.length; i++) {
16
- if (el.tagName.toLowerCase() == possiblePointers[i]) {
17
- return "pointer";
18
- }
20
+ var value, camelProp, tagName, possiblePointers, i, len;
21
+ if (window.getComputedStyle) {
22
+ value = window.getComputedStyle(el, null).getPropertyValue(prop);
23
+ } else {
24
+ camelProp = _camelizeCssPropName(prop);
25
+ if (el.currentStyle) {
26
+ value = el.currentStyle[camelProp];
27
+ } else {
28
+ value = el.style[camelProp];
19
29
  }
20
30
  }
21
- return y;
22
- };
23
- var _getZoom = function(obj) {
24
- var zoom = 1;
25
- if(RegExp(' AppleWebKit/').test(navigator.userAgent)){
26
- while(obj)
27
- {
28
- zoom = zoom * _getStyle(obj,'zoom');
29
- obj = obj.offsetParent;
30
- }
31
+ if (prop === "cursor") {
32
+ if (!value || value === "auto") {
33
+ tagName = el.tagName.toLowerCase();
34
+ possiblePointers = [ "a" ];
35
+ for (i = 0, len = possiblePointers.length; i < len; i++) {
36
+ if (tagName === possiblePointers[i]) {
37
+ return "pointer";
38
+ }
39
+ }
40
+ }
31
41
  }
32
- return zoom;
42
+ return value;
33
43
  };
34
44
  var _elementMouseOver = function(event) {
35
45
  if (!ZeroClipboard.prototype._singleton) return;
@@ -104,54 +114,82 @@
104
114
  }
105
115
  return element;
106
116
  };
117
+ var _getZoomFactor = function() {
118
+ var rect, physicalWidth, logicalWidth, zoomFactor = 1;
119
+ if (typeof document.body.getBoundingClientRect === "function") {
120
+ rect = document.body.getBoundingClientRect();
121
+ physicalWidth = rect.right - rect.left;
122
+ logicalWidth = document.body.offsetWidth;
123
+ zoomFactor = Math.round(physicalWidth / logicalWidth * 100) / 100;
124
+ }
125
+ return zoomFactor;
126
+ };
107
127
  var _getDOMObjectPosition = function(obj) {
108
128
  var info = {
109
129
  left: 0,
110
130
  top: 0,
111
- width: obj.width || obj.offsetWidth || 0,
112
- height: obj.height || obj.offsetHeight || 0,
113
- zIndex: 9999
131
+ width: 0,
132
+ height: 0,
133
+ zIndex: 999999999
114
134
  };
115
- var zi = _getStyle(obj, "zIndex");
116
- if (zi && zi != "auto") {
135
+ var zi = _getStyle(obj, "z-index");
136
+ if (zi && zi !== "auto") {
117
137
  info.zIndex = parseInt(zi, 10);
118
138
  }
119
- if (typeof obj.getBoundingClientRect !== "undefined") {
139
+ if (obj.getBoundingClientRect) {
120
140
  var rect = obj.getBoundingClientRect();
121
- var pageXOffset = window.pageXOffset || document.documentElement.scrollLeft || 0;
122
- var pageYOffset = window.pageYOffset || document.documentElement.scrollTop || 0;
141
+ var pageXOffset, pageYOffset, zoomFactor;
142
+ if ("pageXOffset" in window && "pageYOffset" in window) {
143
+ pageXOffset = window.pageXOffset;
144
+ pageYOffset = window.pageYOffset;
145
+ } else {
146
+ zoomFactor = _getZoomFactor();
147
+ pageXOffset = Math.round(document.documentElement.scrollLeft / zoomFactor);
148
+ pageYOffset = Math.round(document.documentElement.scrollTop / zoomFactor);
149
+ }
123
150
  var leftBorderWidth = document.documentElement.clientLeft || 0;
124
151
  var topBorderWidth = document.documentElement.clientTop || 0;
125
- var zoom = _getZoom(obj);
126
- info.width = rect.width * zoom;
127
- info.height = rect.height * zoom;
128
- info.left = (rect.left + pageXOffset - leftBorderWidth) * zoom;
129
- info.top = (rect.top + pageYOffset - topBorderWidth) * zoom;
130
- return info;
131
- }
132
- while (obj) {
133
- var borderLeftWidth = parseInt(_getStyle(obj, "borderLeftWidth"), 10);
134
- var borderTopWidth = parseInt(_getStyle(obj, "borderTopWidth"), 10);
135
- info.left += isNaN(obj.offsetLeft) ? 0 : obj.offsetLeft;
136
- info.left += isNaN(borderLeftWidth) ? 0 : borderLeftWidth;
137
- info.top += isNaN(obj.offsetTop) ? 0 : obj.offsetTop;
138
- info.top += isNaN(borderTopWidth) ? 0 : borderTopWidth;
139
- obj = obj.offsetParent;
152
+ info.left = rect.left + pageXOffset - leftBorderWidth;
153
+ info.top = rect.top + pageYOffset - topBorderWidth;
154
+ info.width = "width" in rect ? rect.width : rect.right - rect.left;
155
+ info.height = "height" in rect ? rect.height : rect.bottom - rect.top;
140
156
  }
141
157
  return info;
142
158
  };
143
- var _noCache = function(path) {
144
- return (path.indexOf("?") >= 0 ? "&" : "?") + "nocache=" + (new Date).getTime();
159
+ var _noCache = function(path, options) {
160
+ var useNoCache = !(options && options.useNoCache === false);
161
+ if (useNoCache) {
162
+ return (path.indexOf("?") === -1 ? "?" : "&") + "nocache=" + new Date().getTime();
163
+ } else {
164
+ return "";
165
+ }
145
166
  };
146
167
  var _vars = function(options) {
147
168
  var str = [];
169
+ var origins = [];
170
+ if (options.trustedOrigins) {
171
+ if (typeof options.trustedOrigins === "string") {
172
+ origins.push(options.trustedOrigins);
173
+ } else if (typeof options.trustedOrigins === "object" && "length" in options.trustedOrigins) {
174
+ origins = origins.concat(options.trustedOrigins);
175
+ }
176
+ }
148
177
  if (options.trustedDomains) {
149
178
  if (typeof options.trustedDomains === "string") {
150
- str.push("trustedDomain=" + options.trustedDomains);
151
- } else {
152
- str.push("trustedDomain=" + options.trustedDomains.join(","));
179
+ origins.push(options.trustedDomains);
180
+ } else if (typeof options.trustedDomains === "object" && "length" in options.trustedDomains) {
181
+ origins = origins.concat(options.trustedDomains);
153
182
  }
154
183
  }
184
+ if (origins.length) {
185
+ str.push("trustedOrigins=" + encodeURIComponent(origins.join(",")));
186
+ }
187
+ if (typeof options.amdModuleId === "string" && options.amdModuleId) {
188
+ str.push("amdModuleId=" + encodeURIComponent(options.amdModuleId));
189
+ }
190
+ if (typeof options.cjsModuleId === "string" && options.cjsModuleId) {
191
+ str.push("cjsModuleId=" + encodeURIComponent(options.cjsModuleId));
192
+ }
155
193
  return str.join("&");
156
194
  };
157
195
  var _inArray = function(elem, array) {
@@ -170,6 +208,15 @@
170
208
  if (!elements.length) return [ elements ];
171
209
  return elements;
172
210
  };
211
+ var _dispatchCallback = function(func, element, instance, args, async) {
212
+ if (async) {
213
+ window.setTimeout(function() {
214
+ func.call(element, instance, args);
215
+ }, 0);
216
+ } else {
217
+ func.call(element, instance, args);
218
+ }
219
+ };
173
220
  var ZeroClipboard = function(elements, options) {
174
221
  if (elements) (ZeroClipboard.prototype._singleton || this).glue(elements);
175
222
  if (ZeroClipboard.prototype._singleton) return ZeroClipboard.prototype._singleton;
@@ -184,34 +231,48 @@
184
231
  ZeroClipboard.prototype.setCurrent = function(element) {
185
232
  currentElement = element;
186
233
  this.reposition();
187
- if (element.getAttribute("title")) {
188
- this.setTitle(element.getAttribute("title"));
234
+ var titleAttr = element.getAttribute("title");
235
+ if (titleAttr) {
236
+ this.setTitle(titleAttr);
189
237
  }
190
- this.setHandCursor(_getStyle(element, "cursor") == "pointer");
238
+ var useHandCursor = this.options.forceHandCursor === true || _getStyle(element, "cursor") === "pointer";
239
+ _setHandCursor.call(this, useHandCursor);
240
+ return this;
191
241
  };
192
242
  ZeroClipboard.prototype.setText = function(newText) {
193
243
  if (newText && newText !== "") {
194
244
  this.options.text = newText;
195
245
  if (this.ready()) this.flashBridge.setText(newText);
196
246
  }
247
+ return this;
197
248
  };
198
249
  ZeroClipboard.prototype.setTitle = function(newTitle) {
199
250
  if (newTitle && newTitle !== "") this.htmlBridge.setAttribute("title", newTitle);
251
+ return this;
200
252
  };
201
253
  ZeroClipboard.prototype.setSize = function(width, height) {
202
254
  if (this.ready()) this.flashBridge.setSize(width, height);
255
+ return this;
203
256
  };
204
257
  ZeroClipboard.prototype.setHandCursor = function(enabled) {
258
+ enabled = typeof enabled === "boolean" ? enabled : !!enabled;
259
+ _setHandCursor.call(this, enabled);
260
+ this.options.forceHandCursor = enabled;
261
+ return this;
262
+ };
263
+ var _setHandCursor = function(enabled) {
205
264
  if (this.ready()) this.flashBridge.setHandCursor(enabled);
206
265
  };
207
- ZeroClipboard.version = "1.1.7";
266
+ ZeroClipboard.version = "1.2.2";
208
267
  var _defaults = {
209
268
  moviePath: "ZeroClipboard.swf",
210
- trustedDomains: null,
269
+ trustedOrigins: null,
211
270
  text: null,
212
271
  hoverClass: "zeroclipboard-is-hover",
213
272
  activeClass: "zeroclipboard-is-active",
214
- allowScriptAccess: "sameDomain"
273
+ allowScriptAccess: "sameDomain",
274
+ useNoCache: true,
275
+ forceHandCursor: false
215
276
  };
216
277
  ZeroClipboard.setDefaults = function(options) {
217
278
  for (var ko in options) _defaults[ko] = options[ko];
@@ -224,22 +285,30 @@
224
285
  };
225
286
  ZeroClipboard.detectFlashSupport = function() {
226
287
  var hasFlash = false;
227
- try {
228
- if (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) {
229
- hasFlash = true;
230
- }
231
- } catch (error) {
232
- if (navigator.mimeTypes["application/x-shockwave-flash"]) {
233
- hasFlash = true;
234
- }
288
+ if (typeof ActiveXObject === "function") {
289
+ try {
290
+ if (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) {
291
+ hasFlash = true;
292
+ }
293
+ } catch (error) {}
294
+ }
295
+ if (!hasFlash && navigator.mimeTypes["application/x-shockwave-flash"]) {
296
+ hasFlash = true;
235
297
  }
236
298
  return hasFlash;
237
299
  };
300
+ var _amdModuleId = null;
301
+ var _cjsModuleId = null;
238
302
  var _bridge = function() {
239
303
  var client = ZeroClipboard.prototype._singleton;
240
304
  var container = document.getElementById("global-zeroclipboard-html-bridge");
241
305
  if (!container) {
242
- var html = ' <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" id="global-zeroclipboard-flash-bridge" width="100%" height="100%"> <param name="movie" value="' + client.options.moviePath + _noCache(client.options.moviePath) + '"/> <param name="allowScriptAccess" value="' + client.options.allowScriptAccess + '"/> <param name="scale" value="exactfit"/> <param name="loop" value="false"/> <param name="menu" value="false"/> <param name="quality" value="best" /> <param name="bgcolor" value="#ffffff"/> <param name="wmode" value="transparent"/> <param name="flashvars" value="' + _vars(client.options) + '"/> <embed src="' + client.options.moviePath + _noCache(client.options.moviePath) + '" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="100%" height="100%" name="global-zeroclipboard-flash-bridge" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="' + _vars(client.options) + '" scale="exactfit"> </embed> </object>';
306
+ var opts = {};
307
+ for (var ko in client.options) opts[ko] = client.options[ko];
308
+ opts.amdModuleId = _amdModuleId;
309
+ opts.cjsModuleId = _cjsModuleId;
310
+ var flashvars = _vars(opts);
311
+ var html = ' <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" id="global-zeroclipboard-flash-bridge" width="100%" height="100%"> <param name="movie" value="' + client.options.moviePath + _noCache(client.options.moviePath, client.options) + '"/> <param name="allowScriptAccess" value="' + client.options.allowScriptAccess + '"/> <param name="scale" value="exactfit"/> <param name="loop" value="false"/> <param name="menu" value="false"/> <param name="quality" value="best" /> <param name="bgcolor" value="#ffffff"/> <param name="wmode" value="transparent"/> <param name="flashvars" value="' + flashvars + '"/> <embed src="' + client.options.moviePath + _noCache(client.options.moviePath, client.options) + '" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="100%" height="100%" name="global-zeroclipboard-flash-bridge" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="' + flashvars + '" scale="exactfit"> </embed> </object>';
243
312
  container = document.createElement("div");
244
313
  container.id = "global-zeroclipboard-html-bridge";
245
314
  container.setAttribute("class", "global-zeroclipboard-container");
@@ -264,6 +333,7 @@
264
333
  _removeClass(currentElement, this.options.activeClass);
265
334
  currentElement = null;
266
335
  this.options.text = null;
336
+ return this;
267
337
  };
268
338
  ZeroClipboard.prototype.ready = function() {
269
339
  var ready = this.htmlBridge.getAttribute("data-clipboard-ready");
@@ -278,6 +348,7 @@
278
348
  this.htmlBridge.style.height = pos.height + "px";
279
349
  this.htmlBridge.style.zIndex = pos.zIndex + 1;
280
350
  this.setSize(pos.width, pos.height);
351
+ return this;
281
352
  };
282
353
  ZeroClipboard.dispatch = function(eventName, args) {
283
354
  ZeroClipboard.prototype._singleton.receiveEvent(eventName, args);
@@ -291,6 +362,7 @@
291
362
  if (this.handlers.noflash && !ZeroClipboard.detectFlashSupport()) {
292
363
  this.receiveEvent("onNoFlash", null);
293
364
  }
365
+ return this;
294
366
  };
295
367
  ZeroClipboard.prototype.addEventListener = ZeroClipboard.prototype.on;
296
368
  ZeroClipboard.prototype.off = function(eventName, func) {
@@ -303,11 +375,13 @@
303
375
  }
304
376
  }
305
377
  }
378
+ return this;
306
379
  };
307
380
  ZeroClipboard.prototype.removeEventListener = ZeroClipboard.prototype.off;
308
381
  ZeroClipboard.prototype.receiveEvent = function(eventName, args) {
309
382
  eventName = eventName.toString().toLowerCase().replace(/^on/, "");
310
383
  var element = currentElement;
384
+ var performCallbackAsync = true;
311
385
  switch (eventName) {
312
386
  case "load":
313
387
  if (args && parseFloat(args.flashVersion.replace(",", ".").replace(/[^0-9\.]/gi, "")) < 10) {
@@ -318,19 +392,24 @@
318
392
  }
319
393
  this.htmlBridge.setAttribute("data-clipboard-ready", true);
320
394
  break;
395
+
321
396
  case "mouseover":
322
397
  _addClass(element, this.options.hoverClass);
323
398
  break;
399
+
324
400
  case "mouseout":
325
401
  _removeClass(element, this.options.hoverClass);
326
402
  this.resetBridge();
327
403
  break;
404
+
328
405
  case "mousedown":
329
406
  _addClass(element, this.options.activeClass);
330
407
  break;
408
+
331
409
  case "mouseup":
332
410
  _removeClass(element, this.options.activeClass);
333
411
  break;
412
+
334
413
  case "datarequested":
335
414
  var targetId = element.getAttribute("data-clipboard-target"), targetEl = !targetId ? null : document.getElementById(targetId);
336
415
  if (targetEl) {
@@ -340,17 +419,20 @@
340
419
  var defaultText = element.getAttribute("data-clipboard-text");
341
420
  if (defaultText) this.setText(defaultText);
342
421
  }
422
+ performCallbackAsync = false;
343
423
  break;
424
+
344
425
  case "complete":
345
426
  this.options.text = null;
346
427
  break;
347
428
  }
348
429
  if (this.handlers[eventName]) {
349
430
  var func = this.handlers[eventName];
350
- if (typeof func == "function") {
351
- func.call(element, this, args);
352
- } else if (typeof func == "string") {
353
- window[func].call(element, this, args);
431
+ if (typeof func === "string" && typeof window[func] === "function") {
432
+ func = window[func];
433
+ }
434
+ if (typeof func === "function") {
435
+ _dispatchCallback(func, element, this, args, performCallbackAsync);
354
436
  }
355
437
  }
356
438
  };
@@ -362,6 +444,7 @@
362
444
  _addEventHandler(elements[i], "mouseover", _elementMouseOver);
363
445
  }
364
446
  }
447
+ return this;
365
448
  };
366
449
  ZeroClipboard.prototype.unglue = function(elements) {
367
450
  elements = _prepGlue(elements);
@@ -370,13 +453,16 @@
370
453
  var arrayIndex = _inArray(elements[i], gluedElements);
371
454
  if (arrayIndex != -1) gluedElements.splice(arrayIndex, 1);
372
455
  }
456
+ return this;
373
457
  };
374
- if (typeof module !== "undefined") {
375
- module.exports = ZeroClipboard;
376
- } else if (typeof define === "function" && define.amd) {
377
- define(function() {
458
+ if (typeof define === "function" && define.amd) {
459
+ define([ "require", "exports", "module" ], function(require, exports, module) {
460
+ _amdModuleId = module && module.id || null;
378
461
  return ZeroClipboard;
379
462
  });
463
+ } else if (typeof module === "object" && module && typeof module.exports === "object" && module.exports) {
464
+ _cjsModuleId = module.id || null;
465
+ module.exports = ZeroClipboard;
380
466
  } else {
381
467
  window.ZeroClipboard = ZeroClipboard;
382
468
  }
@@ -1,5 +1,5 @@
1
1
  module Zeroclipboard
2
2
  module Rails
3
- VERSION = "0.0.7"
3
+ VERSION = "0.0.8"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zeroclipboard-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henrik Wenz
@@ -9,20 +9,20 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-09-09 00:00:00.000000000 Z
12
+ date: 2013-11-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ! '>='
18
+ - - '>='
19
19
  - !ruby/object:Gem::Version
20
20
  version: '3.1'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ! '>='
25
+ - - '>='
26
26
  - !ruby/object:Gem::Version
27
27
  version: '3.1'
28
28
  description: ZeroClipboard libary support for Rails
@@ -34,8 +34,8 @@ extra_rdoc_files: []
34
34
  files:
35
35
  - lib/zeroclipboard-rails.rb
36
36
  - lib/zeroclipboard-rails/version.rb
37
- - app/assets/javascripts/zeroclipboard/asset-path.js.erb
38
37
  - app/assets/javascripts/zeroclipboard/ZeroClipboard.js
38
+ - app/assets/javascripts/zeroclipboard/asset-path.js.erb
39
39
  - app/assets/javascripts/zeroclipboard.js
40
40
  - app/assets/images/ZeroClipboard.swf
41
41
  - LICENSE
@@ -50,18 +50,19 @@ require_paths:
50
50
  - lib
51
51
  required_ruby_version: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - ! '>='
53
+ - - '>='
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
56
  required_rubygems_version: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ! '>='
58
+ - - '>='
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0'
61
61
  requirements: []
62
62
  rubyforge_project:
63
- rubygems_version: 2.0.7
63
+ rubygems_version: 2.0.3
64
64
  signing_key:
65
65
  specification_version: 4
66
66
  summary: Adds the Javascript ZeroClipboard libary to Rails
67
67
  test_files: []
68
+ has_rdoc: