searchify 0.0.8 → 0.0.9

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/README.md CHANGED
@@ -106,8 +106,8 @@ You can always override the defaults with an initializer. Options are as follow:
106
106
 
107
107
  ### Search stategies
108
108
 
109
- By default, Searchify does a case insensitive search on `name`, `title` and `abbreviation` fields of your models, if they exist. You can of course specify
110
- a custom search strategy by defining a class method named `search_strategy` in your model. It should returns an array of hash.
109
+ By default, Searchify does a case insensitive search on `name`, `title` and `abbreviation` fields of your models, if they exist.
110
+ To override the default search strategy, just define a class method named `search_strategy` in your model. It should accepts two arguments and returns an array of hash.
111
111
 
112
112
  class User < ActiveRecord::Base
113
113
  def self.search_strategy(term, scopes)
@@ -123,4 +123,10 @@ a custom search strategy by defining a class method named `search_strategy` in y
123
123
  {:label => user.username, :id => resource.id}
124
124
  end
125
125
  end
126
- end
126
+ end
127
+
128
+ You may also want to use a per-search search strategy, without affecting the default one. The `search_strategy` option is for you.
129
+
130
+ <%= searchify :users, :search_strategy => :my_custom_method %>
131
+
132
+ Searchify will then try to call your `User.my_custom_method`. It must accepts two arguments, and still return a hash.
@@ -25,16 +25,16 @@ module Searchify
25
25
  end
26
26
  end
27
27
 
28
- def extract_search_url(collection, scopes=nil, search_strategy=nil)
29
- scopes ||= {}
28
+ def extract_search_url(collection, params=nil, search_strategy=nil)
29
+ params ||= {}
30
30
 
31
- url = "#{searchify_path}/search/#{collection}"
32
- url << "/#{search_strategy}" if search_strategy
33
- url << ".json?"
31
+ url = "#{searchify_path}/search/#{collection}.json?"
34
32
 
35
- scopes = searchify_scopes.merge(scopes) if Searchify::Config.scope_awareness
33
+ params = searchify_scopes.merge(params) if Searchify::Config.scope_awareness
36
34
 
37
- url << scopes.map{ |k,v| "#{k}=#{v}" }.join('&')
35
+ params[:search_strategy] = search_strategy if search_strategy
36
+
37
+ url << params.map{ |k,v| "#{k}=#{v}" }.join('&')
38
38
  end
39
39
 
40
40
  def extract_select_url(action)
@@ -88,13 +88,14 @@ class ActionView::Helpers::FormBuilder
88
88
  model_name.to_s.tableize
89
89
  end
90
90
 
91
- def extract_search_url(collection, scopes=nil, search_strategy=nil)
92
- scopes ||= {}
91
+ def extract_search_url(collection, params=nil, search_strategy=nil)
92
+ params ||= {}
93
+
94
+
95
+ url = "#{@template.searchify_path}/search/#{collection}.json?"
96
+ params[:search_strategy] = search_strategy if search_strategy
93
97
 
94
- url = "#{@template.searchify_path}/search/#{collection}"
95
- url << "/#{search_strategy}" if search_strategy
96
- url << ".json?"
97
- url << scopes.map{ |k,v| "#{k}=#{v}" }.join('&')
98
+ url << params.map{ |k,v| "#{k}=#{v}" }.join('&')
98
99
  end
99
100
 
100
101
  def extract_model_name(field)
@@ -1,4 +1,3 @@
1
1
  Searchify::Engine.routes.draw do
2
- match '/search/:collection/:search_strategy' => "searchify#search"
3
2
  match '/search/:collection' => "searchify#search"
4
3
  end
@@ -1,3 +1,3 @@
1
1
  module Searchify
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: searchify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-09 00:00:00.000000000Z
12
+ date: 2011-12-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &9471040 !ruby/object:Gem::Requirement
16
+ requirement: &20828500 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ~>
19
+ - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 3.1.1
21
+ version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *9471040
24
+ version_requirements: *20828500
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: jquery-rails
27
- requirement: &9470580 !ruby/object:Gem::Requirement
27
+ requirement: &20828040 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *9470580
35
+ version_requirements: *20828040
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: sqlite3
38
- requirement: &9469780 !ruby/object:Gem::Requirement
38
+ requirement: &20827600 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *9469780
46
+ version_requirements: *20827600
47
47
  description: Searchify provides a quick way to search your collections.
48
48
  email:
49
49
  - christ.blais@gmail.com
@@ -52,51 +52,50 @@ extensions: []
52
52
  extra_rdoc_files: []
53
53
  files:
54
54
  - app/helpers/searchify/searchify_helper.rb
55
- - app/controllers/searchify/searchify_controller.rb
56
55
  - app/assets/javascripts/searchify/searchify.js
56
+ - app/controllers/searchify/searchify_controller.rb
57
57
  - config/routes.rb
58
- - lib/searchify/version.rb
58
+ - lib/tasks/searchify_tasks.rake
59
+ - lib/searchify.rb
59
60
  - lib/searchify/engine.rb
60
61
  - lib/searchify/controller.rb
62
+ - lib/searchify/version.rb
61
63
  - lib/searchify/config.rb
62
- - lib/searchify.rb
63
- - lib/tasks/searchify_tasks.rake
64
64
  - MIT-LICENSE
65
65
  - Rakefile
66
66
  - README.md
