algoliasearch-rails 1.2.1 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog +31 -0
- data/README.md +3 -3
- data/VERSION +1 -1
- data/algoliasearch-rails.gemspec +4 -2
- data/lib/algoliasearch-rails.rb +15 -6
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 870048b483ecc405daa61ebd24ef2624adeb48d0
|
4
|
+
data.tar.gz: daef90a5174d5424debf92a2301ea82a39a3d92f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a72f0cab95ce45d1ab1a348c659944ce955a5738a6d48b3e3cc8fcfce7ba46e339e6a9ccfea0b582a10fe931b971780da0e0c8bad4c1229a8255238e57ec3ce
|
7
|
+
data.tar.gz: 08221737fd46c48e13a447e21270606ab3e18fa8fcb468d7bfdd60e48b5f55d646bbf12d63dc2d71f004149d6c556e93d768f4f8a6a40989472bafc834900fca
|
data/ChangeLog
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
CHANGELOG
|
2
|
+
|
3
|
+
2013-10-15 1.3.0
|
4
|
+
|
5
|
+
* synchronous flag is now false by default
|
6
|
+
* do not set settings if they didn't chang
|
7
|
+
|
8
|
+
2013-10-15 1.2.1
|
9
|
+
|
10
|
+
* Updated deps, especially algoliasearch to 1.1.3 to solve thread-safety issues
|
11
|
+
|
12
|
+
2013-10-14 1.2.0
|
13
|
+
|
14
|
+
* embeds a typeahead.js based UI
|
15
|
+
|
16
|
+
2013-10-04 1.1.8
|
17
|
+
|
18
|
+
* Avoid concurrent access to the same index while running tests with TravisCI
|
19
|
+
* to check if the full-reindexing has been done, checking the last task is enough
|
20
|
+
|
21
|
+
2013-10-02 1.1.7
|
22
|
+
|
23
|
+
* Updated environment variables
|
24
|
+
* Plug travis and various badges
|
25
|
+
* Fixed attribute changes detection
|
26
|
+
* Upgrade to algoliasearch-client-ruby 1.1.1
|
27
|
+
|
28
|
+
2013-10-01 1.1.6
|
29
|
+
|
30
|
+
* Initial import
|
31
|
+
|
data/README.md
CHANGED
@@ -87,7 +87,7 @@ p Contact.search("jon doe")
|
|
87
87
|
Options
|
88
88
|
----------
|
89
89
|
|
90
|
-
Each time a record is saved; it will be -
|
90
|
+
Each time a record is saved; it will be - asynchronously - indexed. In the other hand, each time a record is destroyed, it will be - asynchronoulsy - removed from the index.
|
91
91
|
|
92
92
|
You can disable auto-indexing and auto-removing setting the following options:
|
93
93
|
|
@@ -101,13 +101,13 @@ class Contact < ActiveRecord::Base
|
|
101
101
|
end
|
102
102
|
```
|
103
103
|
|
104
|
-
You can force indexing and removing to be
|
104
|
+
You can force indexing and removing to be synchronous by setting the following option:
|
105
105
|
|
106
106
|
```ruby
|
107
107
|
class Contact < ActiveRecord::Base
|
108
108
|
include AlgoliaSearch
|
109
109
|
|
110
|
-
algoliasearch synchronous:
|
110
|
+
algoliasearch synchronous: true do
|
111
111
|
attribute :first_name, :last_name, :email
|
112
112
|
end
|
113
113
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.3.0
|
data/algoliasearch-rails.gemspec
CHANGED
@@ -5,14 +5,15 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "algoliasearch-rails"
|
8
|
-
s.version = "1.
|
8
|
+
s.version = "1.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Algolia"]
|
12
|
-
s.date = "2013-10-
|
12
|
+
s.date = "2013-10-16"
|
13
13
|
s.description = "AlgoliaSearch integration to your favorite ORM"
|
14
14
|
s.email = "contact@algolia.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
|
+
"ChangeLog",
|
16
17
|
"LICENSE",
|
17
18
|
"README.md"
|
18
19
|
]
|
@@ -20,6 +21,7 @@ Gem::Specification.new do |s|
|
|
20
21
|
".document",
|
21
22
|
".rspec",
|
22
23
|
".travis.yml",
|
24
|
+
"ChangeLog",
|
23
25
|
"Gemfile",
|
24
26
|
"Gemfile.lock",
|
25
27
|
"LICENSE",
|
data/lib/algoliasearch-rails.rb
CHANGED
@@ -87,7 +87,7 @@ module AlgoliaSearch
|
|
87
87
|
@index_options = IndexOptions.new(block_given? ? Proc.new : nil)
|
88
88
|
attr_accessor :highlight_result
|
89
89
|
|
90
|
-
|
90
|
+
if options[:synchronous] == true
|
91
91
|
before_save :mark_synchronous if respond_to?(:before_save)
|
92
92
|
end
|
93
93
|
unless options[:auto_index] == false
|
@@ -103,7 +103,7 @@ module AlgoliaSearch
|
|
103
103
|
init
|
104
104
|
end
|
105
105
|
|
106
|
-
def reindex!(batch_size = 1000, synchronous =
|
106
|
+
def reindex!(batch_size = 1000, synchronous = false)
|
107
107
|
last_task = nil
|
108
108
|
find_in_batches(batch_size: batch_size) do |group|
|
109
109
|
objects = group.map { |o| attributes(o).merge 'objectID' => o.id.to_s }
|
@@ -112,7 +112,7 @@ module AlgoliaSearch
|
|
112
112
|
@index.wait_task(last_task["taskID"]) if last_task and synchronous == true
|
113
113
|
end
|
114
114
|
|
115
|
-
def index!(object, synchronous =
|
115
|
+
def index!(object, synchronous = false)
|
116
116
|
if synchronous
|
117
117
|
@index.add_object!(attributes(object), object.id.to_s)
|
118
118
|
else
|
@@ -120,7 +120,7 @@ module AlgoliaSearch
|
|
120
120
|
end
|
121
121
|
end
|
122
122
|
|
123
|
-
def remove_from_index!(object, synchronous =
|
123
|
+
def remove_from_index!(object, synchronous = false)
|
124
124
|
if synchronous
|
125
125
|
@index.delete_object!(object.id.to_s)
|
126
126
|
else
|
@@ -147,7 +147,8 @@ module AlgoliaSearch
|
|
147
147
|
def init
|
148
148
|
@index ||= Algolia::Index.new(@options[:index_name] || model_name)
|
149
149
|
settings = @index_options.to_settings
|
150
|
-
@index.
|
150
|
+
prev_settings = @index.get_settings rescue nil # if the index doesn't exist
|
151
|
+
@index.set_settings(settings) if index_settings_changed?(prev_settings, settings)
|
151
152
|
end
|
152
153
|
|
153
154
|
def must_reindex?(object)
|
@@ -166,6 +167,14 @@ module AlgoliaSearch
|
|
166
167
|
Hash[@index_options.attributes.map { |attr| [attr.to_s, object.send(attr)] }]
|
167
168
|
end
|
168
169
|
|
170
|
+
def index_settings_changed?(prev, current)
|
171
|
+
return true if prev.nil?
|
172
|
+
current.each do |k, v|
|
173
|
+
return true if prev[k.to_s] != v
|
174
|
+
end
|
175
|
+
false
|
176
|
+
end
|
177
|
+
|
169
178
|
end
|
170
179
|
|
171
180
|
# these are the instance methods included
|
@@ -181,7 +190,7 @@ module AlgoliaSearch
|
|
181
190
|
private
|
182
191
|
|
183
192
|
def synchronous?
|
184
|
-
@synchronous
|
193
|
+
@synchronous == true
|
185
194
|
end
|
186
195
|
|
187
196
|
def mark_synchronous
|
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.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Algolia
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -99,12 +99,14 @@ email: contact@algolia.com
|
|
99
99
|
executables: []
|
100
100
|
extensions: []
|
101
101
|
extra_rdoc_files:
|
102
|
+
- ChangeLog
|
102
103
|
- LICENSE
|
103
104
|
- README.md
|
104
105
|
files:
|
105
106
|
- .document
|
106
107
|
- .rspec
|
107
108
|
- .travis.yml
|
109
|
+
- ChangeLog
|
108
110
|
- Gemfile
|
109
111
|
- Gemfile.lock
|
110
112
|
- LICENSE
|