estella 5.0.0 → 6.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.circleci/config.yml +32 -0
- data/.gitignore +2 -0
- data/.rubocop.yml +2 -2
- data/.rubocop_todo.yml +45 -32
- data/CHANGELOG.md +14 -0
- data/CONTRIBUTING.md +4 -4
- data/Gemfile +0 -1
- data/README.md +9 -9
- data/RELEASING.md +2 -2
- data/estella.gemspec +5 -4
- data/lib/estella/analysis.rb +4 -8
- data/lib/estella/helpers.rb +7 -2
- data/lib/estella/parser.rb +5 -2
- data/lib/estella/query.rb +2 -0
- data/lib/estella/searchable.rb +2 -0
- data/lib/estella/version.rb +3 -1
- data/lib/estella.rb +2 -0
- data/spec/searchable_spec.rb +10 -3
- data/spec/spec_helper.rb +2 -3
- metadata +33 -21
- data/.coveralls.yml +0 -2
- data/.travis.yml +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 8b616691d2c247c0b09e6c67bd936340fea759ab989f1a2db9b63287897821ba
|
4
|
+
data.tar.gz: b4abf1411c00475005ae3b136625b8cd2e4d497c8bbdef0b483b6a94e40d64ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4301d442ff5a32e5ff3a78fc1fbd6fb0ce6196e0ebd47ef503a9ed07988080cd09c6c7fbfc2f906ec53a6429dedd1733b72e0389a6ac813289eafeb7bbb1888
|
7
|
+
data.tar.gz: 7fc7d4293552a2437282d50682fba461254ee82343dcbf2ce96f992c09f6ecfbcd25592899bf688fa2e1f8b3381b888d43a2fd108f090026a1e340ad782e7869
|
@@ -0,0 +1,32 @@
|
|
1
|
+
version: 2.1
|
2
|
+
|
3
|
+
jobs:
|
4
|
+
test:
|
5
|
+
docker:
|
6
|
+
- image: "cimg/ruby:<< parameters.ruby_version >>"
|
7
|
+
- image: elasticsearch:6.8.23
|
8
|
+
parameters:
|
9
|
+
ruby_version:
|
10
|
+
type: string
|
11
|
+
steps:
|
12
|
+
- checkout
|
13
|
+
- run:
|
14
|
+
name: Install dependencies
|
15
|
+
command: bundle install
|
16
|
+
- run:
|
17
|
+
name: Print ruby version
|
18
|
+
command: ruby -v
|
19
|
+
- run:
|
20
|
+
name: Wait for ElasticSearch
|
21
|
+
command: dockerize -wait tcp://localhost:9200 -timeout 1m
|
22
|
+
- run:
|
23
|
+
name: Run test suite
|
24
|
+
command: bundle exec rake
|
25
|
+
|
26
|
+
workflows:
|
27
|
+
default:
|
28
|
+
jobs:
|
29
|
+
- test:
|
30
|
+
matrix:
|
31
|
+
parameters:
|
32
|
+
ruby_version: ["2.7"]
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
data/.rubocop_todo.yml
CHANGED
@@ -1,45 +1,53 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on
|
3
|
+
# on 2022-06-29 20:17:28 UTC using RuboCop version 1.31.1.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
8
|
|
9
|
-
# Offense count:
|
9
|
+
# Offense count: 1
|
10
|
+
# Configuration parameters: Include.
|
11
|
+
# Include: **/*.gemspec
|
12
|
+
Gemspec/RequiredRubyVersion:
|
13
|
+
Exclude:
|
14
|
+
- 'estella.gemspec'
|
15
|
+
|
16
|
+
# Offense count: 4
|
17
|
+
# Configuration parameters: AllowedMethods.
|
18
|
+
# AllowedMethods: enums
|
19
|
+
Lint/ConstantDefinitionInBlock:
|
20
|
+
Exclude:
|
21
|
+
- 'spec/searchable_spec.rb'
|
22
|
+
|
23
|
+
# Offense count: 2
|
24
|
+
# Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
|
10
25
|
Metrics/AbcSize:
|
11
|
-
Max:
|
26
|
+
Max: 19
|
12
27
|
|
13
28
|
# Offense count: 3
|
14
|
-
# Configuration parameters: CountComments, ExcludedMethods.
|
15
|
-
#
|
29
|
+
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
30
|
+
# IgnoredMethods: refine
|
16
31
|
Metrics/BlockLength:
|
17
|
-
Max:
|
32
|
+
Max: 137
|
18
33
|
|
19
34
|
# Offense count: 1
|
20
|
-
# Configuration parameters: CountComments.
|
35
|
+
# Configuration parameters: CountComments, CountAsOne.
|
21
36
|
Metrics/ClassLength:
|
22
37
|
Max: 103
|
23
38
|
|
24
39
|
# Offense count: 1
|
25
|
-
# Configuration parameters: CountComments, ExcludedMethods.
|
40
|
+
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
26
41
|
Metrics/MethodLength:
|
27
42
|
Max: 12
|
28
43
|
|
29
|
-
# Offense count: 3
|
30
|
-
# Cop supports --auto-correct.
|
31
|
-
# Configuration parameters: MaxKeyValuePairs.
|
32
|
-
Performance/RedundantMerge:
|
33
|
-
Exclude:
|
34
|
-
- 'lib/estella/parser.rb'
|
35
|
-
- 'lib/estella/searchable.rb'
|
36
|
-
|
37
44
|
# Offense count: 1
|
38
45
|
Style/ClassVars:
|
39
46
|
Exclude:
|
40
47
|
- 'lib/estella/helpers.rb'
|
41
48
|
|
42
49
|
# Offense count: 7
|
50
|
+
# Configuration parameters: AllowedConstants.
|
43
51
|
Style/Documentation:
|
44
52
|
Exclude:
|
45
53
|
- 'spec/**/*'
|
@@ -50,29 +58,34 @@ Style/Documentation:
|
|
50
58
|
- 'lib/estella/query.rb'
|
51
59
|
- 'lib/estella/searchable.rb'
|
52
60
|
|
61
|
+
# Offense count: 4
|
62
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
63
|
+
# Configuration parameters: EnforcedStyle.
|
64
|
+
# SupportedStyles: always, always_true, never
|
65
|
+
Style/FrozenStringLiteralComment:
|
66
|
+
Exclude:
|
67
|
+
- 'Dangerfile'
|
68
|
+
- 'Gemfile'
|
69
|
+
- 'Rakefile'
|
70
|
+
- 'estella.gemspec'
|
71
|
+
|
53
72
|
# Offense count: 1
|
54
|
-
# Configuration parameters: MinBodyLength.
|
73
|
+
# Configuration parameters: MinBodyLength, AllowConsecutiveConditionals.
|
55
74
|
Style/GuardClause:
|
56
75
|
Exclude:
|
57
76
|
- 'lib/estella/searchable.rb'
|
58
77
|
|
59
|
-
# Offense count:
|
60
|
-
#
|
78
|
+
# Offense count: 8
|
79
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
80
|
+
# Configuration parameters: EnforcedStyle.
|
81
|
+
# SupportedStyles: literals, strict
|
61
82
|
Style/MutableConstant:
|
62
83
|
Exclude:
|
63
84
|
- 'lib/estella/analysis.rb'
|
64
|
-
- 'lib/estella/version.rb'
|
65
85
|
|
66
|
-
# Offense count:
|
67
|
-
#
|
68
|
-
# Configuration parameters:
|
69
|
-
# SupportedStyles: only_raise, only_fail, semantic
|
70
|
-
Style/SignalException:
|
71
|
-
Exclude:
|
72
|
-
- 'lib/estella/parser.rb'
|
73
|
-
|
74
|
-
# Offense count: 30
|
75
|
-
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
86
|
+
# Offense count: 1
|
87
|
+
# This cop supports safe autocorrection (--autocorrect).
|
88
|
+
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns, IgnoredPatterns.
|
76
89
|
# URISchemes: http, https
|
77
|
-
|
78
|
-
Max:
|
90
|
+
Layout/LineLength:
|
91
|
+
Max: 126
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,19 @@
|
|
1
1
|
## Changelog
|
2
2
|
|
3
|
+
### Next Release
|
4
|
+
|
5
|
+
### v6.0.0
|
6
|
+
|
7
|
+
* [#38](https://github.com/artsy/estella/pull/38): Support Elasticsearch 6.x - [@mzikherman]
|
8
|
+
* [#37](https://github.com/artsy/estella/pull/37): Setup CircleCI - [@artsyjian]
|
9
|
+
* [#36](https://github.com/artsy/estella/pull/36): Upgrade Rubocop - [@mzikherman]
|
10
|
+
* [#35](https://github.com/artsy/estella/pull/35): Adopt inclusive language - [@dblandin]
|
11
|
+
|
12
|
+
### 5.0.1
|
13
|
+
|
14
|
+
* [#33](https://github.com/artsy/estella/pull/32): Upgrade Rake to address [CVE-2020-8130](https://github.com/advisories/GHSA-jppv-gw3r-w3q8) - [@izakp](https://github.com/izakp).
|
15
|
+
* [#32](https://github.com/artsy/estella/pull/32): Revert Email analyzer - [@izakp](https://github.com/izakp).
|
16
|
+
|
3
17
|
### 5.0.0
|
4
18
|
|
5
19
|
* [#29](https://github.com/artsy/estella/pull/29): Support Elasticsearch 5.x - [@izakp](https://github.com/izakp).
|
data/CONTRIBUTING.md
CHANGED
@@ -32,8 +32,8 @@ bundle exec rake
|
|
32
32
|
Make sure your fork is up-to-date and create a topic branch for your feature or bug fix.
|
33
33
|
|
34
34
|
```
|
35
|
-
git checkout
|
36
|
-
git pull upstream
|
35
|
+
git checkout main
|
36
|
+
git pull upstream main
|
37
37
|
git checkout -b my-feature-branch
|
38
38
|
```
|
39
39
|
|
@@ -104,11 +104,11 @@ git push origin my-feature-branch -f
|
|
104
104
|
|
105
105
|
### Rebase
|
106
106
|
|
107
|
-
If you've been working on a change for a while, rebase with upstream/
|
107
|
+
If you've been working on a change for a while, rebase with upstream/main.
|
108
108
|
|
109
109
|
```
|
110
110
|
git fetch upstream
|
111
|
-
git rebase upstream/
|
111
|
+
git rebase upstream/main
|
112
112
|
git push origin my-feature-branch -f
|
113
113
|
```
|
114
114
|
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
# estella
|
2
2
|
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/estella.svg)](https://badge.fury.io/rb/estella)
|
4
|
-
[![Build Status](https://travis-ci.org/artsy/estella.svg?branch=
|
4
|
+
[![Build Status](https://travis-ci.org/artsy/estella.svg?branch=main)](https://travis-ci.org/artsy/estella)
|
5
5
|
[![License Status](https://git.legal/projects/3493/badge.svg)](https://git.legal/projects/3493)
|
6
|
-
[![Coverage Status](https://coveralls.io/repos/github/artsy/estella/badge.svg?branch=
|
6
|
+
[![Coverage Status](https://coveralls.io/repos/github/artsy/estella/badge.svg?branch=main)](https://coveralls.io/github/artsy/estella?branch=main)
|
7
7
|
|
8
|
-
Builds on [elasticsearch-model](https://github.com/elastic/elasticsearch-rails/tree/
|
8
|
+
Builds on [elasticsearch-model](https://github.com/elastic/elasticsearch-rails/tree/main/elasticsearch-model) to make your Ruby objects searchable with Elasticsearch. Provides fine-grained control of fields, analysis, filters, weightings and boosts.
|
9
9
|
|
10
10
|
## Compatibility
|
11
11
|
|
12
|
-
This library is compatible with [Elasticsearch 1.5.x, 2.x](https://www.elastic.co/products/elasticsearch) and
|
12
|
+
This library is compatible with [Elasticsearch 1.5.x, 2.x](https://www.elastic.co/products/elasticsearch) when using versions `2.0.0` and earlier. It is compatible with Elasticsearch 5.x via version `5.0.0` or installing directly from the `main` branch of this repository. It works with many ORM/ODMs, including ActiveRecord and Mongoid.
|
13
13
|
|
14
14
|
## Dependencies
|
15
15
|
|
16
|
-
* [elasticsearch-model](https://github.com/elastic/elasticsearch-rails/tree/
|
17
|
-
* [ActiveSupport](https://github.com/rails/rails/tree/
|
18
|
-
* [ActiveModel](https://github.com/rails/rails/tree/
|
16
|
+
* [elasticsearch-model](https://github.com/elastic/elasticsearch-rails/tree/main/elasticsearch-model)
|
17
|
+
* [ActiveSupport](https://github.com/rails/rails/tree/main/activesupport)
|
18
|
+
* [ActiveModel](https://github.com/rails/rails/tree/main/activemodel)
|
19
19
|
|
20
20
|
## Installation
|
21
21
|
|
@@ -31,7 +31,7 @@ You can configure your global ElasticSearch client like so:
|
|
31
31
|
Elasticsearch::Model.client = Elasticsearch::Client.new host: 'foo.com', log: true
|
32
32
|
```
|
33
33
|
|
34
|
-
It's also configurable on a per-model basis. Refer to the [ElasticSearch documentation](https://github.com/elastic/elasticsearch-rails/tree/
|
34
|
+
It's also configurable on a per-model basis. Refer to the [ElasticSearch documentation](https://github.com/elastic/elasticsearch-rails/tree/main/elasticsearch-model#the-elasticsearch-client) for details.
|
35
35
|
|
36
36
|
## Indexing
|
37
37
|
|
@@ -246,7 +246,7 @@ end
|
|
246
246
|
Artist.estella_search(term: 'frank')
|
247
247
|
```
|
248
248
|
|
249
|
-
For further search customization, see the [ElasticSearch DSL](https://github.com/elastic/elasticsearch-rails/tree/
|
249
|
+
For further search customization, see the [ElasticSearch DSL](https://github.com/elastic/elasticsearch-rails/tree/main/elasticsearch-model#the-elasticsearch-dsl).
|
250
250
|
|
251
251
|
## Contributing
|
252
252
|
|
data/RELEASING.md
CHANGED
@@ -31,7 +31,7 @@ Commit your changes.
|
|
31
31
|
```
|
32
32
|
git add README.md CHANGELOG.md lib/estella/version.rb
|
33
33
|
git commit -m "Preparing for release, 0.2.2."
|
34
|
-
git push origin
|
34
|
+
git push origin main
|
35
35
|
```
|
36
36
|
|
37
37
|
Release.
|
@@ -62,5 +62,5 @@ Comit your changes.
|
|
62
62
|
```
|
63
63
|
git add CHANGELOG.md lib/estella/version.rb
|
64
64
|
git commit -m "Preparing for next development iteration, 0.2.3."
|
65
|
-
git push origin
|
65
|
+
git push origin main
|
66
66
|
```
|
data/estella.gemspec
CHANGED
@@ -16,12 +16,13 @@ Gem::Specification.new do |gem|
|
|
16
16
|
|
17
17
|
gem.add_runtime_dependency 'activemodel'
|
18
18
|
gem.add_runtime_dependency 'activesupport'
|
19
|
-
gem.add_runtime_dependency 'elasticsearch-model', '~>
|
19
|
+
gem.add_runtime_dependency 'elasticsearch-model', '~> 6.0'
|
20
20
|
|
21
21
|
gem.add_development_dependency 'activerecord'
|
22
|
-
gem.add_development_dependency '
|
23
|
-
gem.add_development_dependency '
|
22
|
+
gem.add_development_dependency 'pry'
|
23
|
+
gem.add_development_dependency 'rake', '>= 12.3.3'
|
24
|
+
gem.add_development_dependency 'rspec', '>= 3.5'
|
24
25
|
gem.add_development_dependency 'rspec-expectations'
|
25
|
-
gem.add_development_dependency 'rubocop', '
|
26
|
+
gem.add_development_dependency 'rubocop', '1.31.1'
|
26
27
|
gem.add_development_dependency 'sqlite3'
|
27
28
|
end
|
data/lib/estella/analysis.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Estella
|
2
4
|
module Analysis
|
3
5
|
# Default Elasticsearch analysers
|
@@ -18,9 +20,6 @@ module Estella
|
|
18
20
|
NGRAM_ANALYZER =
|
19
21
|
{ type: 'custom', tokenizer: 'standard_tokenizer', filter: %w[lowercase asciifolding front_ngram_filter] }
|
20
22
|
|
21
|
-
EMAIL_ANALYZER =
|
22
|
-
{ type: 'custom', tokenizer: 'uax_url_email', filter: %w[lowercase stop] }
|
23
|
-
|
24
23
|
DEFAULT_ANALYSIS = {
|
25
24
|
tokenizer: {
|
26
25
|
standard_tokenizer: { type: 'standard' }
|
@@ -33,7 +32,6 @@ module Estella
|
|
33
32
|
snowball_analyzer: SNOWBALL_ANALYZER,
|
34
33
|
shingle_analyzer: SHINGLE_ANALYZER,
|
35
34
|
ngram_analyzer: NGRAM_ANALYZER,
|
36
|
-
email_analyzer: EMAIL_ANALYZER,
|
37
35
|
search_analyzer: DEFAULT_ANALYZER
|
38
36
|
}
|
39
37
|
}
|
@@ -42,8 +40,7 @@ module Estella
|
|
42
40
|
default: { type: 'text', analyzer: 'default_analyzer' },
|
43
41
|
snowball: { type: 'text', analyzer: 'snowball_analyzer' },
|
44
42
|
shingle: { type: 'text', analyzer: 'shingle_analyzer' },
|
45
|
-
ngram: { type: 'text', analyzer: 'ngram_analyzer', search_analyzer: 'search_analyzer' }
|
46
|
-
email: { type: 'text', analyzer: 'email_analyzer' }
|
43
|
+
ngram: { type: 'text', analyzer: 'ngram_analyzer', search_analyzer: 'search_analyzer' }
|
47
44
|
}
|
48
45
|
|
49
46
|
DEFAULT_FIELD_FACTORS = {
|
@@ -51,8 +48,7 @@ module Estella
|
|
51
48
|
ngram: 10,
|
52
49
|
snowball: 3,
|
53
50
|
shingle: 2,
|
54
|
-
search: 2
|
55
|
-
email: 2
|
51
|
+
search: 2
|
56
52
|
}
|
57
53
|
|
58
54
|
FULLTEXT_ANALYSIS = DEFAULT_FIELDS.keys
|
data/lib/estella/helpers.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Estella
|
2
4
|
module Helpers
|
3
5
|
extend ActiveSupport::Concern
|
@@ -61,7 +63,7 @@ module Estella
|
|
61
63
|
|
62
64
|
def bulk_index(batch_of_ids)
|
63
65
|
create_index! unless index_exists?
|
64
|
-
__elasticsearch__.client.bulk index: index_name, type:
|
66
|
+
__elasticsearch__.client.bulk index: index_name, type: document_type, body: batch_to_bulk(batch_of_ids)
|
65
67
|
end
|
66
68
|
|
67
69
|
# @return true if the index exists
|
@@ -74,7 +76,10 @@ module Estella
|
|
74
76
|
end
|
75
77
|
|
76
78
|
def create_index!
|
77
|
-
__elasticsearch__.client.indices.create index: index_name,
|
79
|
+
__elasticsearch__.client.indices.create index: index_name,
|
80
|
+
body: {
|
81
|
+
settings: settings.to_hash, mappings: mappings.to_hash
|
82
|
+
}
|
78
83
|
end
|
79
84
|
|
80
85
|
def reload_index!
|
data/lib/estella/parser.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Estella
|
2
4
|
class Parser
|
3
5
|
def initialize(model)
|
@@ -7,8 +9,9 @@ module Estella
|
|
7
9
|
# document level boost
|
8
10
|
# @see https://www.elastic.co/guide/en/elasticsearch/guide/current/boosting-by-popularity.html
|
9
11
|
def boost(name, opts = {})
|
10
|
-
|
11
|
-
|
12
|
+
raise ArgumentError, 'Boost field is not indexed!' unless @model.indexed_fields.include? name
|
13
|
+
raise ArgumentError, 'Please supply a modifier and a factor for your boost!' unless (opts.keys & %i[modifier
|
14
|
+
factor]).length == 2
|
12
15
|
|
13
16
|
@model.field_boost = { boost: { field: name }.merge(opts) }
|
14
17
|
end
|
data/lib/estella/query.rb
CHANGED
data/lib/estella/searchable.rb
CHANGED
data/lib/estella/version.rb
CHANGED
data/lib/estella.rb
CHANGED
data/spec/searchable_spec.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
require 'estella'
|
3
5
|
require 'active_record'
|
6
|
+
require 'pry'
|
4
7
|
|
5
8
|
describe Estella::Searchable, type: :model do
|
6
9
|
before do
|
@@ -17,6 +20,8 @@ describe Estella::Searchable, type: :model do
|
|
17
20
|
'foo'
|
18
21
|
end
|
19
22
|
|
23
|
+
document_type 'searchable_model'
|
24
|
+
|
20
25
|
searchable do
|
21
26
|
field :title, type: :text, analysis: Estella::Analysis::FULLTEXT_ANALYSIS, factor: 1.0
|
22
27
|
field :keywords, type: :text, analysis: %i[default snowball], factor: 0.5
|
@@ -95,15 +100,17 @@ describe Estella::Searchable, type: :model do
|
|
95
100
|
before do
|
96
101
|
SearchableModel.delete_index!
|
97
102
|
end
|
98
|
-
|
99
|
-
expect
|
103
|
+
xit 'recreates an index' do
|
104
|
+
expect do
|
105
|
+
SearchableModel.estella_search(term: 'theresa')
|
106
|
+
end.to raise_error Elasticsearch::Transport::Transport::Errors::NotFound
|
100
107
|
SearchableModel.recreate_index!
|
101
108
|
expect(SearchableModel.estella_search(term: 'theresa')).to eq([@tez])
|
102
109
|
end
|
103
110
|
it 'indexes a bulk set of documents' do
|
104
111
|
SearchableModel.bulk_index([@fab.id, @tez.id])
|
105
112
|
SearchableModel.refresh_index!
|
106
|
-
expect(SearchableModel.estella_search(term: 'jeremy')).to eq([]) # not
|
113
|
+
expect(SearchableModel.estella_search(term: 'jeremy')).to eq([]) # not indexed
|
107
114
|
expect(SearchableModel.estella_search(term: 'theresa')).to eq([@tez])
|
108
115
|
expect(SearchableModel.estella_search(term: 'david')).to eq([@fab])
|
109
116
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: estella
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 6.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anil Bawa-Cavia
|
8
8
|
- Matt Zikherman
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2023-01-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activemodel
|
@@ -45,14 +45,14 @@ dependencies:
|
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
48
|
+
version: '6.0'
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
55
|
+
version: '6.0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: activerecord
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,34 +67,48 @@ dependencies:
|
|
67
67
|
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: pry
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
70
84
|
- !ruby/object:Gem::Dependency
|
71
85
|
name: rake
|
72
86
|
requirement: !ruby/object:Gem::Requirement
|
73
87
|
requirements:
|
74
|
-
- - "
|
88
|
+
- - ">="
|
75
89
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
90
|
+
version: 12.3.3
|
77
91
|
type: :development
|
78
92
|
prerelease: false
|
79
93
|
version_requirements: !ruby/object:Gem::Requirement
|
80
94
|
requirements:
|
81
|
-
- - "
|
95
|
+
- - ">="
|
82
96
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
97
|
+
version: 12.3.3
|
84
98
|
- !ruby/object:Gem::Dependency
|
85
99
|
name: rspec
|
86
100
|
requirement: !ruby/object:Gem::Requirement
|
87
101
|
requirements:
|
88
|
-
- - "
|
102
|
+
- - ">="
|
89
103
|
- !ruby/object:Gem::Version
|
90
|
-
version: 3.
|
104
|
+
version: '3.5'
|
91
105
|
type: :development
|
92
106
|
prerelease: false
|
93
107
|
version_requirements: !ruby/object:Gem::Requirement
|
94
108
|
requirements:
|
95
|
-
- - "
|
109
|
+
- - ">="
|
96
110
|
- !ruby/object:Gem::Version
|
97
|
-
version: 3.
|
111
|
+
version: '3.5'
|
98
112
|
- !ruby/object:Gem::Dependency
|
99
113
|
name: rspec-expectations
|
100
114
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,14 +129,14 @@ dependencies:
|
|
115
129
|
requirements:
|
116
130
|
- - '='
|
117
131
|
- !ruby/object:Gem::Version
|
118
|
-
version:
|
132
|
+
version: 1.31.1
|
119
133
|
type: :development
|
120
134
|
prerelease: false
|
121
135
|
version_requirements: !ruby/object:Gem::Requirement
|
122
136
|
requirements:
|
123
137
|
- - '='
|
124
138
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
139
|
+
version: 1.31.1
|
126
140
|
- !ruby/object:Gem::Dependency
|
127
141
|
name: sqlite3
|
128
142
|
requirement: !ruby/object:Gem::Requirement
|
@@ -144,12 +158,11 @@ executables: []
|
|
144
158
|
extensions: []
|
145
159
|
extra_rdoc_files: []
|
146
160
|
files:
|
147
|
-
- ".
|
161
|
+
- ".circleci/config.yml"
|
148
162
|
- ".gitignore"
|
149
163
|
- ".rspec"
|
150
164
|
- ".rubocop.yml"
|
151
165
|
- ".rubocop_todo.yml"
|
152
|
-
- ".travis.yml"
|
153
166
|
- CHANGELOG.md
|
154
167
|
- CONTRIBUTING.md
|
155
168
|
- Dangerfile
|
@@ -172,7 +185,7 @@ homepage: https://github.com/artsy/estella
|
|
172
185
|
licenses:
|
173
186
|
- MIT
|
174
187
|
metadata: {}
|
175
|
-
post_install_message:
|
188
|
+
post_install_message:
|
176
189
|
rdoc_options: []
|
177
190
|
require_paths:
|
178
191
|
- lib
|
@@ -187,9 +200,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
187
200
|
- !ruby/object:Gem::Version
|
188
201
|
version: '0'
|
189
202
|
requirements: []
|
190
|
-
|
191
|
-
|
192
|
-
signing_key:
|
203
|
+
rubygems_version: 3.3.3
|
204
|
+
signing_key:
|
193
205
|
specification_version: 4
|
194
206
|
summary: Make your Ruby objects searchable with Elasticsearch.
|
195
207
|
test_files:
|
data/.coveralls.yml
DELETED
data/.travis.yml
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
|
3
|
-
cache: bundler
|
4
|
-
|
5
|
-
before_script:
|
6
|
-
- bundle exec danger
|
7
|
-
|
8
|
-
env:
|
9
|
-
- ELASTICSEARCH=https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.16.deb
|
10
|
-
|
11
|
-
before_install:
|
12
|
-
- gem update --system
|
13
|
-
- gem update bundler
|
14
|
-
- curl -O $ELASTICSEARCH && sudo dpkg -i --force-confnew elasticsearch-*.deb
|
15
|
-
- sudo /etc/init.d/elasticsearch start
|
16
|
-
- until curl --silent -XGET --fail http://localhost:9200; do printf '.'; sleep 1; done
|
17
|
-
|
18
|
-
rvm:
|
19
|
-
- 2.3.1
|