domainsbot-jquery-rails 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2b7b3ab546d33f2549a9fd95c7c14c4f27d00d92
4
+ data.tar.gz: 450dfd249c77a294c4be7ceed65b8c269570b881
5
+ SHA512:
6
+ metadata.gz: c1fa840eadf34bf63966e279cd731356e8780fe7be241a99135f8eca4fbd72195b601b13ba37ac47993c25f27eeb96b7cff26dd7077629652ccdee027a730f0f
7
+ data.tar.gz: babbbf547f664413e69a73ff666a846211c372393fca66af15fe543a5772aad06ac8d6d35710100f0f02e4c55c63bc4766149a876f945a99447fcf5d7e77dad8
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source "http://rubygems.org"
2
+
3
+ group :development do
4
+ gem "bundler", "~> 1.0"
5
+ gem "jeweler", "~> 2.0.1"
6
+ gem "rake"
7
+ gem "railties", "~> 4"
8
+ end
@@ -0,0 +1,82 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ actionpack (4.0.4)
5
+ activesupport (= 4.0.4)
6
+ builder (~> 3.1.0)
7
+ erubis (~> 2.7.0)
8
+ rack (~> 1.5.2)
9
+ rack-test (~> 0.6.2)
10
+ activesupport (4.0.4)
11
+ i18n (~> 0.6, >= 0.6.9)
12
+ minitest (~> 4.2)
13
+ multi_json (~> 1.3)
14
+ thread_safe (~> 0.1)
15
+ tzinfo (~> 0.3.37)
16
+ addressable (2.3.6)
17
+ builder (3.1.4)
18
+ descendants_tracker (0.0.4)
19
+ thread_safe (~> 0.3, >= 0.3.1)
20
+ erubis (2.7.0)
21
+ faraday (0.8.9)
22
+ multipart-post (~> 1.2.0)
23
+ git (1.2.6)
24
+ github_api (0.11.3)
25
+ addressable (~> 2.3)
26
+ descendants_tracker (~> 0.0.1)
27
+ faraday (~> 0.8, < 0.10)
28
+ hashie (>= 1.2)
29
+ multi_json (>= 1.7.5, < 2.0)
30
+ nokogiri (~> 1.6.0)
31
+ oauth2
32
+ hashie (2.1.1)
33
+ highline (1.6.21)
34
+ i18n (0.6.9)
35
+ jeweler (2.0.1)
36
+ builder
37
+ bundler (>= 1.0)
38
+ git (>= 1.2.5)
39
+ github_api
40
+ highline (>= 1.6.15)
41
+ nokogiri (>= 1.5.10)
42
+ rake
43
+ rdoc
44
+ json (1.8.1)
45
+ jwt (0.1.13)
46
+ multi_json (>= 1.5)
47
+ mini_portile (0.6.0)
48
+ minitest (4.7.5)
49
+ multi_json (1.10.0)
50
+ multi_xml (0.5.5)
51
+ multipart-post (1.2.0)
52
+ nokogiri (1.6.2.1)
53
+ mini_portile (= 0.6.0)
54
+ oauth2 (0.9.3)
55
+ faraday (>= 0.8, < 0.10)
56
+ jwt (~> 0.1.8)
57
+ multi_json (~> 1.3)
58
+ multi_xml (~> 0.5)
59
+ rack (~> 1.2)
60
+ rack (1.5.2)
61
+ rack-test (0.6.2)
62
+ rack (>= 1.0)
63
+ railties (4.0.4)
64
+ actionpack (= 4.0.4)
65
+ activesupport (= 4.0.4)
66
+ rake (>= 0.8.7)
67
+ thor (>= 0.18.1, < 2.0)
68
+ rake (10.3.1)
69
+ rdoc (4.1.1)
70
+ json (~> 1.4)
71
+ thor (0.19.1)
72
+ thread_safe (0.3.3)
73
+ tzinfo (0.3.39)
74
+
75
+ PLATFORMS
76
+ ruby
77
+
78
+ DEPENDENCIES
79
+ bundler (~> 1.0)
80
+ jeweler (~> 2.0.1)
81
+ railties (~> 4)
82
+ rake
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Rubem Nakamura
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.
@@ -0,0 +1,32 @@
1
+ # domainsbot-jquery-rails
2
+
3
+ domainsbot-jquery-rails wraps the [domainsbot-jquery](https://github.com/DomainsBot/domainsbot-jquery) for simple
4
+ use with the Rails asset pipeline.
5
+
6
+ ## Installation
7
+
8
+ Add the following to your Gemfile:
9
+
10
+ ```
11
+ gem 'domainsbot-jquery-rails'
12
+ ``
13
+
14
+ Add the following directive to your Javascript manifest file (application.js):
15
+
16
+ ```
17
+ //= require domainsbot-jquery
18
+ ```
19
+
20
+ ## Contributing to domainsbot-jquery-rails
21
+
22
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
23
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
24
+ * Fork the project.
25
+ * Start a feature/bugfix branch.
26
+ * Commit and push until you are happy with your contribution.
27
+
28
+ ## Copyright
29
+
30
+ Copyright (c) 2014 Rubem Nakamura. See LICENSE.txt for
31
+ further details.
32
+
@@ -0,0 +1,27 @@
1
+ # encoding: utf-8
2
+ require 'rubygems'
3
+ require 'bundler'
4
+ require_relative 'lib/domainsbot-jquery-rails/version'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options
17
+ gem.name = "domainsbot-jquery-rails"
18
+ gem.homepage = "http://github.com/rubemz/domainsbot-jquery-rails"
19
+ gem.license = "MIT"
20
+ gem.summary = %Q{domainsbot-jquery plugin packaged as a Rails engine}
21
+ gem.description = %Q{domainsbot-jquery plugin packaged as a Rails engine}
22
+ gem.email = "rubem.nakamura@gmail.com"
23
+ gem.authors = ["Rubem Nakamura"]
24
+ gem.version = DomainsbotJqueryRails::VERSION
25
+ # dependencies defined in Gemfile
26
+ end
27
+ Jeweler::RubygemsDotOrgTasks.new
@@ -0,0 +1,6 @@
1
+ require_relative 'domainsbot-jquery-rails/version'
2
+
3
+ module DomainsbotJqueryRails
4
+ class Engine < ::Rails::Engine
5
+ end
6
+ end
@@ -0,0 +1,3 @@
1
+ module DomainsbotJqueryRails
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,468 @@
1
+ /*Copyright 2012, DomainsBot Inc. */
2
+
3
+ (function ($) {
4
+
5
+ var data = [];
6
+ var maxCounter = 50;
7
+ var checkDelay = 10;
8
+
9
+ var isStart = false;
10
+
11
+ var methods = {
12
+
13
+ init: function (options) {
14
+ //checkDelay = options.delay;
15
+ this.each(function () {
16
+
17
+ var dummy ={};
18
+ dummy.target = $(this);
19
+ dummy.name = "";
20
+ dummy.isTyping = false;
21
+ dummy.notChangedCounter = 0;
22
+ dummy.onType = options.onType;
23
+ dummy.onTyped = options.onTyped;
24
+ data.push(dummy);
25
+ });
26
+ isStart = true;
27
+ setTimeout(CheckTyping, checkDelay);
28
+ return this;
29
+
30
+ },
31
+ start: function () {
32
+
33
+
34
+ },
35
+ destroy: function () {
36
+ data =[];
37
+ maxCounter = 50;
38
+ checkDelay = 10;
39
+ isStart = false;
40
+
41
+ }
42
+
43
+ };
44
+
45
+
46
+ $.fn.InstantSearch = function (method) {
47
+ if (methods[method]) {
48
+
49
+
50
+ return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
51
+ } else if (typeof method === 'object' || !method) {
52
+ return methods.init.apply(this, arguments);
53
+ } else {
54
+ $.error('Method ' + method + ' does not exist on jQuery.InstantSearch');
55
+ }
56
+ };
57
+
58
+
59
+ function CheckTyping() {
60
+ if (!isStart)
61
+ return;
62
+
63
+ $.each(data, function (index, item) {
64
+
65
+ //Changed?
66
+ var text = item.target.val();
67
+
68
+ if (item.name != text) {
69
+
70
+ item.isTyping = true;
71
+ item.notChangedCounter = 0;
72
+
73
+ item.name = text;
74
+
75
+ // Callback
76
+ if(item.onType != null)
77
+ item.onType(text);
78
+
79
+
80
+ }
81
+ else if (item.notChangedCounter >= 0) {
82
+ item.notChangedCounter++;
83
+ }
84
+
85
+ if (item.notChangedCounter > maxCounter && item.name != "") {
86
+ item.isTyping = false;
87
+ item.notChangedCounter = -1;
88
+
89
+ if(item.onTyped != null)
90
+ item.onTyped(text);
91
+
92
+ }
93
+
94
+ });
95
+
96
+ setTimeout(CheckTyping, checkDelay);
97
+
98
+ }
99
+ })(jQuery);
100
+
101
+ (function( $ ) {
102
+
103
+ var DomainsBotApi = function(options)
104
+ {
105
+ var loader;
106
+ var checking;
107
+
108
+ if(typeof options.urlCheckout == "string")
109
+ {
110
+ var defaultDb = "available";
111
+
112
+ if(options.parameters != null && options.parameters.database != null)
113
+ {
114
+ defaultDb = options.parameters.database.split(" ")[0];
115
+ }
116
+
117
+ var checkoutHash = {};
118
+ checkoutHash[defaultDb] = options.urlCheckout;
119
+ options.urlCheckout = checkoutHash;
120
+ }
121
+
122
+ var settings = $.extend( {
123
+ 'urlApi' : 'https://api.domainsbot.com/v4/spinner',
124
+ 'urlAvailability' : 'https://api.domainsbot.com/v4/status',
125
+ 'urlCheckout' : null,
126
+ 'searchTextbox' : null,
127
+ 'searchSubmit' : null,
128
+ 'loading' : null,
129
+ 'checking' : null,
130
+ 'results' : null,
131
+ 'searchParameter' : null,
132
+ 'parameters' : null,
133
+ 'onSuccess' : null,
134
+ 'onError' : null,
135
+ 'onLoading' : null,
136
+ 'onAvailabilitySuccess' : null,
137
+ 'onAvailabilityError' : null,
138
+ 'onCheckout' : null,
139
+ 'autoComplete' : false
140
+
141
+ }, options);
142
+
143
+ var getDataField = function (fieldName,data)
144
+ {
145
+
146
+ for(var i = 0; i<data.length; i++)
147
+ {
148
+ if(data[i].Name == fieldName)
149
+ return data[i].Data;
150
+ }
151
+ return null;
152
+ };
153
+
154
+ var getUrlVars = function ()
155
+ {
156
+ var vars = [], hash;
157
+ var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
158
+ for(var i = 0; i < hashes.length; i++)
159
+ {
160
+ hash = hashes[i].split('=');
161
+ vars.push(hash[0]);
162
+ vars[hash[0]] = hash[1];
163
+ }
164
+ return vars;
165
+ };
166
+ var checkAvailability = function (domain, id, options)
167
+ {
168
+ //check if domain not empty
169
+ if(domain != "")
170
+ {
171
+
172
+ // Built the post string.
173
+ var postString = "q=" + domain;
174
+
175
+ $.ajax({
176
+ url:options.urlAvailability +"?" + postString + "&auth-token=" + options.parameters["auth-token"] + "&callback=?",
177
+ dataType: 'jsonp',
178
+ success:function(response)
179
+ {
180
+ if(options.onAvailabilitySuccess != null)
181
+ {
182
+ options.onAvailabilitySuccess({ Domain: domain, Index: id, Available: !!(response.status == "available")} );
183
+ }
184
+ if(options.urlAvailability != null && options.urlAvailability != "")
185
+ {
186
+
187
+ if(response.status != "available")
188
+ {
189
+ $(options.results).find("div[bind='domainsbotDomain'][index='" + id+"']").parent().hide();
190
+ }
191
+ else
192
+ {
193
+
194
+ $(options.results).find("div[bind='domainsbotDomain'][index='" + id+"']").hide();
195
+ }
196
+
197
+
198
+ }
199
+ },
200
+ error: function(response){
201
+ if(options.onAvailabilityError != null){
202
+ options.onAvailabilityError (response);
203
+ }
204
+ }
205
+ });
206
+ }
207
+
208
+ };
209
+ var GetDomains = function (key,options)
210
+ {
211
+ var cnt = 0; var i;
212
+
213
+ // Define an empty string
214
+ var postString = "";
215
+
216
+
217
+ // Binds the post string with key term and suggestion
218
+ postString = "q=" + escape(key);
219
+
220
+ for(var index in options.parameters) {
221
+ postString += "&"+index+"="+escape(options.parameters[index]);
222
+ }
223
+
224
+
225
+ if(options.results != null)
226
+ $(options.results).html("");
227
+
228
+ if(options.loading != null){
229
+ $(options.results).append(loader);
230
+ // Set teh ajax loader image
231
+ $(loader).css('display','block');
232
+ }
233
+
234
+ if(options.onLoad != null){
235
+ options.onLoad();
236
+ }
237
+
238
+ $.ajax({
239
+ url:options.urlApi +"?" + postString + "&callback=?",
240
+ dataType: 'jsonp',
241
+ success:function(data)
242
+ {
243
+
244
+ if(data === null || data.error != null){
245
+ if(options.onError != null){
246
+
247
+ options.onError(data.error);
248
+ }
249
+ if(options.results != null)
250
+ {
251
+ $(options.results).html(data.error.message);
252
+ }
253
+ return;
254
+ }
255
+
256
+ if(options.onSuccess != null){
257
+ options.onSuccess(data);
258
+ }
259
+ if(options.results != null){
260
+ $(options.results).html("");
261
+ var htmlItem = "";
262
+ if(data && data.Domains){
263
+ $.each(data.Domains, function(i,domain){
264
+
265
+ htmlItem += "<div >";
266
+ var database = null;
267
+ if(domain.Data != null && domain.Data.length > 0)
268
+ {
269
+ database = getDataField("database", domain.Data[0]);
270
+ }
271
+
272
+ var url = "";
273
+ if(options.urlCheckout != null && database != null)
274
+ {
275
+
276
+ url = options.urlCheckout[database].replace("%domain%",domain.DomainName);
277
+ }
278
+
279
+ // cart url
280
+ htmlItem += "<a href='"+url+"' bind='domainsbotDomainLink' domainName='"+domain.DomainName+"' >"+domain.DomainName+"</a>";
281
+
282
+ //console.log(options.checking);
283
+
284
+ htmlItem += "<div bind='domainsbotDomain' index='"+i+"' domainName = '"+domain.DomainName+"' >" + ((options.checking != null && ((options.urlAvailability != null && options.urlAvailability != "") || (options.onAvailabilitySuccess != null && options.onAvailabilitySuccess != ""))) ? $(options.checking).clone().css('display','block').wrap('<p>').parent().html() : "" ) +"</div>";
285
+
286
+ htmlItem += "</div>";
287
+
288
+ });
289
+
290
+ }
291
+ else
292
+ {
293
+ if(options.onError != null){
294
+ options.onError(data);
295
+ }
296
+ }
297
+
298
+
299
+
300
+ $(options.results).html(htmlItem);
301
+
302
+ if(options.onCheckout != null)
303
+ {
304
+ $(options.results).find("a[bind='domainsbotDomainLink']").click(function(evt)
305
+ {
306
+
307
+ options.onCheckout({ Domain: $(this).attr("domainName")}, evt );
308
+ });
309
+ }
310
+
311
+
312
+
313
+
314
+ if((options.urlAvailability != null && options.urlAvailability != "") || (options.onAvailabilitySuccess != null && options.onAvailabilitySuccess != "")){
315
+
316
+ for(i = 0; i < data.Domains.length; i++)
317
+ {
318
+ checkAvailability(data.Domains[i].DomainName, i, options);
319
+ }
320
+
321
+ }
322
+
323
+
324
+ }
325
+ },
326
+ error: function(xhr, ajaxOptions, thrownError)
327
+ {
328
+ if(options.onError != null){
329
+
330
+ options.onError(thrownError);
331
+ }
332
+ else if(options.results != null)
333
+ {
334
+ $(options.results).html(thrownError);
335
+ }
336
+
337
+ }
338
+ });
339
+
340
+
341
+ };
342
+
343
+
344
+ if(settings.searchTextbox != null){
345
+ // Sets focus the search text box
346
+ $(settings.searchTextbox).focus();
347
+ // Enter button
348
+ // Check for Key down event on Search text box
349
+ $(settings.searchTextbox).keydown(function(event) {
350
+
351
+ // Check if user hits the <enter>
352
+ if(event.keyCode == 13){
353
+ // calls to function
354
+ GetDomains($(settings.searchTextbox).val(),settings);
355
+ }
356
+ });
357
+
358
+
359
+ if(settings.results != null && settings.autoComplete)
360
+ {
361
+ $(settings.searchTextbox).InstantSearch({
362
+ onTyped: function(text){
363
+ if(text != null && text != "")
364
+ {
365
+ GetDomains(text,settings);
366
+ }
367
+ else
368
+ {
369
+ if(options.results != null)
370
+ $(options.results).html("");
371
+ }
372
+ },
373
+ onType: function(text){
374
+ if(options.results != null)
375
+ $(options.results).html("");
376
+ if(text != null && text != "")
377
+ {
378
+ if(options.loading != null){
379
+ $(options.results).append(loader);
380
+ // Set teh ajax loader image
381
+ $(loader).css('display','block');
382
+ }
383
+
384
+ if(options.onLoad != null){
385
+ options.onLoad();
386
+ }
387
+ }
388
+
389
+ }
390
+ });
391
+ }
392
+ else if($(settings.searchTextbox).val().length > 0)
393
+ {
394
+ GetDomains($(settings.searchTextbox).val(),settings);
395
+ }
396
+
397
+ }
398
+
399
+
400
+ if(settings.loading != null){
401
+ // Sets variable with ajax loader image
402
+ $(settings.loading).css('display','none');
403
+
404
+ loader = $(settings.loading).clone();
405
+
406
+ //this.loader.remove();
407
+ }
408
+
409
+ if(settings.checking != null){
410
+ // Sets variable with ajax loader image
411
+ $(settings.checking).css('display','none');
412
+
413
+ checking = $(settings.checking).clone();
414
+
415
+ //this.checking.remove();
416
+ }
417
+
418
+
419
+ if(settings.searchSubmit != null && settings.searchTextbox != null){
420
+ // Check the click event, search btn pressed
421
+ $(settings.searchSubmit).click(function(){
422
+
423
+ //call the function to get result
424
+ GetDomains($(settings.searchTextbox).val(), settings);
425
+ });
426
+ }
427
+
428
+ if(settings.searchParameter != null && settings.searchParameter != ""){
429
+
430
+ var p = getUrlVars();
431
+
432
+ if(p != null && p[settings.searchParameter] != null && p[settings.searchParameter] != ""){
433
+ console.log(p[settings.searchParameter] );
434
+ GetDomains(p[settings.searchParameter], settings);
435
+ }
436
+ }
437
+
438
+
439
+
440
+
441
+ // Public method
442
+ this.search = function(key)
443
+ {
444
+ GetDomains(key, settings);
445
+ };
446
+ };
447
+
448
+
449
+
450
+
451
+ var methods = {
452
+ init : function( options ) {
453
+ return new DomainsBotApi(options);
454
+ }
455
+ };
456
+
457
+ $.fn.domainsbot = function ( method ) {
458
+ // Method calling logic
459
+ if ( methods[method] ) {
460
+ return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
461
+ } else if ( typeof method === 'object' || ! method ) {
462
+ return methods.init.apply( this, arguments );
463
+ } else {
464
+ $.error( 'Method ' + method + ' does not exist on jQuery.domainsbot' );
465
+ }
466
+
467
+ };
468
+ })( jQuery );
metadata ADDED
@@ -0,0 +1,110 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: domainsbot-jquery-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Rubem Nakamura
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-05-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: jeweler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 2.0.1
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 2.0.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: railties
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '4'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '4'
69
+ description: domainsbot-jquery plugin packaged as a Rails engine
70
+ email: rubem.nakamura@gmail.com
71
+ executables: []
72
+ extensions: []
73
+ extra_rdoc_files:
74
+ - LICENSE.txt
75
+ - README.md
76
+ files:
77
+ - .document
78
+ - Gemfile
79
+ - Gemfile.lock
80
+ - LICENSE.txt
81
+ - README.md
82
+ - Rakefile
83
+ - lib/domainsbot-jquery-rails.rb
84
+ - lib/domainsbot-jquery-rails/version.rb
85
+ - vendor/assets/javascripts/domainsbot-jquery.js
86
+ homepage: http://github.com/rubemz/domainsbot-jquery-rails
87
+ licenses:
88
+ - MIT
89
+ metadata: {}
90
+ post_install_message:
91
+ rdoc_options: []
92
+ require_paths:
93
+ - lib
94
+ required_ruby_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ required_rubygems_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ requirements: []
105
+ rubyforge_project:
106
+ rubygems_version: 2.2.2
107
+ signing_key:
108
+ specification_version: 4
109
+ summary: domainsbot-jquery plugin packaged as a Rails engine
110
+ test_files: []