zero_clipboard-rails 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ .DS_Store
2
+ pkg/*
3
+ *.gem
4
+ .bundle
5
+ Gemfile.lock
data/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ ## v1.0.0 (2013-02-05)
2
+
3
+ - Initial public release
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Jonathan Underwood
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,35 @@
1
+ # ZeroClipboard for Rails
2
+
3
+ This gem provides the ZeroClipboard Javascript/Flash library for a Rails 3.1+ application.
4
+
5
+ ### Provides version 1.1.6 of ZeroClipboard.
6
+
7
+ For more information about Zero Clipboard, visit [https://github.com/jonrohan/ZeroClipboard/](https://github.com/jonrohan/ZeroClipboard/)
8
+
9
+ ## Installation
10
+
11
+ Add the following to your Gemfile:
12
+
13
+ ```
14
+ gem 'zero_clipboard-rails'
15
+ ```
16
+
17
+ This will add the ZeroClipboard .js and .swf files to your asset pipeline.
18
+
19
+ Then require it in your `application.js` manifest file:
20
+
21
+ ```
22
+ //= require zero_clipboard
23
+ ```
24
+
25
+ ## Contributing
26
+
27
+ 1. Fork it
28
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
29
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
30
+ 4. Push to the branch (`git push origin my-new-feature`)
31
+ 5. Create new Pull Request
32
+
33
+ ## License
34
+
35
+ Licensed under the MIT License.
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,6 @@
1
+ module ZeroClipboard
2
+ module Rails
3
+ class Engine < ::Rails::Engine
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module ZeroClipboard
2
+ module Rails
3
+ VERSION = '1.0.0'
4
+ ZERO_CLIPBOARD_VERSION = '1.1.6'
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module ZeroClipboard
2
+ module Rails
3
+ require 'zero_clipboard/rails/engine'
4
+ require 'zero_clipboard/rails/version'
5
+ end
6
+ end
@@ -0,0 +1 @@
1
+ require 'zero_clipboard/rails'
@@ -0,0 +1,333 @@
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.6
8
+ */(function() {
9
+ "use strict";
10
+ 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
+ }
19
+ }
20
+ }
21
+ return y;
22
+ };
23
+ var _elementMouseOver = function(event) {
24
+ if (!ZeroClipboard.prototype._singleton) return;
25
+ if (!event) {
26
+ event = window.event;
27
+ }
28
+ var target;
29
+ if (this !== window) {
30
+ target = this;
31
+ } else if (event.target) {
32
+ target = event.target;
33
+ } else if (event.srcElement) {
34
+ target = event.srcElement;
35
+ }
36
+ ZeroClipboard.prototype._singleton.setCurrent(target);
37
+ };
38
+ var _addEventHandler = function(element, method, func) {
39
+ if (element.addEventListener) {
40
+ element.addEventListener(method, func, false);
41
+ } else if (element.attachEvent) {
42
+ element.attachEvent("on" + method, func);
43
+ }
44
+ };
45
+ var _removeEventHandler = function(element, method, func) {
46
+ if (element.removeEventListener) {
47
+ element.removeEventListener(method, func, false);
48
+ } else if (element.detachEvent) {
49
+ element.detachEvent("on" + method, func);
50
+ }
51
+ };
52
+ var _addClass = function(element, value) {
53
+ if (element.addClass) {
54
+ element.addClass(value);
55
+ return element;
56
+ }
57
+ if (value && typeof value === "string") {
58
+ var classNames = (value || "").split(/\s+/);
59
+ if (element.nodeType === 1) {
60
+ if (!element.className) {
61
+ element.className = value;
62
+ } else {
63
+ var className = " " + element.className + " ", setClass = element.className;
64
+ for (var c = 0, cl = classNames.length; c < cl; c++) {
65
+ if (className.indexOf(" " + classNames[c] + " ") < 0) {
66
+ setClass += " " + classNames[c];
67
+ }
68
+ }
69
+ element.className = setClass.replace(/^\s+|\s+$/g, "");
70
+ }
71
+ }
72
+ }
73
+ return element;
74
+ };
75
+ var _removeClass = function(element, value) {
76
+ if (element.removeClass) {
77
+ element.removeClass(value);
78
+ return element;
79
+ }
80
+ if (value && typeof value === "string" || value === undefined) {
81
+ var classNames = (value || "").split(/\s+/);
82
+ if (element.nodeType === 1 && element.className) {
83
+ if (value) {
84
+ var className = (" " + element.className + " ").replace(/[\n\t]/g, " ");
85
+ for (var c = 0, cl = classNames.length; c < cl; c++) {
86
+ className = className.replace(" " + classNames[c] + " ", " ");
87
+ }
88
+ element.className = className.replace(/^\s+|\s+$/g, "");
89
+ } else {
90
+ element.className = "";
91
+ }
92
+ }
93
+ }
94
+ return element;
95
+ };
96
+ var _getDOMObjectPosition = function(obj) {
97
+ var info = {
98
+ left: 0,
99
+ top: 0,
100
+ width: obj.width || obj.offsetWidth || 0,
101
+ height: obj.height || obj.offsetHeight || 0,
102
+ zIndex: 9999
103
+ };
104
+ var zi = _getStyle(obj, "zIndex");
105
+ if (zi && zi != "auto") {
106
+ info.zIndex = parseInt(zi, 10);
107
+ }
108
+ while (obj) {
109
+ var borderLeftWidth = parseInt(_getStyle(obj, "borderLeftWidth"), 10);
110
+ var borderTopWidth = parseInt(_getStyle(obj, "borderTopWidth"), 10);
111
+ info.left += isNaN(obj.offsetLeft) ? 0 : obj.offsetLeft;
112
+ info.left += isNaN(borderLeftWidth) ? 0 : borderLeftWidth;
113
+ info.top += isNaN(obj.offsetTop) ? 0 : obj.offsetTop;
114
+ info.top += isNaN(borderTopWidth) ? 0 : borderTopWidth;
115
+ obj = obj.offsetParent;
116
+ }
117
+ return info;
118
+ };
119
+ var _noCache = function(path) {
120
+ return (path.indexOf("?") >= 0 ? "&" : "?") + "nocache=" + (new Date).getTime();
121
+ };
122
+ var _vars = function(options) {
123
+ var str = [];
124
+ if (options.trustedDomains) {
125
+ if (options.trustedDomains.length) {
126
+ str.push("trustedDomain=" + options.trustedDomains.join(","));
127
+ } else {
128
+ str.push("trustedDomain=" + options.trustedDomains);
129
+ }
130
+ }
131
+ return str.join("&");
132
+ };
133
+ var _inArray = function(elem, array) {
134
+ if (array.indexOf) {
135
+ return array.indexOf(elem);
136
+ }
137
+ for (var i = 0, length = array.length; i < length; i++) {
138
+ if (array[i] === elem) {
139
+ return i;
140
+ }
141
+ }
142
+ return -1;
143
+ };
144
+ var _prepGlue = function(elements) {
145
+ if (typeof elements === "string") throw new TypeError("ZeroClipboard doesn't accept query strings.");
146
+ if (!elements.length) return [ elements ];
147
+ return elements;
148
+ };
149
+ var ZeroClipboard = function(elements, options) {
150
+ if (elements) (ZeroClipboard.prototype._singleton || this).glue(elements);
151
+ if (ZeroClipboard.prototype._singleton) return ZeroClipboard.prototype._singleton;
152
+ ZeroClipboard.prototype._singleton = this;
153
+ this.options = {};
154
+ for (var kd in _defaults) this.options[kd] = _defaults[kd];
155
+ for (var ko in options) this.options[ko] = options[ko];
156
+ this.handlers = {};
157
+ if (ZeroClipboard.detectFlashSupport()) _bridge();
158
+ };
159
+ var currentElement, gluedElements = [];
160
+ ZeroClipboard.prototype.setCurrent = function(element) {
161
+ currentElement = element;
162
+ this.reposition();
163
+ this.setText(this.options.text || element.getAttribute("data-clipboard-text"));
164
+ if (element.getAttribute("title")) {
165
+ this.setTitle(element.getAttribute("title"));
166
+ }
167
+ this.setHandCursor(_getStyle(element, "cursor") == "pointer");
168
+ };
169
+ ZeroClipboard.prototype.setText = function(newText) {
170
+ if (newText && newText !== "") {
171
+ this.options.text = newText;
172
+ if (this.ready()) this.flashBridge.setText(newText);
173
+ }
174
+ };
175
+ ZeroClipboard.prototype.setTitle = function(newTitle) {
176
+ if (newTitle && newTitle !== "") this.htmlBridge.setAttribute("title", newTitle);
177
+ };
178
+ ZeroClipboard.prototype.setSize = function(width, height) {
179
+ if (this.ready()) this.flashBridge.setSize(width, height);
180
+ };
181
+ ZeroClipboard.prototype.setHandCursor = function(enabled) {
182
+ if (this.ready()) this.flashBridge.setHandCursor(enabled);
183
+ };
184
+ ZeroClipboard.version = "1.1.6";
185
+ var _defaults = {
186
+ moviePath: "ZeroClipboard.swf",
187
+ trustedDomains: null,
188
+ text: null,
189
+ hoverClass: "zeroclipboard-is-hover",
190
+ activeClass: "zeroclipboard-is-active"
191
+ };
192
+ ZeroClipboard.setDefaults = function(options) {
193
+ for (var ko in options) _defaults[ko] = options[ko];
194
+ };
195
+ ZeroClipboard.destroy = function() {
196
+ ZeroClipboard.prototype._singleton.unglue(gluedElements);
197
+ var bridge = ZeroClipboard.prototype._singleton.htmlBridge;
198
+ bridge.parentNode.removeChild(bridge);
199
+ delete ZeroClipboard.prototype._singleton;
200
+ };
201
+ ZeroClipboard.detectFlashSupport = function() {
202
+ var hasFlash = false;
203
+ try {
204
+ if (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) {
205
+ hasFlash = true;
206
+ }
207
+ } catch (error) {
208
+ if (navigator.mimeTypes["application/x-shockwave-flash"]) {
209
+ hasFlash = true;
210
+ }
211
+ }
212
+ return hasFlash;
213
+ };
214
+ var _bridge = function() {
215
+ var client = ZeroClipboard.prototype._singleton;
216
+ client.htmlBridge = document.getElementById("global-zeroclipboard-html-bridge");
217
+ if (client.htmlBridge) {
218
+ client.flashBridge = document["global-zeroclipboard-flash-bridge"];
219
+ return;
220
+ }
221
+ 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="always" /> <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>';
222
+ client.htmlBridge = document.createElement("div");
223
+ client.htmlBridge.id = "global-zeroclipboard-html-bridge";
224
+ client.htmlBridge.setAttribute("class", "global-zeroclipboard-container");
225
+ client.htmlBridge.setAttribute("data-clipboard-ready", false);
226
+ client.htmlBridge.style.position = "absolute";
227
+ client.htmlBridge.style.left = "-9999px";
228
+ client.htmlBridge.style.top = "-9999px";
229
+ client.htmlBridge.style.width = "15px";
230
+ client.htmlBridge.style.height = "15px";
231
+ client.htmlBridge.style.zIndex = "9999";
232
+ client.htmlBridge.innerHTML = html;
233
+ document.body.appendChild(client.htmlBridge);
234
+ client.flashBridge = document["global-zeroclipboard-flash-bridge"];
235
+ };
236
+ ZeroClipboard.prototype.resetBridge = function() {
237
+ this.htmlBridge.style.left = "-9999px";
238
+ this.htmlBridge.style.top = "-9999px";
239
+ this.htmlBridge.removeAttribute("title");
240
+ this.htmlBridge.removeAttribute("data-clipboard-text");
241
+ _removeClass(currentElement, this.options.activeClass);
242
+ currentElement = null;
243
+ };
244
+ ZeroClipboard.prototype.ready = function() {
245
+ var ready = this.htmlBridge.getAttribute("data-clipboard-ready");
246
+ return ready === "true" || ready === true;
247
+ };
248
+ ZeroClipboard.prototype.reposition = function() {
249
+ if (!currentElement) return false;
250
+ var pos = _getDOMObjectPosition(currentElement);
251
+ this.htmlBridge.style.top = pos.top + "px";
252
+ this.htmlBridge.style.left = pos.left + "px";
253
+ this.htmlBridge.style.width = pos.width + "px";
254
+ this.htmlBridge.style.height = pos.height + "px";
255
+ this.htmlBridge.style.zIndex = pos.zIndex + 1;
256
+ this.setSize(pos.width, pos.height);
257
+ };
258
+ ZeroClipboard.dispatch = function(eventName, args) {
259
+ ZeroClipboard.prototype._singleton.receiveEvent(eventName, args);
260
+ };
261
+ ZeroClipboard.prototype.on = function(eventName, func) {
262
+ var events = eventName.toString().split(/\s/g);
263
+ for (var i = 0; i < events.length; i++) {
264
+ eventName = events[i].toLowerCase().replace(/^on/, "");
265
+ if (!this.handlers[eventName]) this.handlers[eventName] = func;
266
+ }
267
+ if (this.handlers.noflash && !ZeroClipboard.detectFlashSupport()) {
268
+ this.receiveEvent("onNoFlash", null);
269
+ }
270
+ };
271
+ ZeroClipboard.prototype.addEventListener = ZeroClipboard.prototype.on;
272
+ ZeroClipboard.prototype.receiveEvent = function(eventName, args) {
273
+ eventName = eventName.toString().toLowerCase().replace(/^on/, "");
274
+ var element = currentElement;
275
+ switch (eventName) {
276
+ case "load":
277
+ if (args && parseFloat(args.flashVersion.replace(",", ".").replace(/[^0-9\.]/gi, "")) < 10) {
278
+ this.receiveEvent("onWrongFlash", {
279
+ flashVersion: args.flashVersion
280
+ });
281
+ return;
282
+ }
283
+ this.htmlBridge.setAttribute("data-clipboard-ready", true);
284
+ break;
285
+ case "mouseover":
286
+ _addClass(element, this.options.hoverClass);
287
+ break;
288
+ case "mouseout":
289
+ _removeClass(element, this.options.hoverClass);
290
+ this.resetBridge();
291
+ break;
292
+ case "mousedown":
293
+ _addClass(element, this.options.activeClass);
294
+ break;
295
+ case "mouseup":
296
+ _removeClass(element, this.options.activeClass);
297
+ break;
298
+ case "complete":
299
+ this.options.text = null;
300
+ break;
301
+ }
302
+ if (this.handlers[eventName]) {
303
+ var func = this.handlers[eventName];
304
+ if (typeof func == "function") {
305
+ func.call(element, this, args);
306
+ } else if (typeof func == "string") {
307
+ window[func].call(element, this, args);
308
+ }
309
+ }
310
+ };
311
+ ZeroClipboard.prototype.glue = function(elements) {
312
+ elements = _prepGlue(elements);
313
+ for (var i = 0; i < elements.length; i++) {
314
+ if (_inArray(elements[i], gluedElements) == -1) {
315
+ gluedElements.push(elements[i]);
316
+ _addEventHandler(elements[i], "mouseover", _elementMouseOver);
317
+ }
318
+ }
319
+ };
320
+ ZeroClipboard.prototype.unglue = function(elements) {
321
+ elements = _prepGlue(elements);
322
+ for (var i = 0; i < elements.length; i++) {
323
+ _removeEventHandler(elements[i], "mouseover", _elementMouseOver);
324
+ var arrayIndex = _inArray(elements[i], gluedElements);
325
+ if (arrayIndex != -1) gluedElements.splice(arrayIndex, 1);
326
+ }
327
+ };
328
+ if (typeof module !== "undefined") {
329
+ module.exports = ZeroClipboard;
330
+ } else {
331
+ window.ZeroClipboard = ZeroClipboard;
332
+ }
333
+ })();
@@ -0,0 +1 @@
1
+ ZeroClipboard.setDefaults({ moviePath: '<%= asset_path 'zero_clipboard/ZeroClipboard.swf' %>' });
@@ -0,0 +1,2 @@
1
+ //= require "./zero_clipboard/ZeroClipboard"
2
+ //= require "./zero_clipboard/movie-path"
@@ -0,0 +1,27 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/zero_clipboard/rails/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.name = 'zero_clipboard-rails'
6
+ gem.version = ZeroClipboard::Rails::VERSION
7
+ gem.platform = Gem::Platform::RUBY
8
+
9
+ gem.summary = "Provides ZeroClipboard v#{ZeroClipboard::Rails::ZERO_CLIPBOARD_VERSION} for Rails 3.1+"
10
+ gem.description = "This gem provides ZeroClipboard v#{ZeroClipboard::Rails::ZERO_CLIPBOARD_VERSION} JavaScript/Flash library for a Rails 3.1+ application."
11
+ gem.homepage = 'https://github.com/jyunderwood/zero_clipboard-rails'
12
+
13
+ gem.authors = ['Jonathan Underwood']
14
+ gem.email = ['jonathan@jyunderwood.com']
15
+
16
+ gem.date = Date.today.to_s
17
+ gem.files = `git ls-files`.split($\)
18
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
19
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
20
+ gem.require_paths = ['lib']
21
+
22
+ gem.add_dependency 'railties', '~> 3.1'
23
+
24
+ gem.add_development_dependency 'rake'
25
+ gem.add_development_dependency 'bundler'
26
+ gem.add_development_dependency 'rails', '~> 3.1'
27
+ end
metadata ADDED
@@ -0,0 +1,125 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: zero_clipboard-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Jonathan Underwood
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-02-05 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: railties
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '3.1'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '3.1'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: bundler
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rails
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '3.1'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '3.1'
78
+ description: This gem provides ZeroClipboard v1.1.6 JavaScript/Flash library for a
79
+ Rails 3.1+ application.
80
+ email:
81
+ - jonathan@jyunderwood.com
82
+ executables: []
83
+ extensions: []
84
+ extra_rdoc_files: []
85
+ files:
86
+ - .gitignore
87
+ - CHANGELOG.md
88
+ - Gemfile
89
+ - LICENSE
90
+ - README.md
91
+ - Rakefile
92
+ - lib/zero_clipboard-rails.rb
93
+ - lib/zero_clipboard/rails.rb
94
+ - lib/zero_clipboard/rails/engine.rb
95
+ - lib/zero_clipboard/rails/version.rb
96
+ - vendor/assets/images/zero_clipboard/ZeroClipboard.swf
97
+ - vendor/assets/javascripts/zero_clipboard.js
98
+ - vendor/assets/javascripts/zero_clipboard/ZeroClipboard.js
99
+ - vendor/assets/javascripts/zero_clipboard/movie-path.js.erb
100
+ - zero_clipboard-rails.gemspec
101
+ homepage: https://github.com/jyunderwood/zero_clipboard-rails
102
+ licenses: []
103
+ post_install_message:
104
+ rdoc_options: []
105
+ require_paths:
106
+ - lib
107
+ required_ruby_version: !ruby/object:Gem::Requirement
108
+ none: false
109
+ requirements:
110
+ - - ! '>='
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ required_rubygems_version: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ requirements: []
120
+ rubyforge_project:
121
+ rubygems_version: 1.8.23
122
+ signing_key:
123
+ specification_version: 3
124
+ summary: Provides ZeroClipboard v1.1.6 for Rails 3.1+
125
+ test_files: []