chewy 0.10.1 → 5.0.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.
Files changed (73) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +25 -25
  3. data/.travis.yml +21 -29
  4. data/Appraisals +27 -9
  5. data/CHANGELOG.md +36 -0
  6. data/Gemfile +3 -1
  7. data/README.md +73 -23
  8. data/chewy.gemspec +6 -8
  9. data/gemfiles/rails.4.0.activerecord.gemfile +1 -0
  10. data/gemfiles/rails.4.1.activerecord.gemfile +1 -0
  11. data/gemfiles/rails.4.2.activerecord.gemfile +1 -0
  12. data/gemfiles/{rails.4.2.mongoid.5.1.gemfile → rails.4.2.mongoid.5.2.gemfile} +2 -1
  13. data/gemfiles/rails.5.0.activerecord.gemfile +2 -1
  14. data/gemfiles/{rails.5.0.mongoid.6.0.gemfile → rails.5.0.mongoid.6.1.gemfile} +3 -2
  15. data/gemfiles/rails.5.1.activerecord.gemfile +2 -1
  16. data/gemfiles/{rails.5.1.mongoid.6.1.gemfile → rails.5.1.mongoid.6.3.gemfile} +3 -2
  17. data/gemfiles/rails.5.2.activerecord.gemfile +16 -0
  18. data/gemfiles/sequel.4.45.gemfile +2 -2
  19. data/lib/chewy.rb +1 -0
  20. data/lib/chewy/config.rb +8 -19
  21. data/lib/chewy/fields/base.rb +15 -3
  22. data/lib/chewy/fields/root.rb +13 -9
  23. data/lib/chewy/index.rb +1 -1
  24. data/lib/chewy/index/actions.rb +14 -12
  25. data/lib/chewy/index/settings.rb +2 -0
  26. data/lib/chewy/index/specification.rb +12 -10
  27. data/lib/chewy/minitest/helpers.rb +6 -6
  28. data/lib/chewy/minitest/search_index_receiver.rb +17 -17
  29. data/lib/chewy/query.rb +135 -96
  30. data/lib/chewy/query/filters.rb +20 -3
  31. data/lib/chewy/query/loading.rb +0 -1
  32. data/lib/chewy/railtie.rb +2 -4
  33. data/lib/chewy/rake_helper.rb +5 -5
  34. data/lib/chewy/rspec/update_index.rb +3 -5
  35. data/lib/chewy/search.rb +2 -2
  36. data/lib/chewy/search/parameters/concerns/query_storage.rb +4 -3
  37. data/lib/chewy/stash.rb +30 -21
  38. data/lib/chewy/strategy/atomic.rb +1 -1
  39. data/lib/chewy/type.rb +2 -2
  40. data/lib/chewy/type/adapter/base.rb +9 -9
  41. data/lib/chewy/type/adapter/mongoid.rb +1 -3
  42. data/lib/chewy/type/adapter/sequel.rb +4 -6
  43. data/lib/chewy/type/crutch.rb +1 -1
  44. data/lib/chewy/type/import.rb +3 -2
  45. data/lib/chewy/type/import/bulk_builder.rb +1 -1
  46. data/lib/chewy/type/import/journal_builder.rb +3 -3
  47. data/lib/chewy/type/import/routine.rb +2 -2
  48. data/lib/chewy/type/mapping.rb +40 -34
  49. data/lib/chewy/type/observe.rb +13 -9
  50. data/lib/chewy/type/syncer.rb +2 -2
  51. data/lib/chewy/type/witchcraft.rb +2 -2
  52. data/lib/chewy/type/wrapper.rb +2 -2
  53. data/lib/chewy/version.rb +1 -1
  54. data/lib/sequel/plugins/chewy_observe.rb +4 -19
  55. data/spec/chewy/config_spec.rb +16 -0
  56. data/spec/chewy/fields/base_spec.rb +61 -65
  57. data/spec/chewy/fields/root_spec.rb +13 -13
  58. data/spec/chewy/index/actions_spec.rb +37 -5
  59. data/spec/chewy/index/specification_spec.rb +25 -16
  60. data/spec/chewy/index_spec.rb +61 -8
  61. data/spec/chewy/journal_spec.rb +11 -11
  62. data/spec/chewy/query/filters_spec.rb +1 -1
  63. data/spec/chewy/query/nodes/not_spec.rb +1 -0
  64. data/spec/chewy/query_spec.rb +3 -2
  65. data/spec/chewy/rake_helper_spec.rb +46 -33
  66. data/spec/chewy/search_spec.rb +20 -10
  67. data/spec/chewy/stash_spec.rb +1 -1
  68. data/spec/chewy/strategy/shoryuken_spec.rb +2 -0
  69. data/spec/chewy/type/import/journal_builder_spec.rb +8 -8
  70. data/spec/chewy/type/import_spec.rb +6 -0
  71. data/spec/chewy/type/mapping_spec.rb +48 -17
  72. data/spec/spec_helper.rb +8 -0
  73. metadata +26 -25
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f9741190c8e67f2cf5a4ae0a7270eb7716884b70
4
- data.tar.gz: fc86af473569d271c43d3b39cd0f710234adae76
2
+ SHA256:
3
+ metadata.gz: 2decd9fc56f1c1116f0470c5dfce2fb84b3dbbab25ed42bcc1813f2f91069292
4
+ data.tar.gz: 969f6d74cff1f399ffa9752d2559a9affcaa2fe96a63e05cdfe4aa2b0add0af4
5
5
  SHA512:
