thinking-sphinx 3.2.0 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (124) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +6 -2
  3. data/Appraisals +13 -0
  4. data/Gemfile +2 -1
  5. data/HISTORY +19 -0
  6. data/README.textile +3 -2
  7. data/gemfiles/rails_3_2.gemfile +2 -1
  8. data/gemfiles/rails_4_0.gemfile +2 -1
  9. data/gemfiles/rails_4_1.gemfile +2 -1
  10. data/gemfiles/rails_4_2.gemfile +2 -1
  11. data/gemfiles/rails_5_0.gemfile +12 -0
  12. data/lib/thinking_sphinx.rb +2 -0
  13. data/lib/thinking_sphinx/active_record/attribute/type.rb +17 -3
  14. data/lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb +12 -4
  15. data/lib/thinking_sphinx/active_record/database_adapters.rb +1 -1
  16. data/lib/thinking_sphinx/active_record/sql_builder/query.rb +4 -0
  17. data/lib/thinking_sphinx/active_record/sql_source.rb +1 -1
  18. data/lib/thinking_sphinx/configuration.rb +3 -2
  19. data/lib/thinking_sphinx/connection.rb +23 -10
  20. data/lib/thinking_sphinx/deltas/index_job.rb +6 -2
  21. data/lib/thinking_sphinx/errors.rb +25 -0
  22. data/lib/thinking_sphinx/middlewares/active_record_translator.rb +14 -2
  23. data/lib/thinking_sphinx/railtie.rb +1 -1
  24. data/lib/thinking_sphinx/rake_interface.rb +71 -23
  25. data/lib/thinking_sphinx/real_time/callbacks/real_time_callbacks.rb +15 -7
  26. data/lib/thinking_sphinx/real_time/populator.rb +3 -3
  27. data/lib/thinking_sphinx/tasks.rb +7 -8
  28. data/lib/thinking_sphinx/wildcard.rb +1 -1
  29. data/spec/acceptance/association_scoping_spec.rb +5 -5
  30. data/spec/acceptance/attribute_access_spec.rb +4 -4
  31. data/spec/acceptance/attribute_updates_spec.rb +3 -3
  32. data/spec/acceptance/batch_searching_spec.rb +4 -4
  33. data/spec/acceptance/big_integers_spec.rb +6 -6
  34. data/spec/acceptance/connection_spec.rb +23 -0
  35. data/spec/acceptance/excerpts_spec.rb +8 -8
  36. data/spec/acceptance/facets_spec.rb +13 -13
  37. data/spec/acceptance/geosearching_spec.rb +8 -8
  38. data/spec/acceptance/grouping_by_attributes_spec.rb +10 -10
  39. data/spec/acceptance/index_options_spec.rb +16 -16
  40. data/spec/acceptance/indexing_spec.rb +3 -3
  41. data/spec/acceptance/paginating_search_results_spec.rb +3 -3
  42. data/spec/acceptance/real_time_updates_spec.rb +4 -4
  43. data/spec/acceptance/remove_deleted_records_spec.rb +12 -12
  44. data/spec/acceptance/search_counts_spec.rb +2 -2
  45. data/spec/acceptance/search_for_just_ids_spec.rb +2 -2
  46. data/spec/acceptance/searching_across_models_spec.rb +6 -6
  47. data/spec/acceptance/searching_across_schemas_spec.rb +10 -10
  48. data/spec/acceptance/searching_on_fields_spec.rb +9 -9
  49. data/spec/acceptance/searching_with_filters_spec.rb +16 -16
  50. data/spec/acceptance/searching_with_sti_spec.rb +9 -9
  51. data/spec/acceptance/searching_within_a_model_spec.rb +17 -17
  52. data/spec/acceptance/sorting_search_results_spec.rb +6 -6
  53. data/spec/acceptance/specifying_sql_spec.rb +62 -62
  54. data/spec/acceptance/sphinx_scopes_spec.rb +9 -9
  55. data/spec/acceptance/sql_deltas_spec.rb +7 -7
  56. data/spec/acceptance/support/database_cleaner.rb +1 -1
  57. data/spec/acceptance/support/sphinx_controller.rb +4 -1
  58. data/spec/acceptance/support/sphinx_helpers.rb +4 -0
  59. data/spec/acceptance/suspended_deltas_spec.rb +9 -9
  60. data/spec/internal/app/indices/article_index.rb +2 -2
  61. data/spec/internal/app/indices/book_index.rb +2 -1
  62. data/spec/internal/app/indices/product_index.rb +0 -2
  63. data/spec/internal/app/models/categorisation.rb +8 -1
  64. data/spec/spec_helper.rb +2 -0
  65. data/spec/support/json_column.rb +5 -1
  66. data/spec/support/multi_schema.rb +3 -1
  67. data/spec/support/sphinx_yaml_helpers.rb +1 -1
  68. data/spec/thinking_sphinx/active_record/association_spec.rb +1 -1
  69. data/spec/thinking_sphinx/active_record/attribute/type_spec.rb +41 -38
  70. data/spec/thinking_sphinx/active_record/base_spec.rb +29 -29
  71. data/spec/thinking_sphinx/active_record/callbacks/delete_callbacks_spec.rb +10 -10
  72. data/spec/thinking_sphinx/active_record/callbacks/delta_callbacks_spec.rb +48 -25
  73. data/spec/thinking_sphinx/active_record/callbacks/update_callbacks_spec.rb +8 -8
  74. data/spec/thinking_sphinx/active_record/column_spec.rb +13 -13
  75. data/spec/thinking_sphinx/active_record/column_sql_presenter_spec.rb +5 -5
  76. data/spec/thinking_sphinx/active_record/database_adapters/abstract_adapter_spec.rb +5 -5
  77. data/spec/thinking_sphinx/active_record/database_adapters/mysql_adapter_spec.rb +11 -11
  78. data/spec/thinking_sphinx/active_record/database_adapters/postgresql_adapter_spec.rb +13 -13
  79. data/spec/thinking_sphinx/active_record/database_adapters_spec.rb +48 -48
  80. data/spec/thinking_sphinx/active_record/field_spec.rb +7 -7
  81. data/spec/thinking_sphinx/active_record/filter_reflection_spec.rb +32 -32
  82. data/spec/thinking_sphinx/active_record/index_spec.rb +35 -36
  83. data/spec/thinking_sphinx/active_record/interpreter_spec.rb +51 -51
  84. data/spec/thinking_sphinx/active_record/polymorpher_spec.rb +14 -14
  85. data/spec/thinking_sphinx/active_record/property_sql_presenter_spec.rb +67 -67
  86. data/spec/thinking_sphinx/active_record/sql_builder_spec.rb +140 -140
  87. data/spec/thinking_sphinx/active_record/sql_source_spec.rb +97 -95
  88. data/spec/thinking_sphinx/configuration_spec.rb +81 -81
  89. data/spec/thinking_sphinx/connection_spec.rb +13 -13
  90. data/spec/thinking_sphinx/deletion_spec.rb +11 -11
  91. data/spec/thinking_sphinx/deltas/default_delta_spec.rb +20 -20
  92. data/spec/thinking_sphinx/deltas_spec.rb +12 -12
  93. data/spec/thinking_sphinx/errors_spec.rb +30 -30
  94. data/spec/thinking_sphinx/excerpter_spec.rb +7 -7
  95. data/spec/thinking_sphinx/facet_search_spec.rb +16 -16
  96. data/spec/thinking_sphinx/index_set_spec.rb +7 -7
  97. data/spec/thinking_sphinx/index_spec.rb +24 -24
  98. data/spec/thinking_sphinx/masks/pagination_mask_spec.rb +20 -20
  99. data/spec/thinking_sphinx/masks/scopes_mask_spec.rb +18 -18
  100. data/spec/thinking_sphinx/middlewares/active_record_translator_spec.rb +22 -22
  101. data/spec/thinking_sphinx/middlewares/geographer_spec.rb +9 -9
  102. data/spec/thinking_sphinx/middlewares/glazier_spec.rb +4 -4
  103. data/spec/thinking_sphinx/middlewares/inquirer_spec.rb +7 -7
  104. data/spec/thinking_sphinx/middlewares/sphinxql_spec.rb +53 -53
  105. data/spec/thinking_sphinx/middlewares/stale_id_checker_spec.rb +5 -5
  106. data/spec/thinking_sphinx/middlewares/stale_id_filter_spec.rb +15 -15
  107. data/spec/thinking_sphinx/panes/attributes_pane_spec.rb +1 -1
  108. data/spec/thinking_sphinx/panes/distance_pane_spec.rb +4 -4
  109. data/spec/thinking_sphinx/panes/excerpts_pane_spec.rb +5 -5
  110. data/spec/thinking_sphinx/panes/weight_pane_spec.rb +1 -1
  111. data/spec/thinking_sphinx/rake_interface_spec.rb +66 -53
  112. data/spec/thinking_sphinx/real_time/attribute_spec.rb +13 -13
  113. data/spec/thinking_sphinx/real_time/callbacks/real_time_callbacks_spec.rb +107 -23
  114. data/spec/thinking_sphinx/real_time/field_spec.rb +14 -14
  115. data/spec/thinking_sphinx/real_time/index_spec.rb +29 -30
  116. data/spec/thinking_sphinx/real_time/interpreter_spec.rb +30 -30
  117. data/spec/thinking_sphinx/scopes_spec.rb +5 -5
  118. data/spec/thinking_sphinx/search/glaze_spec.rb +15 -15
  119. data/spec/thinking_sphinx/search/query_spec.rb +10 -10
  120. data/spec/thinking_sphinx/search_spec.rb +28 -28
  121. data/spec/thinking_sphinx/wildcard_spec.rb +16 -11
  122. data/spec/thinking_sphinx_spec.rb +6 -6
  123. data/thinking-sphinx.gemspec +4 -4
  124. metadata +12 -9
