rails3-jquery-autocomplete 0.0.1
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/Manifest +7 -0
- data/README.rdoc +0 -0
- data/Rakefile +12 -0
- data/lib/autocomplete.rb +45 -0
- data/lib/generators/autocomplete_generator.rb +14 -0
- data/lib/generators/templates/autocomplete-rails.js +16 -0
- data/lib/generators/templates/autocomplete.rb +2 -0
- data/rails3-jquery-autocomplete.gemspec +30 -0
- metadata +84 -0
data/Manifest
ADDED
data/README.rdoc
ADDED
File without changes
|
data/Rakefile
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
require 'echoe'
|
4
|
+
|
5
|
+
Echoe.new('rails3-jquery-autocomplete', '0.0.1') do |p|
|
6
|
+
p.description = "Use jQuery's autocomplete plugin with Rails 3."
|
7
|
+
p.url = "http://github.com/crowdint/rails3-jquery-autocomplete"
|
8
|
+
p.author = "David Padilla"
|
9
|
+
p.email = "david@crowdint.com"
|
10
|
+
p.ignore_pattern = ["tmp/*", "script/*"]
|
11
|
+
p.development_dependencies = []
|
12
|
+
end
|
data/lib/autocomplete.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
module AutoComplete
|
2
|
+
|
3
|
+
def self.included(base)
|
4
|
+
base.extend(ClassMethods)
|
5
|
+
end
|
6
|
+
|
7
|
+
# Inspired on DHH's autocomplete plugin
|
8
|
+
#
|
9
|
+
# Usage:
|
10
|
+
#
|
11
|
+
# class ProductsController < Admin::BaseController
|
12
|
+
# autocomplete :brand, :name
|
13
|
+
# end
|
14
|
+
#
|
15
|
+
# This will magically generate an action autocomplete_brand_name, so,
|
16
|
+
# don't forget to add it on your routes file
|
17
|
+
#
|
18
|
+
# resources :products do
|
19
|
+
# get :autocomplete_brand_name, :on => :collection
|
20
|
+
# end
|
21
|
+
#
|
22
|
+
# Now, on your view, all you have to do is have a text field like:
|
23
|
+
#
|
24
|
+
# f.text_field :brand_name, :autocomplete => autocomplete_brand_name_products_path
|
25
|
+
#
|
26
|
+
# That's it!
|
27
|
+
#
|
28
|
+
#
|
29
|
+
module ClassMethods
|
30
|
+
def autocomplete(object, method, options = {})
|
31
|
+
limit = options[:limit] || 10
|
32
|
+
order = options[:order] || "#{method} ASC"
|
33
|
+
|
34
|
+
define_method("autocomplete_#{object}_#{method}") do
|
35
|
+
unless params[:q] && params[:q].empty?
|
36
|
+
items = object.to_s.camelize.constantize.where(["LOWER(#{method}) LIKE ?", "#{params[:q]}%"]).limit(limit).order(order)
|
37
|
+
else
|
38
|
+
items = []
|
39
|
+
end
|
40
|
+
|
41
|
+
render :text => items.collect {|i| i[method]}.join("\n")
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
class AutocompleteGenerator < Rails::Generators::Base
|
4
|
+
def install
|
5
|
+
# Copy the unobtrusive JS file
|
6
|
+
copy_file('autocomplete-rails.js', 'public/autocomplete-rails.js')
|
7
|
+
# Rails initializer
|
8
|
+
copy_file('autocomplete.rb', 'initializers/autocomplete.rb')
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.source_root
|
12
|
+
File.join(File.dirname(__FILE__), 'templates')
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/*
|
2
|
+
* Unobtrusive autocomplete
|
3
|
+
*
|
4
|
+
* To use it, you just have to include the HTML attribute autocomplete
|
5
|
+
* with the autocomplete URL as the value
|
6
|
+
*
|
7
|
+
* Example:
|
8
|
+
* <input type="text" autocomplete="/url/to/autocomplete">
|
9
|
+
*
|
10
|
+
*/
|
11
|
+
|
12
|
+
$(document).ready(function(){
|
13
|
+
$('input[autocomplete]').each(function(i){
|
14
|
+
$(this).autocomplete($(this).attr('autocomplete'));
|
15
|
+
});
|
16
|
+
});
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{rails3-jquery-autocomplete}
|
5
|
+
s.version = "0.0.1"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["David Padilla"]
|
9
|
+
s.date = %q{2010-07-13}
|
10
|
+
s.description = %q{Use jQuery's autocomplete plugin with Rails 3.}
|
11
|
+
s.email = %q{david@crowdint.com}
|
12
|
+
s.extra_rdoc_files = ["README.rdoc", "lib/autocomplete.rb", "lib/generators/autocomplete_generator.rb", "lib/generators/templates/autocomplete-rails.js", "lib/generators/templates/autocomplete.rb"]
|
13
|
+
s.files = ["README.rdoc", "Rakefile", "lib/autocomplete.rb", "lib/generators/autocomplete_generator.rb", "lib/generators/templates/autocomplete-rails.js", "lib/generators/templates/autocomplete.rb", "Manifest", "rails3-jquery-autocomplete.gemspec"]
|
14
|
+
s.homepage = %q{http://github.com/crowdint/rails3-jquery-autocomplete}
|
15
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Rails3-jquery-autocomplete", "--main", "README.rdoc"]
|
16
|
+
s.require_paths = ["lib"]
|
17
|
+
s.rubyforge_project = %q{rails3-jquery-autocomplete}
|
18
|
+
s.rubygems_version = %q{1.3.7}
|
19
|
+
s.summary = %q{Use jQuery's autocomplete plugin with Rails 3.}
|
20
|
+
|
21
|
+
if s.respond_to? :specification_version then
|
22
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
23
|
+
s.specification_version = 3
|
24
|
+
|
25
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
26
|
+
else
|
27
|
+
end
|
28
|
+
else
|
29
|
+
end
|
30
|
+
end
|
metadata
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rails3-jquery-autocomplete
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- David Padilla
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-07-13 00:00:00 -05:00
|
19
|
+
default_executable:
|
20
|
+
dependencies: []
|
21
|
+
|
22
|
+
description: Use jQuery's autocomplete plugin with Rails 3.
|
23
|
+
email: david@crowdint.com
|
24
|
+
executables: []
|
25
|
+
|
26
|
+
extensions: []
|
27
|
+
|
28
|
+
extra_rdoc_files:
|
29
|
+
- README.rdoc
|
30
|
+
- lib/autocomplete.rb
|
31
|
+
- lib/generators/autocomplete_generator.rb
|
32
|
+
- lib/generators/templates/autocomplete-rails.js
|
33
|
+
- lib/generators/templates/autocomplete.rb
|
34
|
+
files:
|
35
|
+
- README.rdoc
|
36
|
+
- Rakefile
|
37
|
+
- lib/autocomplete.rb
|
38
|
+
- lib/generators/autocomplete_generator.rb
|
39
|
+
- lib/generators/templates/autocomplete-rails.js
|
40
|
+
- lib/generators/templates/autocomplete.rb
|
41
|
+
- Manifest
|
42
|
+
- rails3-jquery-autocomplete.gemspec
|
43
|
+
has_rdoc: true
|
44
|
+
homepage: http://github.com/crowdint/rails3-jquery-autocomplete
|
45
|
+
licenses: []
|
46
|
+
|
47
|
+
post_install_message:
|
48
|
+
rdoc_options:
|
49
|
+
- --line-numbers
|
50
|
+
- --inline-source
|
51
|
+
- --title
|
52
|
+
- Rails3-jquery-autocomplete
|
53
|
+
- --main
|
54
|
+
- README.rdoc
|
55
|
+
require_paths:
|
56
|
+
- lib
|
57
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
hash: 3
|
63
|
+
segments:
|
64
|
+
- 0
|
65
|
+
version: "0"
|
66
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
hash: 11
|
72
|
+
segments:
|
73
|
+
- 1
|
74
|
+
- 2
|
75
|
+
version: "1.2"
|
76
|
+
requirements: []
|
77
|
+
|
78
|
+
rubyforge_project: rails3-jquery-autocomplete
|
79
|
+
rubygems_version: 1.3.7
|
80
|
+
signing_key:
|
81
|
+
specification_version: 3
|
82
|
+
summary: Use jQuery's autocomplete plugin with Rails 3.
|
83
|
+
test_files: []
|
84
|
+
|