algoliasearch-rails 1.19.1 → 1.20.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.
- checksums.yaml +4 -4
- data/.travis.yml +11 -7
- data/ChangeLog +7 -0
- data/Gemfile +2 -2
- data/Gemfile.lock +4 -4
- data/README.md +12 -4
- data/algoliasearch-rails.gemspec +6 -6
- data/lib/algoliasearch-rails.rb +21 -11
- data/lib/algoliasearch/configuration.rb +1 -1
- data/lib/algoliasearch/utilities.rb +2 -4
- data/lib/algoliasearch/version.rb +3 -0
- metadata +5 -5
- data/VERSION +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7333f262a5b1e9d919ca00b85931fb980e4ecc0
|
4
|
+
data.tar.gz: 7337128b35c33d12690b1eaba6bf659e1df0f03f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c300e5f50274dc54ed86224bb4c39c853e69473201a6a556c08bbe5f8868f2189ffbbecd1de6e26574831b3e42b73f8fba2254a8be41000b724347fc10c21782
|
7
|
+
data.tar.gz: 615ecacfba423c91e3f3e569041f82826fa778894be4c0b2ede19dfb00b3f7bdda723c6a87b57c2ef1b8514dde2bf3bd9cfce32b3202660d3faa8dd0ebf7e7e9
|
data/.travis.yml
CHANGED
@@ -15,13 +15,17 @@ matrix:
|
|
15
15
|
- rvm: 2.2.5
|
16
16
|
env: RAILS_VERSION=4.2
|
17
17
|
- rvm: 2.2.5
|
18
|
-
env: RAILS_VERSION=5.
|
19
|
-
- rvm: 2.3.
|
18
|
+
env: RAILS_VERSION=5.1
|
19
|
+
- rvm: 2.3.4
|
20
20
|
env: RAILS_VERSION=3.2.0
|
21
|
-
- rvm: 2.3.
|
21
|
+
- rvm: 2.3.4
|
22
22
|
env: RAILS_VERSION=4.2
|
23
|
-
- rvm: 2.3.
|
24
|
-
env: RAILS_VERSION=5.
|
23
|
+
- rvm: 2.3.4
|
24
|
+
env: RAILS_VERSION=5.1
|
25
|
+
- rvm: 2.4.1
|
26
|
+
env: RAILS_VERSION=4.2
|
27
|
+
- rvm: 2.4.1
|
28
|
+
env: RAILS_VERSION=5.1
|
25
29
|
# - rvm: jruby-9.1.2.0
|
26
30
|
# env: RAILS_VERSION=3.2.0
|
27
31
|
# - rvm: jruby-9.1.2.0
|
@@ -47,5 +51,5 @@ install: rm -f Gemfile.lock && bundle install
|
|
47
51
|
cache: bundler
|
48
52
|
env:
|
49
53
|
global:
|
50
|
-
- secure:
|
51
|
-
- secure:
|
54
|
+
- secure: "o/Hi/6KnBugN5P/cpVtpwyKrK5fVzAc0efw+qZ9ZqwqZN0GmipZrHmRNuLVUxVf+CIcqfLpIT0U172XGOZ5zJ1gs3qZZrDsJ1ptXnPyvvCrw+VX5yGhMh67JnlO0WLWvci0WdltJTmrhCoLSSw39nCPswC7I6/hai4KyiOXoMk4="
|
55
|
+
- secure: "Jv9jOYRwJq5i17Int/p75330yxCJXKLYlstHuBjwkKa6anJHFSXQaAxWj8sZHCY4IAVDsBfdi0j6S3dtVu2LaVLA3hfPp36YRVolSZu9zLbGqyPKBWM7E3i7GkS3Jub0nMV3Yo3cMeiFzQ4BmpSQOYo0biCkL8bh4/5NRZ7Q6VI="
|
data/ChangeLog
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
CHANGELOG
|
2
2
|
|
3
|
+
2017-07-31 1.20.0
|
4
|
+
|
5
|
+
* Override the user-agent (#238)
|
6
|
+
* Fixed NPE while running mocked tests (#242)
|
7
|
+
* Add `paginationLimitedTo` setting (#243)
|
8
|
+
* Make `algolia_without_auto_index_scope` thread-safe (#234)
|
9
|
+
|
3
10
|
2017-03-13 1.19.1
|
4
11
|
|
5
12
|
* Make sure get_model_classes is not ActiveRecord compliant only
|
data/Gemfile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
|
-
gem 'json', '~> 1.
|
4
|
-
gem 'algoliasearch', '~> 1.
|
3
|
+
gem 'json', '~> 1.8', '>= 1.8.6'
|
4
|
+
gem 'algoliasearch', '~> 1.14.0'
|
5
5
|
|
6
6
|
if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
|
7
7
|
gem 'rubysl', '~> 2.0', :platform => :rbx
|
data/Gemfile.lock
CHANGED
@@ -39,7 +39,7 @@ GEM
|
|
39
39
|
minitest (~> 5.1)
|
40
40
|
tzinfo (~> 1.1)
|
41
41
|
addressable (2.4.0)
|
42
|
-
algoliasearch (1.
|
42
|
+
algoliasearch (1.14.0)
|
43
43
|
httpclient (~> 2.8.3)
|
44
44
|
json (>= 1.5.1)
|
45
45
|
arel (7.1.4)
|
@@ -175,9 +175,9 @@ PLATFORMS
|
|
175
175
|
DEPENDENCIES
|
176
176
|
activerecord-jdbc-adapter
|
177
177
|
activerecord-jdbcsqlite3-adapter
|
178
|
-
algoliasearch (~> 1.
|
178
|
+
algoliasearch (~> 1.14.0)
|
179
179
|
jdbc-sqlite3
|
180
|
-
json (~> 1.
|
180
|
+
json (~> 1.8, >= 1.8.6)
|
181
181
|
kaminari
|
182
182
|
rails (>= 3.2.0)
|
183
183
|
rake (~> 10.1.0)
|
@@ -190,4 +190,4 @@ DEPENDENCIES
|
|
190
190
|
will_paginate (>= 2.3.15)
|
191
191
|
|
192
192
|
BUNDLED WITH
|
193
|
-
1.
|
193
|
+
1.15.3
|
data/README.md
CHANGED
@@ -291,8 +291,8 @@ class Contact < ActiveRecord::Base
|
|
291
291
|
attribute :first_name, :last_name, :email
|
292
292
|
|
293
293
|
# default search parameters stored in the index settings
|
294
|
-
|
295
|
-
|
294
|
+
minWordSizefor1Typo 4
|
295
|
+
minWordSizefor2Typos 8
|
296
296
|
hitsPerPage 42
|
297
297
|
end
|
298
298
|
end
|
@@ -531,8 +531,16 @@ end
|
|
531
531
|
|
532
532
|
class MySidekiqWorker
|
533
533
|
def perform(id, remove)
|
534
|
-
|
535
|
-
|
534
|
+
if remove
|
535
|
+
# the record has likely already been removed from your database so we cannot
|
536
|
+
# use ActiveRecord#find to load it
|
537
|
+
index = Algolia::Index.new("index_name")
|
538
|
+
index.delete_object(id)
|
539
|
+
else
|
540
|
+
# the record should be present
|
541
|
+
c = Contact.find(id)
|
542
|
+
c.index!
|
543
|
+
end
|
536
544
|
end
|
537
545
|
end
|
538
546
|
```
|
data/algoliasearch-rails.gemspec
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
|
-
|
3
|
+
require File.join(File.dirname(__FILE__), 'lib', 'algoliasearch', 'version')
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "algoliasearch-rails"
|
7
|
-
s.version = VERSION
|
7
|
+
s.version = AlgoliaSearch::VERSION
|
8
8
|
|
9
9
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
10
10
|
s.authors = ["Algolia"]
|
@@ -26,7 +26,6 @@ Gem::Specification.new do |s|
|
|
26
26
|
"LICENSE",
|
27
27
|
"README.md",
|
28
28
|
"Rakefile",
|
29
|
-
"VERSION",
|
30
29
|
"algoliasearch-rails.gemspec",
|
31
30
|
"lib/algoliasearch-rails.rb",
|
32
31
|
"lib/algoliasearch/algolia_job.rb",
|
@@ -37,6 +36,7 @@ Gem::Specification.new do |s|
|
|
37
36
|
"lib/algoliasearch/railtie.rb",
|
38
37
|
"lib/algoliasearch/tasks/algoliasearch.rake",
|
39
38
|
"lib/algoliasearch/utilities.rb",
|
39
|
+
"lib/algoliasearch/version.rb",
|
40
40
|
"spec/spec_helper.rb",
|
41
41
|
"spec/utilities_spec.rb",
|
42
42
|
"vendor/assets/javascripts/algolia/algoliasearch.angular.js",
|
@@ -77,7 +77,7 @@ Gem::Specification.new do |s|
|
|
77
77
|
|
78
78
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
79
79
|
s.add_runtime_dependency(%q<json>, [">= 1.5.1"])
|
80
|
-
s.add_runtime_dependency(%q<algoliasearch>, ["~> 1.
|
80
|
+
s.add_runtime_dependency(%q<algoliasearch>, ["~> 1.14.0"])
|
81
81
|
s.add_development_dependency(%q<will_paginate>, [">= 2.3.15"])
|
82
82
|
s.add_development_dependency(%q<kaminari>, [">= 0"])
|
83
83
|
s.add_development_dependency "travis"
|
@@ -85,11 +85,11 @@ Gem::Specification.new do |s|
|
|
85
85
|
s.add_development_dependency "rdoc"
|
86
86
|
else
|
87
87
|
s.add_dependency(%q<json>, [">= 1.5.1"])
|
88
|
-
s.add_dependency(%q<algoliasearch>, ["~> 1.
|
88
|
+
s.add_dependency(%q<algoliasearch>, ["~> 1.14.0"])
|
89
89
|
end
|
90
90
|
else
|
91
91
|
s.add_dependency(%q<json>, [">= 1.5.1"])
|
92
|
-
s.add_dependency(%q<algoliasearch>, ["~> 1.
|
92
|
+
s.add_dependency(%q<algoliasearch>, ["~> 1.14.0"])
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
data/lib/algoliasearch-rails.rb
CHANGED
@@ -8,6 +8,7 @@ rescue => e
|
|
8
8
|
end
|
9
9
|
require 'algoliasearch'
|
10
10
|
|
11
|
+
require 'algoliasearch/version'
|
11
12
|
require 'algoliasearch/utilities'
|
12
13
|
|
13
14
|
if defined? Rails
|
@@ -66,7 +67,8 @@ module AlgoliaSearch
|
|
66
67
|
:unretrievableAttributes, :disableTypoToleranceOnWords, :disableTypoToleranceOnAttributes, :altCorrections,
|
67
68
|
:ignorePlurals, :maxValuesPerFacet, :distinct, :numericAttributesToIndex, :numericAttributesForFiltering,
|
68
69
|
:allowTyposOnNumericTokens, :allowCompressionOfIntegerArray,
|
69
|
-
:advancedSyntax, :disablePrefixOnAttributes, :disableTypoToleranceOnAttributes
|
70
|
+
:advancedSyntax, :disablePrefixOnAttributes, :disableTypoToleranceOnAttributes,
|
71
|
+
:paginationLimitedTo]
|
70
72
|
OPTIONS.each do |k|
|
71
73
|
define_method k do |v|
|
72
74
|
instance_variable_set("@#{k}", v)
|
@@ -400,7 +402,7 @@ module AlgoliaSearch
|
|
400
402
|
raise ArgumentError.new("Invalid `enqueue` option: #{options[:enqueue]}")
|
401
403
|
end
|
402
404
|
algoliasearch_options[:enqueue] = Proc.new do |record, remove|
|
403
|
-
proc.call(record, remove) unless
|
405
|
+
proc.call(record, remove) unless algolia_without_auto_index_scope
|
404
406
|
end
|
405
407
|
end
|
406
408
|
unless options[:auto_index] == false
|
@@ -456,16 +458,24 @@ module AlgoliaSearch
|
|
456
458
|
end
|
457
459
|
|
458
460
|
def algolia_without_auto_index(&block)
|
459
|
-
|
461
|
+
self.algolia_without_auto_index_scope = true
|
460
462
|
begin
|
461
463
|
yield
|
462
464
|
ensure
|
463
|
-
|
465
|
+
self.algolia_without_auto_index_scope = false
|
464
466
|
end
|
465
467
|
end
|
466
468
|
|
469
|
+
def algolia_without_auto_index_scope=(value)
|
470
|
+
Thread.current["algolia_without_auto_index_scope_for_#{self.model_name}"] = value
|
471
|
+
end
|
472
|
+
|
473
|
+
def algolia_without_auto_index_scope
|
474
|
+
Thread.current["algolia_without_auto_index_scope_for_#{self.model_name}"]
|
475
|
+
end
|
476
|
+
|
467
477
|
def algolia_reindex!(batch_size = 1000, synchronous = false)
|
468
|
-
return if
|
478
|
+
return if algolia_without_auto_index_scope
|
469
479
|
algolia_configurations.each do |options, settings|
|
470
480
|
next if algolia_indexing_disabled?(options)
|
471
481
|
index = algolia_ensure_init(options, settings)
|
@@ -496,7 +506,7 @@ module AlgoliaSearch
|
|
496
506
|
|
497
507
|
# reindex whole database using a extra temporary index + move operation
|
498
508
|
def algolia_reindex(batch_size = 1000, synchronous = false)
|
499
|
-
return if
|
509
|
+
return if algolia_without_auto_index_scope
|
500
510
|
algolia_configurations.each do |options, settings|
|
501
511
|
next if algolia_indexing_disabled?(options)
|
502
512
|
next if options[:slave] || options[:replica]
|
@@ -545,7 +555,7 @@ module AlgoliaSearch
|
|
545
555
|
end
|
546
556
|
|
547
557
|
def algolia_index!(object, synchronous = false)
|
548
|
-
return if
|
558
|
+
return if algolia_without_auto_index_scope
|
549
559
|
algolia_configurations.each do |options, settings|
|
550
560
|
next if algolia_indexing_disabled?(options)
|
551
561
|
object_id = algolia_object_id_of(object, options)
|
@@ -571,7 +581,7 @@ module AlgoliaSearch
|
|
571
581
|
end
|
572
582
|
|
573
583
|
def algolia_remove_from_index!(object, synchronous = false)
|
574
|
-
return if
|
584
|
+
return if algolia_without_auto_index_scope
|
575
585
|
object_id = algolia_object_id_of(object)
|
576
586
|
raise ArgumentError.new("Cannot index a record with a blank objectID") if object_id.blank?
|
577
587
|
algolia_configurations.each do |options, settings|
|
@@ -656,9 +666,9 @@ module AlgoliaSearch
|
|
656
666
|
end
|
657
667
|
end.compact
|
658
668
|
# Algolia has a default limit of 1000 retrievable hits
|
659
|
-
total_hits = json['nbHits'] < json['nbPages'] * json['hitsPerPage'] ?
|
660
|
-
json['nbHits']
|
661
|
-
res = AlgoliaSearch::Pagination.create(results, total_hits, algoliasearch_options.merge({ :page => json['page'] + 1, :per_page => json['hitsPerPage'] }))
|
669
|
+
total_hits = json['nbHits'].to_i < json['nbPages'].to_i * json['hitsPerPage'].to_i ?
|
670
|
+
json['nbHits'].to_i: json['nbPages'].to_i * json['hitsPerPage'].to_i
|
671
|
+
res = AlgoliaSearch::Pagination.create(results, total_hits, algoliasearch_options.merge({ :page => json['page'].to_i + 1, :per_page => json['hitsPerPage'] }))
|
662
672
|
res.extend(AdditionalMethods)
|
663
673
|
res.send(:algolia_init_raw_answer, json)
|
664
674
|
res
|
@@ -5,7 +5,7 @@ module AlgoliaSearch
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def configuration=(configuration)
|
8
|
-
@@configuration = configuration
|
8
|
+
@@configuration = configuration.merge(:user_agent => "Algolia for Rails (#{AlgoliaSearch::VERSION}); Algolia for Ruby (#{Algolia::VERSION})")
|
9
9
|
Algolia.init @@configuration
|
10
10
|
end
|
11
11
|
end
|
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.20.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Algolia
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
33
|
+
version: 1.14.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.
|
40
|
+
version: 1.14.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: will_paginate
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -126,7 +126,6 @@ files:
|
|
126
126
|
- LICENSE
|
127
127
|
- README.md
|
128
128
|
- Rakefile
|
129
|
-
- VERSION
|
130
129
|
- algoliasearch-rails.gemspec
|
131
130
|
- lib/algoliasearch-rails.rb
|
132
131
|
- lib/algoliasearch/algolia_job.rb
|
@@ -137,6 +136,7 @@ files:
|
|
137
136
|
- lib/algoliasearch/railtie.rb
|
138
137
|
- lib/algoliasearch/tasks/algoliasearch.rake
|
139
138
|
- lib/algoliasearch/utilities.rb
|
139
|
+
- lib/algoliasearch/version.rb
|
140
140
|
- spec/spec_helper.rb
|
141
141
|
- spec/utilities_spec.rb
|
142
142
|
- vendor/assets/javascripts/algolia/algoliasearch.angular.js
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
1.19.1
|