rails3-jquery-autocomplete 0.6.6 → 0.7.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/.gitignore CHANGED
@@ -21,4 +21,5 @@ tmp
21
21
 
22
22
  ## PROJECT::SPECIFIC
23
23
  .bundle
24
- .rvmrc
24
+ .rvmrc
25
+ Gemfile.lock
data/README.markdown CHANGED
@@ -139,6 +139,15 @@ This wouldn't really make much sense unless you use it with the :id_element HTML
139
139
 
140
140
  Only the object's id and the column you are searching on will be returned in JSON, so if your display_value method requires another parameter, make sure to fetch it with the :extra_data option
141
141
 
142
+
143
+ #### :scopes
144
+ Added option to use scopes. Pass scopes in an array.
145
+ e.g `:scopes => [:scope1, :scope2]`
146
+
147
+ #### :column_name
148
+ By default autocomplete uses method name as column name. Now it can be specified using column_name options
149
+ `:column_name => 'name'`
150
+
142
151
  ### View
143
152
 
144
153
  On your view, all you have to do is include the attribute autocomplete on the text field
@@ -288,3 +297,4 @@ Everyone on [this list](https://github.com/crowdint/rails3-jquery-autocomplete/c
288
297
  [Crowd Interactive](http://www.crowdint.com) is an American web design and development company that happens to work in Colima, Mexico.
289
298
  We specialize in building and growing online retail stores. We don’t work with everyone – just companies we believe in. Call us today to see if there’s a fit.
290
299
  Find more info [here](http://www.crowdint.com)!
300
+
data/integration/Gemfile CHANGED
@@ -2,14 +2,15 @@ source 'http://rubygems.org'
2
2
 
3
3
  gem 'rails', '~>3.0.3'
4
4
 
5
- gem 'sqlite3-ruby', :require => 'sqlite3'
6
- gem 'cucumber-rails', '~>0.3.2'
5
+ gem 'annotate'
7
6
  gem 'capybara', '~>0.4.0'
8
- gem 'rails3-jquery-autocomplete', :path => '../'
9
- gem 'nifty-generators'
7
+ gem 'cucumber-rails', '~>0.3.2'
8
+ gem 'database_cleaner'
10
9
  gem 'haml-rails'
11
10
  gem 'jquery-rails'
12
- gem 'pickle'
13
- gem 'database_cleaner'
14
11
  gem 'launchy'
12
+ gem 'nifty-generators'
13
+ gem 'pickle'
14
+ gem 'rails3-jquery-autocomplete', :path => '../'
15
15
  gem 'simple_form'
16
+ gem 'sqlite3-ruby', :require => 'sqlite3'
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../
3
3
  specs:
4
- rails3-jquery-autocomplete (0.6.5)
4
+ rails3-jquery-autocomplete (0.6.6)
5
5
  rails (~> 3.0.0)
6
6
  yajl-ruby
7
7
 
@@ -35,6 +35,7 @@ GEM
35
35
  activemodel (= 3.0.4)
36
36
  activesupport (= 3.0.4)
37
37
  activesupport (3.0.4)
38
+ annotate (2.4.0)
38
39
  arel (2.0.8)
39
40
  builder (2.1.2)
40
41
  capybara (0.4.0)
@@ -146,6 +147,7 @@ PLATFORMS
146
147
  ruby
147
148
 
148
149
  DEPENDENCIES
150
+ annotate
149
151
  capybara (~> 0.4.0)
150
152
  cucumber-rails (~> 0.3.2)
151
153
  database_cleaner
@@ -0,0 +1,7 @@
1
+ class ScopedAutocompletesController < ApplicationController
2
+ autocomplete :brand, :name, :scope => "active"
3
+
4
+ def new
5
+ @product = Product.new
6
+ end
7
+ end
@@ -1,2 +1,15 @@
1
+ # == Schema Information
2
+ #
3
+ # Table name: brands
4
+ #
5
+ # id :integer not null, primary key
6
+ # name :string(255)
7
+ # created_at :datetime
8
+ # updated_at :datetime
9
+ # type :string(255)
10
+ # state :boolean
11
+ #
12
+
1
13
  class Brand < ActiveRecord::Base
14
+ scope :active, where(:state => true)
2
15
  end
@@ -1,2 +1,13 @@
1
+ # == Schema Information
2
+ #
3
+ # Table name: features
4
+ #
5
+ # id :integer not null, primary key
6
+ # name :string(255)
7
+ # product_id :integer
8
+ # created_at :datetime
9
+ # updated_at :datetime
10
+ #
11
+
1
12
  class Feature < ActiveRecord::Base
2
13
  end
@@ -1,3 +1,15 @@
1
+ # == Schema Information
2
+ #
3
+ # Table name: brands
4
+ #
5
+ # id :integer not null, primary key
6
+ # name :string(255)
7
+ # created_at :datetime
8
+ # updated_at :datetime
9
+ # type :string(255)
10
+ # state :boolean
11
+ #
12
+
1
13
  class ForeignBrand < Brand
2
14
 
3
15
  end
@@ -1,3 +1,14 @@
1
+ # == Schema Information
2
+ #
3
+ # Table name: products
4
+ #
5
+ # id :integer not null, primary key
6
+ # name :string(255)
7
+ # brand_name :string(255)
8
+ # created_at :datetime
9
+ # updated_at :datetime
10
+ #
11
+
1
12
  class Product < ActiveRecord::Base
2
13
  attr_accessor :brand_id
3
14
 
@@ -0,0 +1,10 @@
1
+ %h1 Scoped Autocomplete
2
+
3
+ = form_for @product do |form|
4
+ %p
5
+ = form.label :name
6
+ = form.text_field :name
7
+ %p
8
+ = form.label :brand_name
9
+ = form.autocomplete_field :brand_name, autocomplete_brand_name_scoped_autocompletes_path
10
+
@@ -23,4 +23,68 @@ Integration::Application.routes.draw do
23
23
  resources :simple_forms do
24
24
  get :autocomplete_feature_name, :on => :collection
25
25
  end
26
+
27
+ resources :scoped_autocompletes do
28
+ get :autocomplete_brand_name, :on => :collection
29
+ end
26
30
  end
31
+ #== Route Map
32
+ # Generated on 25 Apr 2011 09:55
33
+ #
34
+ # root /(.:format) {:controller=>"autocomplete", :action=>"new"}
35
+ # autocomplete_autocomplete_brand_name /autocomplete/autocomplete_brand_name(.:format) {:controller=>"autocomplete", :action=>"autocomplete_brand_name"}
36
+ # products GET /products(.:format) {:controller=>"products", :action=>"index"}
37
+ # POST /products(.:format) {:controller=>"products", :action=>"create"}
38
+ # new_product GET /products/new(.:format) {:controller=>"products", :action=>"new"}
39
+ # edit_product GET /products/:id/edit(.:format) {:controller=>"products", :action=>"edit"}
40
+ # product GET /products/:id(.:format) {:controller=>"products", :action=>"show"}
41
+ # PUT /products/:id(.:format) {:controller=>"products", :action=>"update"}
42
+ # DELETE /products/:id(.:format) {:controller=>"products", :action=>"destroy"}
43
+ # autocomplete_brand_name_id_elements GET /id_elements/autocomplete_brand_name(.:format) {:controller=>"id_elements", :action=>"autocomplete_brand_name"}
44
+ # id_elements GET /id_elements(.:format) {:controller=>"id_elements", :action=>"index"}
45
+ # POST /id_elements(.:format) {:controller=>"id_elements", :action=>"create"}
46
+ # new_id_element GET /id_elements/new(.:format) {:controller=>"id_elements", :action=>"new"}
47
+ # edit_id_element GET /id_elements/:id/edit(.:format) {:controller=>"id_elements", :action=>"edit"}
48
+ # id_element GET /id_elements/:id(.:format) {:controller=>"id_elements", :action=>"show"}
49
+ # PUT /id_elements/:id(.:format) {:controller=>"id_elements", :action=>"update"}
50
+ # DELETE /id_elements/:id(.:format) {:controller=>"id_elements", :action=>"destroy"}
51
+ # autocomplete_foreign_brand_name_sub_classes GET /sub_classes/autocomplete_foreign_brand_name(.:format) {:controller=>"sub_classes", :action=>"autocomplete_foreign_brand_name"}
52
+ # sub_classes GET /sub_classes(.:format) {:controller=>"sub_classes", :action=>"index"}
53
+ # POST /sub_classes(.:format) {:controller=>"sub_classes", :action=>"create"}
54
+ # new_sub_class GET /sub_classes/new(.:format) {:controller=>"sub_classes", :action=>"new"}
55
+ # edit_sub_class GET /sub_classes/:id/edit(.:format) {:controller=>"sub_classes", :action=>"edit"}
56
+ # sub_class GET /sub_classes/:id(.:format) {:controller=>"sub_classes", :action=>"show"}
57
+ # PUT /sub_classes/:id(.:format) {:controller=>"sub_classes", :action=>"update"}
58
+ # DELETE /sub_classes/:id(.:format) {:controller=>"sub_classes", :action=>"destroy"}
59
+ # autocomplete_brand_name_multiple_selections GET /multiple_selections/autocomplete_brand_name(.:format) {:controller=>"multiple_selections", :action=>"autocomplete_brand_name"}
60
+ # multiple_selections GET /multiple_selections(.:format) {:controller=>"multiple_selections", :action=>"index"}
61
+ # POST /multiple_selections(.:format) {:controller=>"multiple_selections", :action=>"create"}
62
+ # new_multiple_selection GET /multiple_selections/new(.:format) {:controller=>"multiple_selections", :action=>"new"}
63
+ # edit_multiple_selection GET /multiple_selections/:id/edit(.:format) {:controller=>"multiple_selections", :action=>"edit"}
64
+ # multiple_selection GET /multiple_selections/:id(.:format) {:controller=>"multiple_selections", :action=>"show"}
65
+ # PUT /multiple_selections/:id(.:format) {:controller=>"multiple_selections", :action=>"update"}
66
+ # DELETE /multiple_selections/:id(.:format) {:controller=>"multiple_selections", :action=>"destroy"}
67
+ # autocomplete_feature_name_nested_models GET /nested_models/autocomplete_feature_name(.:format) {:controller=>"nested_models", :action=>"autocomplete_feature_name"}
68
+ # nested_models GET /nested_models(.:format) {:controller=>"nested_models", :action=>"index"}
69
+ # POST /nested_models(.:format) {:controller=>"nested_models", :action=>"create"}
70
+ # new_nested_model GET /nested_models/new(.:format) {:controller=>"nested_models", :action=>"new"}
71
+ # edit_nested_model GET /nested_models/:id/edit(.:format) {:controller=>"nested_models", :action=>"edit"}
72
+ # nested_model GET /nested_models/:id(.:format) {:controller=>"nested_models", :action=>"show"}
73
+ # PUT /nested_models/:id(.:format) {:controller=>"nested_models", :action=>"update"}
74
+ # DELETE /nested_models/:id(.:format) {:controller=>"nested_models", :action=>"destroy"}
75
+ # autocomplete_feature_name_simple_forms GET /simple_forms/autocomplete_feature_name(.:format) {:controller=>"simple_forms", :action=>"autocomplete_feature_name"}
76
+ # simple_forms GET /simple_forms(.:format) {:controller=>"simple_forms", :action=>"index"}
77
+ # POST /simple_forms(.:format) {:controller=>"simple_forms", :action=>"create"}
78
+ # new_simple_form GET /simple_forms/new(.:format) {:controller=>"simple_forms", :action=>"new"}
79
+ # edit_simple_form GET /simple_forms/:id/edit(.:format) {:controller=>"simple_forms", :action=>"edit"}
80
+ # simple_form GET /simple_forms/:id(.:format) {:controller=>"simple_forms", :action=>"show"}
81
+ # PUT /simple_forms/:id(.:format) {:controller=>"simple_forms", :action=>"update"}
82
+ # DELETE /simple_forms/:id(.:format) {:controller=>"simple_forms", :action=>"destroy"}
83
+ # autocomplete_brand_name_scoped_autocompletes GET /scoped_autocompletes/autocomplete_brand_name(.:format) {:controller=>"scoped_autocompletes", :action=>"autocomplete_brand_name"}
84
+ # scoped_autocompletes GET /scoped_autocompletes(.:format) {:controller=>"scoped_autocompletes", :action=>"index"}
85
+ # POST /scoped_autocompletes(.:format) {:controller=>"scoped_autocompletes", :action=>"create"}
86
+ # new_scoped_autocomplete GET /scoped_autocompletes/new(.:format) {:controller=>"scoped_autocompletes", :action=>"new"}
87
+ # edit_scoped_autocomplete GET /scoped_autocompletes/:id/edit(.:format) {:controller=>"scoped_autocompletes", :action=>"edit"}
88
+ # scoped_autocomplete GET /scoped_autocompletes/:id(.:format) {:controller=>"scoped_autocompletes", :action=>"show"}
89
+ # PUT /scoped_autocompletes/:id(.:format) {:controller=>"scoped_autocompletes", :action=>"update"}
90
+ # DELETE /scoped_autocompletes/:id(.:format) {:controller=>"scoped_autocompletes", :action=>"destroy"}
@@ -0,0 +1,9 @@
1
+ class AddStateToBrands < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :brands, :state, :boolean
4
+ end
5
+
6
+ def self.down
7
+ remove_column :brands, :state
8
+ end
9
+ end
@@ -10,13 +10,14 @@
10
10
  #
11
11
  # It's strongly recommended to check this file into your version control system.
12
12
 
13
- ActiveRecord::Schema.define(:version => 20110209020136) do
13
+ ActiveRecord::Schema.define(:version => 20110423000347) do
14
14
 
15
15
  create_table "brands", :force => true do |t|
16
16
  t.string "name"
17
17
  t.datetime "created_at"
18
18
  t.datetime "updated_at"
19
19
  t.string "type"
20
+ t.boolean "state"
20
21
  end
21
22
 
22
23
  create_table "features", :force => true do |t|
@@ -3,12 +3,14 @@ Feature: Autocomplete
3
3
  As a User
4
4
  I want autocomplete!
5
5
 
6
- Background:
6
+ Background:
7
7
  Given the following brands exists:
8
- | name |
9
- | Alpha |
10
- | Beta |
11
- | Gamma |
8
+ | name | state |
9
+ | Alpha | 1 |
10
+ | Beta | 0 |
11
+ | Gamma | 0 |
12
+ | Kappa | 1 |
13
+ | Kappler | 0 |
12
14
  And the following features exists:
13
15
  | name |
14
16
  | Shiny |
@@ -62,3 +64,9 @@ Feature: Autocomplete
62
64
  And I choose "Alpha" in the autocomplete list
63
65
  Then the "Brand name" field should contain "Alpha"
64
66
 
67
+ @javascript
68
+ Scenario: Autocomplete with scope
69
+ Given I go to the new scoped autocomplete page
70
+ And I fill in "Brand name" with "ka"
71
+ And I choose "Kappa" in the autocomplete list
72
+ Then the "Brand name" field should contain "Kappa"
@@ -27,6 +27,9 @@ module Rails3JQueryAutocomplete
27
27
 
28
28
  define_method("autocomplete_#{object}_#{method}") do
29
29
 
30
+
31
+ method = options[:column_name] if options.has_key?(:column_name)
32
+
30
33
  term = params[:term]
31
34
 
32
35
  if term && !term.empty?
@@ -44,3 +47,4 @@ module Rails3JQueryAutocomplete
44
47
  end
45
48
 
46
49
  end
50
+
@@ -89,27 +89,33 @@ module Rails3JQueryAutocomplete
89
89
  # items = get_autocomplete_items(:model => get_object(object), :options => options, :term => term, :method => method)
90
90
  #
91
91
  def get_autocomplete_items(parameters)
92
- model = relation = parameters[:model]
93
- method = parameters[:method]
92
+ model = parameters[:model]
93
+ term = parameters[:term]
94
+ method = parameters[:method]
94
95
  options = parameters[:options]
95
- term = parameters[:term]
96
- is_full_search = options[:full]
97
96
 
98
- limit = get_autocomplete_limit(options)
97
+ is_full_search = options[:full]
98
+ scopes = Array(options[:scopes])
99
+ limit = get_autocomplete_limit(options)
99
100
  implementation = get_implementation(model)
100
- order = get_autocomplete_order(implementation, method, options)
101
+ order = get_autocomplete_order(implementation, method, options)
101
102
 
102
103
  like_clause = (defined?(PGconn) ? 'ILIKE' : 'LIKE')
103
104
 
105
+ items = model.scoped
106
+
107
+ scopes.each { |scope| items = items.send(scope) } unless scopes.empty?
108
+
104
109
  case implementation
105
110
  when :mongoid
106
111
  search = (is_full_search ? '.*' : '^') + term + '.*'
107
- items = model.where(method.to_sym => /#{search}/i).limit(limit).order_by(order)
112
+ items = model.where(method.to_sym => /#{search}/i).limit(limit).order_by(order)
108
113
  when :activerecord
109
- relation = model.select([:id, method] + (options[:extra_data].blank? ? [] : options[:extra_data])) unless options[:full_model]
110
- items = relation.where(["LOWER(#{method}) #{like_clause} ?", "#{(is_full_search ? '%' : '')}#{term.downcase}%"]) \
111
- .limit(limit).order(order)
114
+ items = items.select([:id, method] + (options[:extra_data].blank? ? [] : options[:extra_data])) unless options[:full_model]
115
+ items = items.where(["LOWER(#{method}) #{like_clause} ?", "#{(is_full_search ? '%' : '')}#{term.downcase}%"]) \
116
+ .limit(limit).order(order)
112
117
  end
113
118
  end
114
119
  end
115
120
  end
121
+
@@ -1,3 +1,3 @@
1
1
  module Rails3JQueryAutocomplete
2
- VERSION = '0.6.6'
2
+ VERSION = '0.7.0'
3
3
  end
@@ -16,8 +16,8 @@ Gem::Specification.new do |s|
16
16
  s.add_dependency('yajl-ruby')
17
17
 
18
18
  s.add_development_dependency('sqlite3-ruby')
19
- s.add_development_dependency('mongoid', '>= 2.0.0.rc.7')
20
- s.add_development_dependency('bson_ext', '~>1.2.4')
19
+ s.add_development_dependency('mongoid', '>= 2.0.0')
20
+ s.add_development_dependency('bson_ext', '~>1.3.0')
21
21
  s.add_development_dependency('shoulda', '~>2.11.1')
22
22
 
23
23
  s.files = `git ls-files`.split("\n")
@@ -9,7 +9,6 @@ class ActiveRecordControllerTest < ActionController::TestCase
9
9
  end
10
10
 
11
11
  class ActiveRecordSTIControllerTest < ActionController::TestCase
12
- require 'support/active_record'
13
12
  include Rails3JQueryAutocomplete::TestCase::ActiveRecord
14
13
  include Rails3JQueryAutocomplete::TestCase
15
14
 
@@ -9,10 +9,9 @@ module Rails3JQueryAutocomplete
9
9
  config.logger = nil
10
10
  end
11
11
 
12
- create_models
12
+ create_models
13
13
 
14
14
  @controller = ActorsController.new
15
-
16
15
  @movie1 = @movie_class.create(:name => 'Alpha')
17
16
  @movie2 = @movie_class.create(:name => 'Alspha')
18
17
  @movie3 = @movie_class.create(:name => 'Alzpha')
@@ -36,7 +35,7 @@ module Rails3JQueryAutocomplete
36
35
  end
37
36
 
38
37
  def destroy_models
39
- Object.send(:remove_const, :Movie)
38
+ Object.send(:remove_const, :Movie)
40
39
  end
41
40
 
42
41
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails3-jquery-autocomplete
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 3
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 6
9
- - 6
10
- version: 0.6.6
8
+ - 7
9
+ - 0
10
+ version: 0.7.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - David Padilla
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-17 00:00:00 -05:00
18
+ date: 2011-04-25 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -70,14 +70,12 @@ dependencies:
70
70
  requirements:
71
71
  - - ">="
72
72
  - !ruby/object:Gem::Version
73
- hash: 15424091
73
+ hash: 15
74
74
  segments:
75
75
  - 2
76
76
  - 0
77
77
  - 0
78
- - rc
79
- - 7
80
- version: 2.0.0.rc.7
78
+ version: 2.0.0
81
79
  type: :development
82
80
  version_requirements: *id004
83
81
  - !ruby/object:Gem::Dependency
@@ -88,12 +86,12 @@ dependencies:
88
86
  requirements:
89
87
  - - ~>
90
88
  - !ruby/object:Gem::Version
91
- hash: 23
89
+ hash: 27
92
90
  segments:
93
91
  - 1
94
- - 2
95
- - 4
96
- version: 1.2.4
92
+ - 3
93
+ - 0
94
+ version: 1.3.0
97
95
  type: :development
98
96
  version_requirements: *id005
99
97
  - !ruby/object:Gem::Dependency
@@ -124,7 +122,6 @@ files:
124
122
  - .document
125
123
  - .gitignore
126
124
  - Gemfile
127
- - Gemfile.lock
128
125
  - LICENSE
129
126
  - README.markdown
130
127
  - Rakefile
@@ -138,6 +135,7 @@ files:
138
135
  - integration/app/controllers/id_elements_controller.rb
139
136
  - integration/app/controllers/multiple_selections_controller.rb
140
137
  - integration/app/controllers/nested_models_controller.rb
138
+ - integration/app/controllers/scoped_autocompletes_controller.rb
141
139
  - integration/app/controllers/simple_forms_controller.rb
142
140
  - integration/app/controllers/sub_classes_controller.rb
143
141
  - integration/app/helpers/application_helper.rb
@@ -155,6 +153,7 @@ files:
155
153
  - integration/app/views/layouts/application.html.haml
156
154
  - integration/app/views/multiple_selections/new.html.haml
157
155
  - integration/app/views/nested_models/new.html.haml
156
+ - integration/app/views/scoped_autocompletes/new.html.haml
158
157
  - integration/app/views/simple_forms/new.html.haml
159
158
  - integration/app/views/sub_classes/new.html.haml
160
159
  - integration/config.ru
@@ -177,6 +176,7 @@ files:
177
176
  - integration/db/migrate/20101209014355_create_products.rb
178
177
  - integration/db/migrate/20101209053936_add_type_to_brand.rb
179
178
  - integration/db/migrate/20110209020136_create_features.rb
179
+ - integration/db/migrate/20110423000347_add_state_to_brands.rb
180
180
  - integration/db/schema.rb
181
181
  - integration/db/seeds.rb
182
182
  - integration/doc/README_FOR_APP
@@ -218,7 +218,6 @@ files:
218
218
  - rails3-jquery-autocomplete.gemspec
219
219
  - test/form_helper_test.rb
220
220
  - test/generators/generator_test.rb
221
- - test/helpers.rb
222
221
  - test/implementations_test.rb
223
222
  - test/support/active_record.rb
224
223
  - test/support/mongoid.rb
@@ -261,7 +260,6 @@ summary: Use jQuery's autocomplete plugin with Rails 3.
261
260
  test_files:
262
261
  - test/form_helper_test.rb
263
262
  - test/generators/generator_test.rb
264
- - test/helpers.rb
265
263
  - test/implementations_test.rb
266
264
  - test/support/active_record.rb
267
265
  - test/support/mongoid.rb
data/Gemfile.lock DELETED
@@ -1,97 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- rails3-jquery-autocomplete (0.6.6)
5
- rails (~> 3.0.0)
6
- yajl-ruby
7
-
8
- GEM
9
- remote: http://rubygems.org/
10
- specs:
11
- abstract (1.0.0)
12
- actionmailer (3.0.5)
13
- actionpack (= 3.0.5)
14
- mail (~> 2.2.15)
15
- actionpack (3.0.5)
16
- activemodel (= 3.0.5)
17
- activesupport (= 3.0.5)
18
- builder (~> 2.1.2)
19
- erubis (~> 2.6.6)
20
- i18n (~> 0.4)
21
- rack (~> 1.2.1)
22
- rack-mount (~> 0.6.13)
23
- rack-test (~> 0.5.7)
24
- tzinfo (~> 0.3.23)
25
- activemodel (3.0.5)
26
- activesupport (= 3.0.5)
27
- builder (~> 2.1.2)
28
- i18n (~> 0.4)
29
- activerecord (3.0.5)
30
- activemodel (= 3.0.5)
31
- activesupport (= 3.0.5)
32
- arel (~> 2.0.2)
33
- tzinfo (~> 0.3.23)
34
- activeresource (3.0.5)
35
- activemodel (= 3.0.5)
36
- activesupport (= 3.0.5)
37
- activesupport (3.0.5)
38
- arel (2.0.9)
39
- bson (1.2.4)
40
- bson_ext (1.2.4)
41
- builder (2.1.2)
42
- erubis (2.6.6)
43
- abstract (>= 1.0.0)
44
- i18n (0.5.0)
45
- mail (2.2.15)
46
- activesupport (>= 2.3.6)
47
- i18n (>= 0.4.0)
48
- mime-types (~> 1.16)
49
- treetop (~> 1.4.8)
50
- mime-types (1.16)
51
- mongo (1.2.4)
52
- bson (>= 1.2.4)
53
- mongoid (2.0.0.rc.7)
54
- activemodel (~> 3.0)
55
- mongo (~> 1.2)
56
- tzinfo (~> 0.3.22)
57
- will_paginate (~> 3.0.pre)
58
- polyglot (0.3.1)
59
- rack (1.2.2)
60
- rack-mount (0.6.14)
61
- rack (>= 1.0.0)
62
- rack-test (0.5.7)
63
- rack (>= 1.0)
64
- rails (3.0.5)
65
- actionmailer (= 3.0.5)
66
- actionpack (= 3.0.5)
67
- activerecord (= 3.0.5)
68
- activeresource (= 3.0.5)
69
- activesupport (= 3.0.5)
70
- bundler (~> 1.0)
71
- railties (= 3.0.5)
72
- railties (3.0.5)
73
- actionpack (= 3.0.5)
74
- activesupport (= 3.0.5)
75
- rake (>= 0.8.7)
76
- thor (~> 0.14.4)
77
- rake (0.8.7)
78
- shoulda (2.11.3)
79
- sqlite3 (1.3.3)
80
- sqlite3-ruby (1.3.3)
81
- sqlite3 (>= 1.3.3)
82
- thor (0.14.6)
83
- treetop (1.4.9)
84
- polyglot (>= 0.3.1)
85
- tzinfo (0.3.24)
86
- will_paginate (3.0.pre2)
87
- yajl-ruby (0.8.2)
88
-
89
- PLATFORMS
90
- ruby
91
-
92
- DEPENDENCIES
93
- bson_ext (~> 1.2.4)
94
- mongoid (>= 2.0.0.rc.7)
95
- rails3-jquery-autocomplete!
96
- shoulda (~> 2.11.1)
97
- sqlite3-ruby
data/test/helpers.rb DELETED
@@ -1,122 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Rails3JQueryAutocomplete
4
- module Test
5
-
6
- class HelpersTest < ::Test::Unit::TestCase
7
-
8
- assert_structure = lambda do |hash|
9
- assert_instance_of(String, hash['label'])
10
- assert_instance_of(String, hash['value'])
11
- end
12
-
13
- items_exist_assert = lambda do |model|
14
- items = Helpers.get_items(:model => model), :term => 'A', :method => 'name')
15
- assert(items)
16
- assert_equal(3, items.size)
17
- end
18
-
19
- context 'with Mongoid support' do
20
-
21
- require 'support/mongoid'
22
-
23
- context 'passing a Mongoid query result' do
24
-
25
- include Rails3JQueryAutocomplete::Mongoid::Test
26
-
27
- should 'parse items to JSON' do
28
- response = Helpers.json_for_autocomplete(Game.all, :name)
29
- assert_not_nil(response)
30
- response.each(&assert_structure)
31
- end
32
- end
33
-
34
- context 'looking for items' do
35
-
36
- include Rails3JQueryAutocomplete::Mongoid::Test
37
-
38
- should 'return items' do
39
- items_exist_assert.call(Game)
40
- end
41
- end
42
- end
43
-
44
- context 'with ActiveRecord support' do
45
-
46
- require 'support/active_record'
47
-
48
- context 'passing an ActiveRecord query result' do
49
-
50
- include Rails3JQueryAutocomplete::ActiveRecord::Test
51
-
52
- should 'parse items to JSON' do
53
- response = Helpers.json_for_autocomplete(Game.all, :name)
54
- assert_not_nil(response)
55
- response.each(&assert_structure)
56
- end
57
- end
58
-
59
- context 'looking for items' do
60
-
61
- include Rails3JQueryAutocomplete::ActiveRecord::Test
62
-
63
- should 'return items' do
64
- items_exist_assert.call(Movie)
65
- end
66
- end
67
- end
68
-
69
- context 'converting a symbol to connstant' do
70
- should 'return a defined constant' do
71
- ::MyJustDefinedConstant = Class.new
72
- assert_equal(::MyJustDefinedConstant, Helpers.get_object(:my_just_defined_constant))
73
- end
74
- end
75
-
76
- context 'returning one symbol for an implemented adapter' do
77
-
78
- require 'support/active_record'
79
- require 'support/mongoid'
80
-
81
- should 'return a symbol for defined interface' do
82
- assert_equal(:activerecord, Helpers.get_implementation(::Movie))
83
- assert_equal(:mongoid, Helpers.get_implementation(::Game))
84
- end
85
- end
86
-
87
- context 'returning a limit integer number' do
88
-
89
- should 'return default value of 10' do
90
- assert_equal(10, Helpers.get_limit({}))
91
- end
92
-
93
- should 'return params value' do
94
- assert_equal(1, Helpers.get_limit(:limit => 1))
95
- end
96
- end
97
-
98
- context 'returning elements ordering' do
99
-
100
- should 'returning default ascending order for activerecord' do
101
- assert_equal("name ASC", Helpers.get_order(:activerecord, 'name', {}))
102
- end
103
-
104
- should 'returning descending order for activerecord' do
105
- assert_equal("thisfield DESC", Helpers.get_order(:activerecord, 'otherfield', :order => 'thisfield DESC'))
106
- end
107
-
108
- should 'returning default ascending order for mongoid' do
109
- expected = [[:name, :asc]]
110
- returned = Helpers.get_order(:mongoid, 'name', {})
111
- assert expected.eql?(returned)
112
- end
113
-
114
- should 'returning order according paramters for mongoid' do
115
- expected = [[:first, :asc], [:second, :desc]]
116
- returned = Helpers.get_order(:mongoid, 'name', {:order => 'first asc, second desc'})
117
- assert expected.eql?(returned)
118
- end
119
- end
120
- end
121
- end
122
- end