6
- metadata.gz: 50ee0a42f751e1aba5639b139e236056aa067f07524eb7d3d1c7bfc80f47b73ad8d7c9f5ae4df2cceda03d9b22d1896def3dc311c9f348e17bfec241bdb6102d
7
- data.tar.gz: bee6ca569f2568ab4c33f3fcc23ffca5e5cb121a1145a07e8dcb9f09a0d5333999e454f2ff220621b2aebaf14dc29a9ba4254e0e6cb0f195d8c83fd2d9a1a942
6
+ metadata.gz: e55c97184ed6f171f9383087b792b6261167687acad1add6ca2d5196e87676b1600c54277174e213fd07de6d6d811124a20130ac7ca7ccb5b7077a78a710fbbc
7
+ data.tar.gz: b0ceb62da09eea3332e1d67bdca2ab56dfadae6366ca27a8009e502da01057891e7c6a33bfb67f81f4b35119eff550b4390d40e9860e2441065d72c4d30fca78
@@ -1,50 +1,50 @@
1
1
  inherit_from: .rubocop_todo.yml
2
2
 
3
- Lint/AmbiguousBlockAssociation:
4
- Enabled: false
5
-
6
- Lint/EndAlignment:
7
- EnforcedStyleAlignWith: variable
8
-
9
- Style/AccessModifierIndentation:
3
+ Layout/AccessModifierIndentation:
10
4
  EnforcedStyle: outdent
11
5
 
12
- Style/Alias:
13
- EnforcedStyle: prefer_alias_method
14
-
15
- Style/AlignHash:
6
+ Layout/AlignHash:
16
7
  EnforcedLastArgumentHashStyle: always_ignore
17
8
 
18
- Style/AlignParameters:
9
+ Layout/AlignParameters:
19
10
  EnforcedStyle: with_fixed_indentation
20
11
 
21
- Style/AndOr:
22
- EnforcedStyle: conditionals
23
-
24
- Style/CaseIndentation:
12
+ Layout/CaseIndentation:
25
13
  EnforcedStyle: end
26
14
 
27
- Style/DoubleNegation:
28
- Enabled: false
29
-
30
- Style/IndentArray:
15
+ Layout/IndentArray:
31
16
  EnforcedStyle: consistent
32
17
 
33
- Style/IndentHash:
18
+ Layout/IndentHash:
34
19
  EnforcedStyle: consistent
