algoliasearch-rails 1.10.7 → 1.10.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 80b4afee8f3b76e7ae6bc4a85e36f7a2ac11404d
4
- data.tar.gz: 293b6baee5f060f5524ae2f573c9bccdb044e4fa
3
+ metadata.gz: 44e136c402b306cd7c5be8d13a9802d80a67c52a
4
+ data.tar.gz: 8b169df8210d519c047ed866c501dfc2af41d695
5
5
  SHA512:
6
- metadata.gz: a471bf1df7cf7d5c4a2645b8aaeff63baaf7e7e2dc970e33e07a7e23fe6d5cfc48d0e773c06ca730ff5bc55b4263449ef25018e9128a0e01dacdd67485d3c27e
7
- data.tar.gz: e6c60c16d668d91e7960ee79532d20567e6d29d9fdf1c51948f05358eec0759749ee0adc1999eaeb00e35d7e3ad3ec07952eb547c5a0771c3e71f390efd46df3
6
+ metadata.gz: 89c7c31981f23b19eae9da07fb580e9951a2e1557f1a953fbed1e6be4b9ebcb43d73b8aaf141059b8dec9f287fba9a8d19f5bc8d4c1a3dcfd71bc60cfd8e0b18
7
+ data.tar.gz: 8131804d5fc2c711e11cec579fb66fd1c302d36b3adc55ef5965deec138d677d7b1a92efec99fd5fdf95e8555c4c8746b8523e57b5cbbebfcb6e154efdb06141
data/.travis.yml CHANGED
@@ -11,5 +11,5 @@ rvm:
11
11
  - rbx-2
12
12
  env:
13
13
  global:
14
- - secure: wRDLGbg+GS7Eo6KhjyAA6YNm6rFVo8j53b0oEZLBkJ2VzvLsKMnpEfopzc0W2wttgVwgkX8C/9adbd/BPsEYbpO+uJFt5DX3A2HVVXCZ2jP0TgLj2m4dOA4ohroYDcdeB0fuZM7a7hvFNswd9vSRLmes6vLQ0GcFTSz1rWQLf6U=
15
- - secure: e7We+H6/XlWrPVSlLNcXdQxSC520SP2BteSddBjD9YNx9DosMDLTi85Rw3KJGRQowoftv00TwAe+iCRTyPElrW0Q/y5ozAU9UyipAtwhZhM06IPx1fhkU/Q3FIX/iwgruS253aiGlIUg7YcdGwfYuURk2iu7Xp3OdhS/evxbj/E=
14
+ - secure: kD+PX8ZNg+AAzyr6WYs1vp9teAkzMfEoYkIMI0hrRN0ml9ccJVsJR1pIGpaIwyCa5PmFtCZ1Xi2vFb4XzTTeaZoHHS/ll9LwuQH6mwvdgj3n6TmNRdq3b/oGRHBX4Z0HMobqaftuzY/V8iTpVk92jwIY8NPj00k055b2jrKqhdw=
15
+ - secure: Eai99h4K7s9/Sh3CHClWs3IQNaEUdVagpmA/A8m0rysGBAYJdMKbUOp9DZPAmCnT+06l0aFv87+CRYtgyX05pE5f21nqBOU46eKS38cLif3aPTwFmwokf28WLDgmZKa/zJp767SiQ/dp0hz+LJrkJvkDRnA1un36f7wiyY9xnYs=
data/ChangeLog CHANGED
@@ -1,5 +1,9 @@
1
1
  CHANGELOG
2
2
 
3
+ 2014-08-07 1.10.8
4
+
5
+ * Fixes searches on Mongoid introduced in 1.10.7 (author: @zarqman)
6
+
3
7
  2014-07-17 1.10.7
4
8
 
5
9
  * Query optimization: load search results from database using a single query (author: @outoftime)
data/README.md CHANGED
@@ -106,6 +106,17 @@ class Product < ActiveRecord::Base
106
106
  end