@@ -9,14 +9,14 @@ describe ThinkingSphinx::Configuration do
9
9
 
10
10
  describe '.instance' do
11
11
  it "returns an instance of ThinkingSphinx::Configuration" do
12
- ThinkingSphinx::Configuration.instance.
13
- should be_a(ThinkingSphinx::Configuration)
12
+ expect(ThinkingSphinx::Configuration.instance).
13
+ to be_a(ThinkingSphinx::Configuration)
14
14
  end
15
15
 
16
16
  it "memoizes the instance" do
17
17
  config = double('configuration')
18
18
 
19
- ThinkingSphinx::Configuration.should_receive(:new).once.and_return(config)
19
+ expect(ThinkingSphinx::Configuration).to receive(:new).once.and_return(config)
20
20
 
21
21
  ThinkingSphinx::Configuration.instance
22
22
  ThinkingSphinx::Configuration.instance
@@ -29,8 +29,8 @@ describe ThinkingSphinx::Configuration do
29
29
  end
30
30
 
31
31
  it 'does not cache settings after reset' do
32
- File.stub :exists? => true
33
- File.stub :read => {
32
+ allow(File).to receive_messages :exists? => true
33
+ allow(File).to receive_messages :read => {
34
34
  'test' => {'foo' => 'bugs'},
35
35
  'production' => {'foo' => 'bar'}
36
36
  }.to_yaml
@@ -38,33 +38,33 @@ describe ThinkingSphinx::Configuration do
38
38
  ThinkingSphinx::Configuration.reset
39
39
  # Grab a new copy of the instance.
40
40
  config = ThinkingSphinx::Configuration.instance
41
- config.settings['foo'].should == 'bugs'
41
+ expect(config.settings['foo']).to eq('bugs')
42
42
 
43
43
  config.framework = double :environment => 'production', :root => Pathname.new(__FILE__).join('..', '..', 'internal')
44
- config.settings['foo'].should == 'bar'
44
+ expect(config.settings['foo']).to eq('bar')
45
45
  end
46
46
  end
47
47
 
48
48
  describe '#configuration_file' do
49
49
  it "uses the Rails environment in the configuration file name" do
50
- config.configuration_file.
51
- should == File.join(Rails.root, 'config', 'test.sphinx.conf')
50
+ expect(config.configuration_file).
51
+ to eq(File.join(Rails.root, 'config', 'test.sphinx.conf'))
52
52
  end
53
53
 
54
54
  it "respects provided settings" do
55
55
  write_configuration 'configuration_file' => '/path/to/foo.conf'
56
56
 
57
- config.configuration_file.should == '/path/to/foo.conf'
57
+ expect(config.configuration_file).to eq('/path/to/foo.conf')
58
58
  end
59
59
  end
60
60
 
61
61
  describe '#controller' do
62
62
  it "returns an instance of Riddle::Controller" do
63
- config.controller.should be_a(Riddle::Controller)
63
+ expect(config.controller).to be_a(Riddle::Controller)
64
64
  end
65
65
 
66
66
  it "memoizes the instance" do
67
- Riddle::Controller.should_receive(:new).once.
67
+ expect(Riddle::Controller).to receive(:new).once.
68
68
  and_return(double('controller'))
69
69
 
70
70
  config.controller
@@ -74,19 +74,19 @@ describe ThinkingSphinx::Configuration do
74
74
  it "sets the bin path from the thinking_sphinx.yml file" do
75
75
  write_configuration('bin_path' => '/foo/bar/bin/')
76
76
 
77
- config.controller.bin_path.should == '/foo/bar/bin/'
77
+ expect(config.controller.bin_path).to eq('/foo/bar/bin/')
78
78
  end
79
79
 
80
80
  it "appends a backslash to the bin_path if appropriate" do
81
81
  write_configuration('bin_path' => '/foo/bar/bin')
82
82
 
83
- config.controller.bin_path.should == '/foo/bar/bin/'
83
+ expect(config.controller.bin_path).to eq('/foo/bar/bin/')
84
84
  end
85
85
  end
86
86
 
87
87
  describe '#index_paths' do
88
88
  it "uses app/indices in the Rails app by default" do
89
- config.index_paths.should include(File.join(Rails.root, 'app', 'indices'))
89
+ expect(config.index_paths).to include(File.join(Rails.root, 'app', 'indices'))
90
90
  end
91
91
 
92
92
  it "uses app/indices in the Rails engines" do
@@ -95,22 +95,22 @@ describe ThinkingSphinx::Configuration do
95
95
  } }