35
20
 
36
- Style/IndentHeredoc:
21
+ Layout/IndentHeredoc:
37
22
  Enabled: false
38
23
 
39
- Style/MultilineMethodCallIndentation:
24
+ Layout/MultilineMethodCallIndentation:
40
25
  EnforcedStyle: indented
41
26
 
42
- Style/MultilineOperationIndentation:
27
+ Layout/MultilineOperationIndentation:
43
28
  EnforcedStyle: indented
44
29
 
45
- Style/SpaceInsideHashLiteralBraces:
30
+ Layout/SpaceInsideHashLiteralBraces:
46
31
  EnforcedStyle: no_space
47
32
 
33
+ Lint/AmbiguousBlockAssociation:
34
+ Enabled: false
35
+
36
+ Lint/EndAlignment:
37
+ EnforcedStyleAlignWith: variable
38
+
39
+ Style/Alias:
40
+ EnforcedStyle: prefer_alias_method
41
+
42
+ Style/AndOr:
43
+ EnforcedStyle: conditionals
44
+
45
+ Style/DoubleNegation:
46
+ Enabled: false
47
+
48
48
  Metrics/BlockLength:
49
49
  Exclude:
50
50
  - '**/*_spec.rb'
@@ -5,48 +5,40 @@ services:
5
5
  jdk:
6
6
  - oraclejdk8
7
7
  rvm:
8
- - 2.2.7
9
- - 2.3.4
10
- - 2.4.1
8
+ - 2.4.3
11
9
  env:
12
10
  global:
13
11
  - TEST_CLUSTER_NODES=1
14
12
  matrix:
15
- - ES_VERSION=2.4.4
16
- - ES_VERSION=5.4.0
13
+ - ES_VERSION=5.6.7
17
14
  gemfile:
18
- - gemfiles/rails.4.0.activerecord.gemfile
19
- - gemfiles/rails.4.1.activerecord.gemfile
20
- - gemfiles/rails.4.2.activerecord.gemfile
21
15
  - gemfiles/rails.5.0.activerecord.gemfile
22
16
  - gemfiles/rails.5.1.activerecord.gemfile
23
- - gemfiles/rails.4.2.mongoid.5.1.gemfile
24
- - gemfiles/rails.5.0.mongoid.6.0.gemfile
25
- - gemfiles/rails.5.1.mongoid.6.1.gemfile
17
+ - gemfiles/rails.5.0.mongoid.6.1.gemfile
18
+ - gemfiles/rails.5.1.mongoid.6.3.gemfile
26
19
  - gemfiles/sequel.4.45.gemfile
27
20
  matrix:
28
- exclude:
29
- - rvm: 2.2.7
30
- env: ES_VERSION=5.4.0
31
- - rvm: 2.3.4
32
- env: ES_VERSION=2.4.4
33
- - gemfile: gemfiles/rails.4.0.activerecord.gemfile
34
- env: ES_VERSION=5.4.0
35
- - gemfile: gemfiles/rails.4.1.activerecord.gemfile
36
- env: ES_VERSION=5.4.0
37
- - gemfile: gemfiles/rails.4.2.mongoid.5.1.gemfile
38
- env: ES_VERSION=5.4.0
39
- - gemfile: gemfiles/rails.5.1.mongoid.6.0.gemfile
40
- env: ES_VERSION=5.4.0
41
- - rvm: 2.4.1
21
+ include:
22
+ - rvm: 2.2.9
42
23
  gemfile: gemfiles/rails.4.0.activerecord.gemfile
43
- - rvm: 2.4.1
24
+ env: ES_VERSION=2.4.6
25
+ - rvm: 2.2.9
44
26
  gemfile: gemfiles/rails.4.1.activerecord.gemfile