107
107
  ```
108
108
 
109
+ #### Frontend Search (realtime experience)
110
+
111
+
112
+ We recommend the usage of our [JavaScript API Client](https://github.com/algolia/algoliasearch-client-js) to perform queries. The JS API client is part of the gem, just require ```algolia/algoliasearch.min``` somewhere in your JavaScript manifest, for example in ```application.js``` if you are using Rails 3.1+:
113
+
114
+ ```javascript
115
+ //= require algolia/algoliasearch.min
116
+ ```
117
+
118
+ #### Backend Search
119
+
109
120
  A search returns ORM-compliant objects reloading them from your database.
110
121
 
111
122
  ```ruby
@@ -118,9 +129,9 @@ If you want to retrieve the raw JSON answer from the API, without re-loading the
118
129
  p Contact.raw_search("jon doe")
119
130
  ```
120
131
 
121
- By the way, we recommend the usage of our [JavaScript API Client](https://github.com/algolia/algoliasearch-client-js) to perform queries.
132
+ #### Notes
122
133
 
123
- **Notes:** All methods injected by the ```AlgoliaSearch``` include are prefixed by ```algolia_``` and aliased to the associated short names if they aren't already defined.
134
+ All methods injected by the ```AlgoliaSearch``` include are prefixed by ```algolia_``` and aliased to the associated short names if they aren't already defined.
124
135
 
125
136
  ```ruby
126
137
  Contact.algolia_reindex! # <=> Contact.reindex!
@@ -131,6 +142,8 @@ Contact.algolia_search("jon doe") # <=> Contact.search("jon doe")
131
142
  Options
132
143
  ----------
133
144
 
145
+ #### Auto-indexing & asynchronism
146
+
134
147
  Each time a record is saved; it will be - asynchronously - indexed. On the other hand, each time a record is destroyed, it will be - asynchronously - removed from the index.
135
148
 
136
149
  You can disable auto-indexing and auto-removing setting the following options:
@@ -167,6 +180,8 @@ class Contact < ActiveRecord::Base
167
180
  end
168
181
  ```
169
182
 
183
+ #### Custom index name
184
+
170
185
  You can force the index name using the following option:
171
186
 
172
187
  ```ruby
@@ -179,6 +194,8 @@ class Contact < ActiveRecord::Base
179
194
  end
180
195
  ```
181
196
 
197
+ #### Per-environment indexes
198
+
182
199
  You can suffix the index name with the current Rails environment using the following option:
183
200
 
184
201
  ```ruby
@@ -191,6 +208,8 @@ class Contact < ActiveRecord::Base
191
208
  end
192
209
  ```
193
210
 
211
+ #### Custom attribute definition
212
+
194
213
  You can use a block to specify a complex attribute value
195
214
 
196
215
  ```ruby
@@ -206,6 +225,8 @@ class Contact < ActiveRecord::Base
206
225
  end
207
226
  ```
208
227
 
228
+ #### Custom ```objectID```
229
+
209
230
  By default, the `objectID` is based on your record's `id`. You can change this behavior specifying the `:id` option (be sure to use a uniq field).
210
231
 
211
232
  ```ruby
@@ -217,6 +238,8 @@ class UniqUser < ActiveRecord::Base
217
238
  end
218
239
  ```
219
240
 
241
+ #### Restrict indexing to a subset of your data
242
+
220
243
  You can add constraints controlling if a record must be indexed by using options the ```:if``` or ```:unless``` options.
221
244
 
222
245
  ```ruby
@@ -320,6 +343,8 @@ end
320
343
  Indexing
321
344
  ---------
322
345
 
346
+ #### Manual indexing
347
+
323
348
  You can trigger indexing using the <code>index!</code> instance method.
324
349
 
325
350
  ```ruby
@@ -327,6 +352,8 @@ c = Contact.create!(params[:contact])
327
352
  c.index!
328
353
  ```
329
354
 
355
+ #### Manual removal
356
+
330
357
  And trigger index removing using the <code>remove_from_index!</code> instance method.