96
96
  engine_class = double :instance => engine
97
97
 
98
- Rails::Engine.should_receive(:subclasses).and_return([ engine_class ])
98
+ expect(Rails::Engine).to receive(:subclasses).and_return([ engine_class ])
99
99
 
100
- config.index_paths.should include('/engine/app/indices')
100
+ expect(config.index_paths).to include('/engine/app/indices')
101
101
  end
102
102
  end
103
103
 
104
104
  describe '#indices_location' do
105
105
  it "stores index files in db/sphinx/ENVIRONMENT" do
106
- config.indices_location.
107
- should == File.join(Rails.root, 'db', 'sphinx', 'test')
106
+ expect(config.indices_location).
107
+ to eq(File.join(Rails.root, 'db', 'sphinx', 'test'))
108
108
  end
109
109
 
110
110
  it "respects provided settings" do
111
111
  write_configuration 'indices_location' => '/my/index/files'
112
112
 
113
- config.indices_location.should == '/my/index/files'
113
+ expect(config.indices_location).to eq('/my/index/files')
114
114
  end
115
115
  end
116
116
 
@@ -120,30 +120,30 @@ describe ThinkingSphinx::Configuration do
120
120
  end
121
121
 
122
122
  it "sets the daemon pid file within log for the Rails app" do