27
+ env: ES_VERSION=2.4.6
28
+ - rvm: 2.3.6
29
+ gemfile: gemfiles/rails.4.2.activerecord.gemfile
30
+ env: ES_VERSION=2.4.6
31
+ - rvm: 2.3.6
32
+ gemfile: gemfiles/rails.4.2.mongoid.5.2.gemfile
33
+ env: ES_VERSION=2.4.6
34
+ - rvm: 2.5.0
35
+ gemfile: gemfiles/rails.5.2.activerecord.gemfile
36
+ env: ES_VERSION=5.6.7
45
37
  before_install:
46
- - curl -s https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.4/elasticsearch-2.4.4.tar.gz | tar xz -C /tmp
47
- - curl -s https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.0.tar.gz | tar xz -C /tmp
38
+ - curl -s https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.6/elasticsearch-2.4.6.tar.gz | tar xz -C /tmp
39
+ - curl -s https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.7.tar.gz | tar xz -C /tmp
48
40
  before_script:
49
- - /tmp/elasticsearch-2.4.4/bin/plugin install delete-by-query
41
+ - /tmp/elasticsearch-2.4.6/bin/plugin install delete-by-query
50
42
  - TEST_CLUSTER_COMMAND=/tmp/elasticsearch-$ES_VERSION/bin/elasticsearch TEST_CLUSTER_LOGS=/tmp/log rake es:start
51
43
  script:
52
44
  - bundle exec rspec
data/Appraisals CHANGED
@@ -1,5 +1,3 @@
1
- # rubocop:disable Style/FileName
2
-
3
1
  %w[4.0 4.1 4.2].each do |activesupport|
4
2
  appraise "rails.#{activesupport}.activerecord" do
5
3
  gem 'activerecord', "~> #{activesupport}.0"
@@ -8,6 +6,7 @@
8
6
  gem 'activejob', "~> #{activesupport}.0" if activesupport >= '4.2'
9
7
  gem 'resque', require: false
10
8
  gem 'shoryuken', require: false
9
+ gem 'aws-sdk-sqs', require: false
11
10
  gem 'sidekiq', require: false
12
11
 
13
12
  gem 'kaminari', '~> 0.17.0', require: false
@@ -25,22 +24,40 @@ end
25
24
  gem 'activejob', "~> #{activesupport}.0"
26
25
  gem 'resque', require: false
27
26
  gem 'shoryuken', require: false
27
+ gem 'aws-sdk-sqs', require: false
28
28
  gem 'sidekiq', require: false
29
29
 
30
- gem 'kaminari-core', '~> 1.0.0', require: false
30
+ gem 'kaminari-core', '~> 1.1.0', require: false
31
31
  gem 'will_paginate', require: false
32
32
 
33
33
  gem 'parallel', require: false
34
34
  end
35
35
  end
36
36
 
37
- appraise 'rails.4.2.mongoid.5.1' do
38
- gem 'mongoid', '~> 5.1.0'
37
+ appraise 'rails.5.2.activerecord' do
38
+ gem 'activerecord', '~> 5.2.0.rc1'
39
+ gem 'activesupport', '~> 5.2.0.rc1'
40
+
41
+ gem 'activejob', '~> 5.2.0.rc1'
42
+ gem 'resque', require: false
43
+ gem 'shoryuken', require: false
44
+ gem 'aws-sdk-sqs', require: false
45
+ gem 'sidekiq', require: false
46
+
47
+ gem 'kaminari-core', '~> 1.1.0', require: false
48
+ gem 'will_paginate', require: false
49
+
50
+ gem 'parallel', require: false
51
+ end
52
+
53
+ appraise 'rails.4.2.mongoid.5.2' do
54
+ gem 'mongoid', '~> 5.2.0'
39
55
  gem 'activesupport', '~> 4.2.0'
40
56
 
41
57
  gem 'activejob', '~> 4.2.0'
42
58
  gem 'resque', require: false
43
59
  gem 'shoryuken', require: false
60
+ gem 'aws-sdk-sqs', require: false
44
61
  gem 'sidekiq', require: false
45
62
 