67
- - test/functional/searchify/searchify_controller_test.rb
68
- - test/unit/helpers/searchify/searchify_helper_test.rb
67
+ - test/test_helper.rb
69
68
  - test/searchify_test.rb
69
+ - test/integration/navigation_test.rb
70
+ - test/functional/searchify/searchify_controller_test.rb
71
+ - test/dummy/script/rails
70
72
  - test/dummy/config/database.yml
71
- - test/dummy/config/application.rb
72
- - test/dummy/config/environment.rb
73
- - test/dummy/config/initializers/session_store.rb
74
73
  - test/dummy/config/initializers/secret_token.rb
74
+ - test/dummy/config/initializers/inflections.rb
75
+ - test/dummy/config/initializers/session_store.rb
75
76
  - test/dummy/config/initializers/mime_types.rb
76
77
  - test/dummy/config/initializers/wrap_parameters.rb
77
- - test/dummy/config/initializers/inflections.rb
78
78
  - test/dummy/config/initializers/backtrace_silencers.rb
79
+ - test/dummy/config/application.rb
79
80
  - test/dummy/config/routes.rb
80
- - test/dummy/config/locales/en.yml
81
+ - test/dummy/config/environment.rb
82
+ - test/dummy/config/environments/production.rb
81
83
  - test/dummy/config/environments/development.rb
82
84
  - test/dummy/config/environments/test.rb
83
- - test/dummy/config/environments/production.rb
85
+ - test/dummy/config/locales/en.yml
84
86
  - test/dummy/config/boot.rb
85
- - test/dummy/Rakefile
86
- - test/dummy/config.ru
87
87
  - test/dummy/app/helpers/application_helper.rb
88
- - test/dummy/app/controllers/application_controller.rb
89
88
  - test/dummy/app/views/layouts/application.html.erb
90
89
  - test/dummy/app/assets/stylesheets/application.css
91
90
  - test/dummy/app/assets/javascripts/application.js
92
- - test/dummy/log/development.log
93
- - test/dummy/public/404.html
91
+ - test/dummy/app/controllers/application_controller.rb
92
+ - test/dummy/Rakefile
93
+ - test/dummy/config.ru
94
94
  - test/dummy/public/favicon.ico
95
- - test/dummy/public/422.html
96
95
  - test/dummy/public/500.html
97
- - test/dummy/script/rails
98
- - test/test_helper.rb
99
- - test/integration/navigation_test.rb
96
+ - test/dummy/public/404.html
97
+ - test/dummy/public/422.html
98
+ - test/unit/helpers/searchify/searchify_helper_test.rb
100
99
  homepage: http://github.com/christianblais/searchify
101
100
  licenses: []
102
101
  post_install_message:
@@ -122,36 +121,35 @@ signing_key:
122
121
  specification_version: 3
123
122
  summary: Search with ease!
124
123
  test_files:
125
- - test/functional/searchify/searchify_controller_test.rb
126
- - test/unit/helpers/searchify/searchify_helper_test.rb
124
+ - test/test_helper.rb
127
125
  - test/searchify_test.rb
126
+ - test/integration/navigation_test.rb
127
+ - test/functional/searchify/searchify_controller_test.rb
128
+ - test/dummy/script/rails
128
129
  - test/dummy/config/database.yml
129
- - test/dummy/config/application.rb
130
- - test/dummy/config/environment.rb
131
- - test/dummy/config/initializers/session_store.rb
132
130
  - test/dummy/config/initializers/secret_token.rb
131
+ - test/dummy/config/initializers/inflections.rb
132
+ - test/dummy/config/initializers/session_store.rb
133
133
  - test/dummy/config/initializers/mime_types.rb
134
134
  - test/dummy/config/initializers/wrap_parameters.rb
135
- - test/dummy/config/initializers/inflections.rb
136
135
  - test/dummy/config/initializers/backtrace_silencers.rb
136
+ - test/dummy/config/application.rb
137
137
  - test/dummy/config/routes.rb
138
- - test/dummy/config/locales/en.yml
138
+ - test/dummy/config/environment.rb
139
+ - test/dummy/config/environments/production.rb
139
140
  - test/dummy/config/environments/development.rb
140
141
  - test/dummy/config/environments/test.rb
141
- - test/dummy/config/environments/production.rb
142
+ - test/dummy/config/locales/en.yml
142
143
  - test/dummy/config/boot.rb
143
- - test/dummy/Rakefile
144
- - test/dummy/config.ru
145
144
  - test/dummy/app/helpers/application_helper.rb
146
- - test/dummy/app/controllers/application_controller.rb
147
145
  - test/dummy/app/views/layouts/application.html.erb
148
146
  - test/dummy/app/assets/stylesheets/application.css
149
147
  - test/dummy/app/assets/javascripts/application.js
150
- - test/dummy/log/development.log
151
- - test/dummy/public/404.html
148
+ - test/dummy/app/controllers/application_controller.rb
149
+ - test/dummy/Rakefile
150
+ - test/dummy/config.ru
152
151
  - test/dummy/public/favicon.ico
153
- - test/dummy/public/422.html
154
152
  - test/dummy/public/500.html
155
- - test/dummy/script/rails
156
- - test/test_helper.rb
157
- - test/integration/navigation_test.rb
153
+ - test/dummy/public/404.html
154
+ - test/dummy/public/422.html
155
+ - test/unit/helpers/searchify/searchify_helper_test.rb
File without changes