123
- config.searchd.pid_file.
124
- should == File.join(Rails.root, 'log', 'test.sphinx.pid')
123
+ expect(config.searchd.pid_file).
124
+ to eq(File.join(Rails.root, 'log', 'test.sphinx.pid'))
125
125
  end
126
126
 
127
127
  it "sets the daemon log within log for the Rails app" do
128
- config.searchd.log.
129
- should == File.join(Rails.root, 'log', 'test.searchd.log')
128
+ expect(config.searchd.log).
129
+ to eq(File.join(Rails.root, 'log', 'test.searchd.log'))
130
130
  end
131
131
 
132
132
  it "sets the query log within log for the Rails app" do
133
- config.searchd.query_log.
134
- should == File.join(Rails.root, 'log', 'test.searchd.query.log')
133
+ expect(config.searchd.query_log).
134
+ to eq(File.join(Rails.root, 'log', 'test.searchd.query.log'))
135
135
  end
136
136
 
137
137
  it "sets indexer settings if within thinking_sphinx.yml" do
138
138
  write_configuration 'mem_limit' => '128M'
139
139
 
140
- config.indexer.mem_limit.should == '128M'
140
+ expect(config.indexer.mem_limit).to eq('128M')
141
141
  end
142
142
 
143
143
  it "sets searchd settings if within thinking_sphinx.yml" do