46
63
  gem 'kaminari', '~> 0.17.0', require: false
@@ -49,7 +66,7 @@ appraise 'rails.4.2.mongoid.5.1' do
49
66
  gem 'parallel', require: false
50
67
  end
51
68
 
52
- {'5.0' => '6.0', '5.1' => '6.1'}.each do |activesupport, mongoid|
69
+ {'5.0' => '6.1', '5.1' => '6.3'}.each do |activesupport, mongoid|
53
70
  appraise "rails.#{activesupport}.mongoid.#{mongoid}" do
54
71
  gem 'mongoid', "~> #{mongoid}.0"
55
72
  gem 'activesupport', "~> #{activesupport}.0"
@@ -57,9 +74,10 @@ end
57
74
  gem 'activejob', "~> #{activesupport}.0"
58
75
  gem 'resque', require: false
59
76
  gem 'shoryuken', require: false
77
+ gem 'aws-sdk-sqs', require: false
60
78
  gem 'sidekiq', require: false
61
79
 
62
- gem 'kaminari-core', '~> 1.0.0', require: false
80
+ gem 'kaminari-core', '~> 1.1.0', require: false
63
81
  gem 'will_paginate', require: false
64
82
 
65
83
  gem 'parallel', require: false
@@ -69,9 +87,9 @@ end
69
87
  %w[4.45].each do |sequel|
70
88
  appraise "sequel.#{sequel}" do
71
89
  gem 'sequel', "~> #{sequel}.0"
72
- gem 'activesupport', '~> 5.0.0'
90
+ gem 'activesupport', '~> 5.1.0'
73
91
 
74
- gem 'kaminari-core', '~> 1.0.0', require: false
92
+ gem 'kaminari-core', '~> 1.1.0', require: false
75
93
  gem 'will_paginate', require: false
76
94
 
77
95
  gem 'parallel', require: false
@@ -1,5 +1,41 @@
1
1
  # master
2
2
 
