chewy 0.10.1 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
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'