144
144
  write_configuration 'workers' => 'none'
145
145
 
146
- config.searchd.workers.should == 'none'
146
+ expect(config.searchd.workers).to eq('none')
147
147
  end
148
148
 
149
149
  it 'adds settings to indexer without common section' do
@@ -164,18 +164,18 @@ describe ThinkingSphinx::Configuration do
164
164
  let(:reference) { double('reference') }
165
165
 
166
166
  it "starts at 0" do
167
- config.next_offset(reference).should == 0
167
+ expect(config.next_offset(reference)).to eq(0)
168
168
  end
169
169
 
170
170
  it "increments for each new reference" do
171
- config.next_offset(double('reference')).should == 0
172
- config.next_offset(double('reference')).should == 1
173
- config.next_offset(double('reference')).should == 2
171
+ expect(config.next_offset(double('reference'))).to eq(0)
172
+ expect(config.next_offset(double('reference'))).to eq(1)
173
+ expect(config.next_offset(double('reference'))).to eq(2)
174
174
  end
175
175
 
176
176
  it "doesn't increment for recorded references" do
177
- config.next_offset(reference).should == 0
178
- config.next_offset(reference).should == 0
177
+ expect(config.next_offset(reference)).to eq(0)
178
+ expect(config.next_offset(reference)).to eq(0)
179
179
  end
180
180
  end
181
181
 
@@ -190,9 +190,9 @@ describe ThinkingSphinx::Configuration do
190
190
  it "searches each index path for ruby files" do
191
191
  config.index_paths.replace ['/path/to/indices', '/path/to/other/indices']
192
192
 
193
- Dir.should_receive(:[]).with('/path/to/indices/**/*.rb').once.
193
+ expect(Dir).to receive(:[]).with('/path/to/indices/**/*.rb').once.
194
194
  and_return([])
195
- Dir.should_receive(:[]).with('/path/to/other/indices/**/*.rb').once.
195
+ expect(Dir).to receive(:[]).with('/path/to/other/indices/**/*.rb').once.
196
196
  and_return([])
197
197
 
198
198
  config.preload_indices
@@ -200,14 +200,14 @@ describe ThinkingSphinx::Configuration do
200
200
 
201
201
  it "loads each file returned" do