3
+ # Version 5.0.0
4
+
5
+ ## Breaking changes
6
+
7
+ * Try to align the gem version with the ElasticSearch version we support
8
+
9
+ * `Chewy.default_field_type` is `text` now.
10
+
11
+ * `Chewy::Stash` was split onto two indexes - `Chewy::Stash::Specification` and `Chewy::Stash::Journal`
12
+
13
+ * Data for journal and specification is stored in binary fields base64-encoded to bypass the limits of other fields.
14
+
15
+ * Don't underscore suggested index name (@dm1try, #626)
16
+
17
+ ## Changes
18
+
19
+ * `pipeline` import option support (@eManPrague, #598)
20
+
21
+ * Proper Rails check (@nattfodd, #625)
22
+
23
+ * Bypass strategy performance improvements (@DNNX, #623)
24
+
25
+ * Avoid index update calls for empty data (@robertasg, #620)
26
+
27
+ * Do not underscore suggested index name on `Chewy::Index.index_name` call.
28
+
29
+ * It is possible now to call `root` method several times inside a single type definition, the options will be merged. Also, the block isn't required anymore.
30
+
31
+ * Fixed some Sequel deprecation warnings (@arturtr - #565, @matchbookmac - #577)
32
+
33
+ ## Bugfixes
34
+
35
+ * Fixed index settings logic error (@yahooguntu, #593)
36
+
37
+ * Missed check in higlight method (@heartfulbird, #567)
38
+
3
39
  # Version 0.10.1
4
40
 
5
41
  ## Changes
data/Gemfile CHANGED
@@ -8,9 +8,11 @@ gem 'activerecord'
8
8
 
9
9
  gem 'activejob', require: false
10
10
  gem 'resque', require: false
11
- gem 'shoryuken', require: false
12
11
  gem 'sidekiq', require: false
13
12
 
13
+ gem 'aws-sdk-sqs', require: false
14
+ gem 'shoryuken', require: false
15
+
14
16
  gem 'kaminari-core', require: false
15
17
  gem 'will_paginate', require: false
16
18
 
data/README.md CHANGED
@@ -208,7 +208,7 @@ If you would like to use AWS's ElasticSearch using an IAM user policy, you will
208
208
 
209
209
  define_type User.active.includes(:country, :badges, :projects) do
210
210
  root date_detection: false do
211
- template 'about_translations.*', type: 'string', analyzer: 'standard'
211
+ template 'about_translations.*', type: 'text', analyzer: 'standard'
212
212
 
213
213
  field :first_name, :last_name
214
214
  field :email, analyzer: 'email'
@@ -335,7 +335,7 @@ This will automatically set the type or root field to `object`. You may also spe
335
335
  To define a multi field you have to specify any type except for `object` or `nested` in the root field:
336
336
 
337
337
  ```ruby
338
- field :full_name, type: 'string', value: ->{ full_name.strip } do
338
+ field :full_name, type: 'text', value: ->{ full_name.strip } do
339
339
  field :ordered, analyzer: 'ordered'
340
340
  field :untouched, index: 'not_analyzed'
341
341
  end
@@ -807,36 +807,86 @@ Chewy has notifying the following events:
807
807
  To integrate with NewRelic you may use the following example source (config/initializers/chewy.rb):
808
808
 
809
809
  ```ruby
810
- ActiveSupport::Notifications.subscribe('import_objects.chewy') do |name, start, finish, id, payload|
811
- metric_name = "Database/ElasticSearch/import"
812
- duration = (finish - start).to_f
813
- logged = "#{payload[:type]} #{payload[:import].to_a.map{ |i| i.join(':') }.join(', ')}"
814
-
815
- self.class.trace_execution_scoped([metric_name]) do
816
- NewRelic::Agent.instance.transaction_sampler.notice_sql(logged, nil, duration)
817
- NewRelic::Agent.instance.sql_sampler.notice_sql(logged, metric_name, nil, duration)
818
- NewRelic::Agent.record_metric(metric_name, duration)
810
+ require 'new_relic/agent/instrumentation/evented_subscriber'
811
+
812
+ class ChewySubscriber < NewRelic::Agent::Instrumentation::EventedSubscriber
813
+ def start(name, id, payload)
814
+ event = ChewyEvent.new(name, Time.current, nil, id, payload)
815
+ push_event(event)
819
816
  end
820
- end
821
817
 
822
- ActiveSupport::Notifications.subscribe('search_query.chewy') do |name, start, finish, id, payload|
823
- metric_name = "Database/ElasticSearch/search"
824
- duration = (finish - start).to_f
825
- logged = "#{payload[:type].presence || payload[:index]} #{payload[:request]}"
818
+ def finish(_name, id, _payload)
819
+ pop_event(id).finish
820
+ end
821
+
822
+ class ChewyEvent < NewRelic::Agent::Instrumentation::Event
823
+ OPERATIONS = {
824
+ 'import_objects.chewy' => 'import',
825
+ 'search_query.chewy' => 'search',
826
+ 'delete_query.chewy' => 'delete'
827
+ }.freeze
828
+
829
+ def initialize(*args)
830
+ super
831
+ @segment = start_segment
832
+ end
833
+
834
+ def start_segment
835
+ segment = NewRelic::Agent::Transaction::DatastoreSegment.new product, operation, collection, host, port
836
+ if (txn = state.current_transaction)
837
+ segment.transaction = txn
838
+ end
839
+ segment.notice_sql @payload[:request].to_s
840
+ segment.start
841
+ segment
842
+ end
843
+
844
+ def finish
845
+ if (txn = state.current_transaction)
846
+ txn.add_segment @segment
847
+ end
848
+ @segment.finish
849
+ end
850
+
851
+ private
826
852
 
827
- self.class.trace_execution_scoped([metric_name]) do
828
- NewRelic::Agent.instance.transaction_sampler.notice_sql(logged, nil, duration)
829
- NewRelic::Agent.instance.sql_sampler.notice_sql(logged, metric_name, nil, duration)
830
- NewRelic::Agent.record_metric(metric_name, duration)
853
+ def state
854
+ @state ||= NewRelic::Agent::TransactionState.tl_get
855
+ end
856
+
857
+ def product
858
+ 'Elasticsearch'
859
+ end
860
+
861
+ def operation
862
+ OPERATIONS[name]
863
+ end
864
+
865
+ def collection
866
+ payload.values_at(:type, :index)
867
+ .reject { |value| value.try(:empty?) }
868
+ .first
869
+ .to_s
870
+ end
871
+
872
+ def host
873
+ Chewy.client.transport.hosts.first[:host]
874
+ end
875
+
876
+ def port
877
+ Chewy.client.transport.hosts.first[:port]
878
+ end
831
879
  end
832
880
  end
881
+
882
+ ActiveSupport::Notifications.subscribe(/.chewy$/, ChewySubscriber.new)
833
883
  ```
834
884
 
835
885
  ### Search requests
836
886
 
837
887
  Long story short: there is a new DSL that supports ES2 and ES5, the previous DSL version (which supports ES1 and ES2) documentation was moved to [LEGACY_DSL.md](LEGACY_DSL.md).
838
888
 
839
- If you want to use it - simply do `Chewy.search_class = Chewy::Query` somewhere before indices are initialized.
889
+ If you want to use the old DSL - simply do `Chewy.search_class = Chewy::Query` somewhere before indices are initialized.
840
890
 
841
891
  The new DSL is enabled by default, here is a quick introduction.
842
892
 
@@ -936,9 +986,9 @@ rake chewy:reset[-users,places] # resets every index in the application except s
936
986
 
937
987
  Performs reset exactly the same way as `chewy:reset` does, but only when the index specification (setting or mapping) was changed.
938
988
 
939
- It works only when index specification is locked in `Chewy::Stash` index. The first run will reset all indexes and lock their specifications.
989
+ It works only when index specification is locked in `Chewy::Stash::Specification` index. The first run will reset all indexes and lock their specifications.
940
990
 
941
- See [Chewy::Stash](lib/chewy/stash.rb) and [Chewy::Index::Specification](lib/chewy/index/specification.rb) for more details.
991
+ See [Chewy::Stash::Specification](lib/chewy/stash.rb) and [Chewy::Index::Specification](lib/chewy/index/specification.rb) for more details.
942
992
 
943
993
 
944
994
  ```bash
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  lib = File.expand_path('../lib', __FILE__)
4
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
3
  require 'chewy/version'
@@ -19,17 +17,17 @@ Gem::Specification.new do |spec| # rubocop:disable BlockLength
19
17
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
18
  spec.require_paths = ['lib']
21
19
 
22
- spec.add_development_dependency 'rake'
23
20
  spec.add_development_dependency 'appraisal'
24
- spec.add_development_dependency 'rspec'
25
- spec.add_development_dependency 'rspec-its'
26
- spec.add_development_dependency 'rspec-collection_matchers'
27
- spec.add_development_dependency 'sqlite3'
28
21
  spec.add_development_dependency 'database_cleaner'
29
22
  spec.add_development_dependency 'elasticsearch-extensions'
23
+ spec.add_development_dependency 'rake'
30
24
  spec.add_development_dependency 'resque_spec'
25
+ spec.add_development_dependency 'rspec'
26
+ spec.add_development_dependency 'rspec-collection_matchers'
27
+ spec.add_development_dependency 'rspec-its'
28
+ spec.add_development_dependency 'rubocop', '0.52.1'
29
+ spec.add_development_dependency 'sqlite3'
31
30
  spec.add_development_dependency 'timecop'
32
- spec.add_development_dependency 'rubocop', '0.48.1'
33
31
 
34
32
  spec.add_development_dependency 'method_source'
35
33
  spec.add_development_dependency 'unparser'