331
358
 
332
359
  ```ruby
@@ -334,6 +361,8 @@ c.remove_from_index!
334
361
  c.destroy
335
362
  ```
336
363
 
364
+ #### Reindexing
365
+
337
366
  To *safely* reindex all your records (index to a temporary index + move the temporary index to the current one atomically), use the <code>reindex</code> class method:
338
367
 
339
368
  ```ruby
@@ -346,6 +375,8 @@ To reindex all your records (in place, without deleting out-dated records), use
346
375
  Contact.reindex!
347
376
  ```
348
377
 
378
+ #### Clearing an index
379
+
349
380
  To clear an index, use the <code>clear_index!</code> class method:
350
381
 
351
382
  ```ruby
@@ -450,6 +481,8 @@ At query time, specify <code>{ tagFilters: 'tagvalue' }</code> or <code>{ tagFil
450
481
  Search
451
482
  ----------
452
483
 
484
+ ***Notes:*** We recommend the usage of our [JavaScript API Client](https://github.com/algolia/algoliasearch-client-js) to perform queries directly from the end-user browser without going through your server.
485
+
453
486
  A search returns ORM-compliant objects reloading them from your database. We recommend the usage of our [JavaScript API Client](https://github.com/algolia/algoliasearch-client-js) to perform queries to decrease the overall latency and offload your servers.
454
487
 
455
488
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.10.7
1
+ 1.10.8
@@ -6,11 +6,11 @@
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "algoliasearch-rails"
9
- s.version = "1.10.7"
9
+ s.version = "1.10.8"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.authors = ["Algolia"]
13
- s.date = "2014-07-17"
13
+ s.date = "2014-08-07"
14
14
  s.description = "AlgoliaSearch integration to your favorite ORM"
15
15
  s.email = "contact@algolia.com"
16
16
  s.extra_rdoc_files = [
@@ -357,7 +357,12 @@ module AlgoliaSearch
357
357
  end
358
358
  json = algolia_raw_search(q, params)
359
359
  hit_ids = json['hits'].map { |hit| hit['objectID'] }
360
- results_by_id = algoliasearch_options[:type].where(algolia_object_id_method => hit_ids).index_by do |hit|
360
+ if defined?(::Mongoid::Document) && self.include?(::Mongoid::Document)
361
+ condition_key = algolia_object_id_method.in
362
+ else
363
+ condition_key = algolia_object_id_method
364
+ end
365
+ results_by_id = algoliasearch_options[:type].where(condition_key => hit_ids).index_by do |hit|
361
366
  algolia_object_id_of(hit)
362
367
  end
363
368
  results = json['hits'].map do |hit|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: algoliasearch-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.7
4
+ version: 1.10.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Algolia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-17 00:00:00.000000000 Z
11
+ date: 2014-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -140,10 +140,10 @@ files:
140
140
  - spec/utilities_spec.rb
141
141
  - vendor/assets/javascripts/algolia/algoliasearch.js
142
142
  - vendor/assets/javascripts/algolia/algoliasearch.min.js
143
- - vendor/assets/javascripts/algolia/typeahead.jquery.js
143
+ - vendor/assets/javascripts/algolia/bloodhound.js
144
144
  - vendor/assets/javascripts/algolia/typeahead.bundle.js
145
145
  - vendor/assets/javascripts/algolia/typeahead.bundle.min.js
146
- - vendor/assets/javascripts/algolia/bloodhound.js
146
+ - vendor/assets/javascripts/algolia/typeahead.jquery.js
147
147
  homepage: http://github.com/algolia/algoliasearch-rails
148
148
  licenses:
149
149
  - MIT
@@ -164,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
164
  version: '0'
165
165
  requirements: []
166
166
  rubyforge_project:
167
- rubygems_version: 2.1.11
167
+ rubygems_version: 2.2.2
168
168
  signing_key:
169
169
  specification_version: 4
170
170
  summary: AlgoliaSearch integration to your favorite ORM