202
202
  config.index_paths.replace ['/path/to/indices']
203
- Dir.stub! :[] => [
203
+ allow(Dir).to receive_messages :[] => [
204
204
  '/path/to/indices/foo_index.rb',
205
205
  '/path/to/indices/bar_index.rb'
206
206
  ]
207
207
 
208
- ActiveSupport::Dependencies.should_receive(:require_or_load).
208
+ expect(ActiveSupport::Dependencies).to receive(:require_or_load).
209
209
  with('/path/to/indices/foo_index.rb').once
210
- ActiveSupport::Dependencies.should_receive(:require_or_load).
210
+ expect(ActiveSupport::Dependencies).to receive(:require_or_load).
211
211
  with('/path/to/indices/bar_index.rb').once
212
212
 
213
213
  config.preload_indices
@@ -215,14 +215,14 @@ describe ThinkingSphinx::Configuration do
215
215
 
216
216
  it "does not double-load indices" do
217
217
  config.index_paths.replace ['/path/to/indices']
218
- Dir.stub! :[] => [
218
+ allow(Dir).to receive_messages :[] => [
219
219
  '/path/to/indices/foo_index.rb',
220
220
  '/path/to/indices/bar_index.rb'
221
221
  ]
222
222
 
223
- ActiveSupport::Dependencies.should_receive(:require_or_load).
223
+ expect(ActiveSupport::Dependencies).to receive(:require_or_load).
224
224
  with('/path/to/indices/foo_index.rb').once
225
- ActiveSupport::Dependencies.should_receive(:require_or_load).
225
+ expect(ActiveSupport::Dependencies).to receive(:require_or_load).
226
226
  with('/path/to/indices/bar_index.rb').once
227
227
 
228
228
  config.preload_indices
@@ -230,7 +230,7 @@ describe ThinkingSphinx::Configuration do
230
230
  end
231
231
 
232
232
  it 'adds distributed indices' do
233
- distributor.should_receive(:reconcile)
233
+ expect(distributor).to receive(:reconcile)
234
234
 
235
235
  config.preload_indices
236
236
  end
@@ -238,7 +238,7 @@ describe ThinkingSphinx::Configuration do
238
238
  it 'does not add distributed indices if disabled' do
239
239
  write_configuration('distributed_indices' => false)
240
240
 
241
- distributor.should_not_receive(:reconcile)
241
+ expect(distributor).not_to receive(:reconcile)
242
242
 
243
243
  config.preload_indices
244
244
  end
@@ -246,15 +246,15 @@ describe ThinkingSphinx::Configuration do
246
246
 
247
247
  describe '#render' do
248
248
  before :each do
249
- config.searchd.stub! :render => 'searchd { }'
249
+ allow(config.searchd).to receive_messages :render => 'searchd { }'
250
250
  end
251
251
 
252
252
  it "searches each index path for ruby files" do
253
253
  config.index_paths.replace ['/path/to/indices', '/path/to/other/indices']
254
254
 
255
- Dir.should_receive(:[]).with('/path/to/indices/**/*.rb').once.
255
+ expect(Dir).to receive(:[]).with('/path/to/indices/**/*.rb').once.
256
256
  and_return([])
257
- Dir.should_receive(:[]).with('/path/to/other/indices/**/*.rb').once.
257
+ expect(Dir).to receive(:[]).with('/path/to/other/indices/**/*.rb').once.
258
258
  and_return([])
259
259
 
260
260
  config.render
@@ -262,14 +262,14 @@ describe ThinkingSphinx::Configuration do
262
262
 
263
263
  it "loads each file returned" do
264
264
  config.index_paths.replace ['/path/to/indices']
265
- Dir.stub! :[] => [
265
+ allow(Dir).to receive_messages :[] => [
266
266
  '/path/to/indices/foo_index.rb',
267
267
  '/path/to/indices/bar_index.rb'
268
268
  ]
269
269
 
270
- ActiveSupport::Dependencies.should_receive(:require_or_load).
270
+ expect(ActiveSupport::Dependencies).to receive(:require_or_load).
271
271
  with('/path/to/indices/foo_index.rb').once
272
- ActiveSupport::Dependencies.should_receive(:require_or_load).
272
+ expect(ActiveSupport::Dependencies).to receive(:require_or_load).
273
273
  with('/path/to/indices/bar_index.rb').once
274
274
 
275
275
  config.render
@@ -277,14 +277,14 @@ describe ThinkingSphinx::Configuration do
277
277
 
278
278
  it "does not double-load indices" do
279
279
  config.index_paths.replace ['/path/to/indices']
280
- Dir.stub! :[] => [
280
+ allow(Dir).to receive_messages :[] => [
281
281
  '/path/to/indices/foo_index.rb',
282
282
  '/path/to/indices/bar_index.rb'
283
283
  ]
284
284
 
285
- ActiveSupport::Dependencies.should_receive(:require_or_load).
285
+ expect(ActiveSupport::Dependencies).to receive(:require_or_load).
286
286
  with('/path/to/indices/foo_index.rb').once
287
- ActiveSupport::Dependencies.should_receive(:require_or_load).
287
+ expect(ActiveSupport::Dependencies).to receive(:require_or_load).
288
288
  with('/path/to/indices/bar_index.rb').once
289
289
 
290
290
  config.preload_indices
@@ -297,33 +297,33 @@ describe ThinkingSphinx::Configuration do
297
297
  let(:output) { config.render }
298
298
 
299
299
  before :each do
300
- config.searchd.stub! :render => 'searchd { }'
300
+ allow(config.searchd).to receive_messages :render => 'searchd { }'
301
301
  end
302
302
 
303
303
  it "writes the rendered configuration to the file" do
304
304
  config.configuration_file = '/path/to/file.config'
305
305
 
306
- config.should_receive(:open).with('/path/to/file.config', 'w').
306
+ expect(config).to receive(:open).with('/path/to/file.config', 'w').
307
307
  and_yield(file)
308
- file.should_receive(:write).with(output)
308
+ expect(file).to receive(:write).with(output)
309
309
 
310
310
  config.render_to_file
311
311
  end
312
312
 
313
313
  it "creates a directory at the binlog_path" do
314
- FileUtils.stub :mkdir_p => true
315
- config.stub :searchd => double(:binlog_path => '/path/to/binlog')
314
+ allow(FileUtils).to receive_messages :mkdir_p => true
315
+ allow(config).to receive_messages :searchd => double(:binlog_path => '/path/to/binlog')
316
316
 
317
- FileUtils.should_receive(:mkdir_p).with('/path/to/binlog')
317
+ expect(FileUtils).to receive(:mkdir_p).with('/path/to/binlog')
318
318
 
319
319
  config.render_to_file
320
320
  end
321
321
 
322
322
  it "skips creating a directory when the binlog_path is blank" do
323
- FileUtils.stub :mkdir_p => true
324
- config.stub :searchd => double(:binlog_path => '')
323
+ allow(FileUtils).to receive_messages :mkdir_p => true
324
+ allow(config).to receive_messages :searchd => double(:binlog_path => '')
325
325
 
326
- FileUtils.should_not_receive(:mkdir_p)
326
+ expect(FileUtils).not_to receive(:mkdir_p)
327
327
 
328
328
  config.render_to_file
329
329
  end
@@ -332,31 +332,31 @@ describe ThinkingSphinx::Configuration do
332
332
  describe '#searchd' do
333
333
  describe '#address' do
334
334
  it "defaults to 127.0.0.1" do
335
- config.searchd.address.should == '127.0.0.1'
335
+ expect(config.searchd.address).to eq('127.0.0.1')
336
336
  end
337
337
 
338
338
  it "respects the address setting" do
339
339
  write_configuration('address' => '10.11.12.13')
340
340
 
341
- config.searchd.address.should == '10.11.12.13'
341
+ expect(config.searchd.address).to eq('10.11.12.13')
342
342
  end
343
343
  end
344
344
 
345
345
  describe '#mysql41' do
346
346
  it "defaults to 9306" do
347
- config.searchd.mysql41.should == 9306
347
+ expect(config.searchd.mysql41).to eq(9306)
348
348
  end
349
349
 
350
350
  it "respects the port setting" do
351
351
  write_configuration('port' => 9313)
352
352
 
353
- config.searchd.mysql41.should == 9313
353
+ expect(config.searchd.mysql41).to eq(9313)
354
354
  end
355
355
 
356
356
  it "respects the mysql41 setting" do
357
357
  write_configuration('mysql41' => 9307)
358
358
 
359
- config.searchd.mysql41.should == 9307
359
+ expect(config.searchd.mysql41).to eq(9307)
360
360
  end
361
361
  end
362
362
  end
@@ -364,66 +364,66 @@ describe ThinkingSphinx::Configuration do
364
364
  describe '#settings' do
365
365
  context 'YAML file exists' do
366
366
  before :each do
367
- File.stub :exists? => true
367
+ allow(File).to receive_messages :exists? => true
368
368
  end
369
369
 
370
370
  it "reads from the YAML file" do
371
- File.should_receive(:read).and_return('')
371
+ expect(File).to receive(:read).and_return('')
372
372
 
373
373
  config.settings
374
374
  end
375
375
 
376
376
  it "uses the settings for the given environment" do
377
- File.stub :read => {
377
+ allow(File).to receive_messages :read => {
378
378
  'test' => {'foo' => 'bar'},
379
379
  'staging' => {'baz' => 'qux'}
380
380
  }.to_yaml
381
- Rails.stub :env => 'staging'
381
+ allow(Rails).to receive_messages :env => 'staging'
382
382
 
383
- config.settings['baz'].should == 'qux'
383
+ expect(config.settings['baz']).to eq('qux')
384
384
  end
385
385
 
386
386
  it "remembers the file contents" do
387
- File.should_receive(:read).and_return('')
387
+ expect(File).to receive(:read).and_return('')
388
388
 
389
389
  config.settings
390
390
  config.settings
391
391
  end
392
392
 
393
393
  it "returns an empty hash when no settings for the environment exist" do
394
- File.stub :read => {'test' => {'foo' => 'bar'}}.to_yaml
395
- Rails.stub :env => 'staging'
394
+ allow(File).to receive_messages :read => {'test' => {'foo' => 'bar'}}.to_yaml
395
+ allow(Rails).to receive_messages :env => 'staging'
396
396
 
397
- config.settings.should == {}
397
+ expect(config.settings).to eq({})
398
398
  end
399
399
  end
400
400
 
401
401
  context 'YAML file does not exist' do
402
402
  before :each do
403
- File.stub :exists? => false
403
+ allow(File).to receive_messages :exists? => false
404
404
  end
405
405
 
406
406
  it "does not read the file" do
407
- File.should_not_receive(:read)
407
+ expect(File).not_to receive(:read)
408
408
 
409
409
  config.settings
410
410
  end
411
411
 
412
412
  it "returns an empty hash" do
413
- config.settings.should == {}
413
+ expect(config.settings).to eq({})
414
414
  end
415
415
  end
416
416
  end
417
417
 
418
418
  describe '#version' do
419
419
  it "defaults to 2.1.4" do
420
- config.version.should == '2.1.4'
420
+ expect(config.version).to eq('2.1.4')
421
421
  end
422
422
 
423
423
  it "respects supplied YAML versions" do
424
424
  write_configuration 'version' => '2.0.4'
425
425
 
426
- config.version.should == '2.0.4'
426
+ expect(config.version).to eq('2.0.4')
427
427
  end
428
428
  end
429
429
  end