thinking-sphinx 3.1.4 → 3.2.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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +7 -2
  3. data/Appraisals +4 -4
  4. data/Gemfile +2 -0
  5. data/HISTORY +24 -0
  6. data/README.textile +5 -4
  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/lib/thinking_sphinx.rb +4 -1
  12. data/lib/thinking_sphinx/active_record.rb +1 -0
  13. data/lib/thinking_sphinx/active_record/association_proxy/attribute_finder.rb +1 -1
  14. data/lib/thinking_sphinx/active_record/attribute/type.rb +1 -1
  15. data/lib/thinking_sphinx/active_record/base.rb +1 -1
  16. data/lib/thinking_sphinx/active_record/callbacks/delete_callbacks.rb +1 -1
  17. data/lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb +7 -3
  18. data/lib/thinking_sphinx/active_record/callbacks/update_callbacks.rb +2 -2
  19. data/lib/thinking_sphinx/active_record/column_sql_presenter.rb +5 -1
  20. data/lib/thinking_sphinx/active_record/index.rb +4 -4
  21. data/lib/thinking_sphinx/active_record/source_joins.rb +55 -0
  22. data/lib/thinking_sphinx/active_record/sql_builder.rb +3 -18
  23. data/lib/thinking_sphinx/active_record/sql_builder/query.rb +7 -0
  24. data/lib/thinking_sphinx/active_record/sql_source.rb +7 -5
  25. data/lib/thinking_sphinx/active_record/sql_source/template.rb +1 -1
  26. data/lib/thinking_sphinx/callbacks.rb +18 -0
  27. data/lib/thinking_sphinx/configuration.rb +50 -33
  28. data/lib/thinking_sphinx/configuration/duplicate_names.rb +34 -0
  29. data/lib/thinking_sphinx/connection.rb +4 -4
  30. data/lib/thinking_sphinx/controller.rb +6 -4
  31. data/lib/thinking_sphinx/deletion.rb +13 -0
  32. data/lib/thinking_sphinx/errors.rb +8 -0
  33. data/lib/thinking_sphinx/index_set.rb +6 -1
  34. data/lib/thinking_sphinx/indexing_strategies/all_at_once.rb +7 -0
  35. data/lib/thinking_sphinx/indexing_strategies/one_at_a_time.rb +14 -0
  36. data/lib/thinking_sphinx/middlewares/active_record_translator.rb +1 -1
  37. data/lib/thinking_sphinx/middlewares/inquirer.rb +1 -1
  38. data/lib/thinking_sphinx/middlewares/sphinxql.rb +2 -2
  39. data/lib/thinking_sphinx/middlewares/stale_id_checker.rb +1 -1
  40. data/lib/thinking_sphinx/middlewares/stale_id_filter.rb +2 -2
  41. data/lib/thinking_sphinx/rake_interface.rb +14 -5
  42. data/lib/thinking_sphinx/real_time.rb +1 -0
  43. data/lib/thinking_sphinx/real_time/attribute.rb +7 -1
  44. data/lib/thinking_sphinx/real_time/index.rb +2 -0
  45. data/lib/thinking_sphinx/real_time/populator.rb +3 -3
  46. data/lib/thinking_sphinx/real_time/property.rb +1 -5
  47. data/lib/thinking_sphinx/real_time/transcriber.rb +44 -9
  48. data/lib/thinking_sphinx/real_time/translator.rb +36 -0
  49. data/lib/thinking_sphinx/search.rb +10 -0
  50. data/lib/thinking_sphinx/search/context.rb +8 -0
  51. data/lib/thinking_sphinx/search/stale_ids_exception.rb +3 -2
  52. data/lib/thinking_sphinx/subscribers/populator_subscriber.rb +1 -1
  53. data/lib/thinking_sphinx/tasks.rb +3 -1
  54. data/spec/acceptance/remove_deleted_records_spec.rb +18 -0
  55. data/spec/acceptance/searching_with_filters_spec.rb +13 -0
  56. data/spec/internal/app/indices/product_index.rb +1 -0
  57. data/spec/internal/db/schema.rb +1 -0
  58. data/spec/spec_helper.rb +1 -0
  59. data/spec/support/json_column.rb +29 -0
  60. data/spec/thinking_sphinx/active_record/callbacks/delete_callbacks_spec.rb +10 -0
  61. data/spec/thinking_sphinx/active_record/callbacks/update_callbacks_spec.rb +10 -0
  62. data/spec/thinking_sphinx/active_record/column_sql_presenter_spec.rb +37 -0
  63. data/spec/thinking_sphinx/active_record/sql_builder_spec.rb +7 -17
  64. data/spec/thinking_sphinx/active_record/sql_source_spec.rb +43 -15
  65. data/spec/thinking_sphinx/errors_spec.rb +7 -0
  66. data/spec/thinking_sphinx/middlewares/active_record_translator_spec.rb +15 -1
  67. data/spec/thinking_sphinx/middlewares/stale_id_checker_spec.rb +1 -0
  68. data/spec/thinking_sphinx/middlewares/stale_id_filter_spec.rb +26 -6
  69. data/spec/thinking_sphinx/real_time/callbacks/real_time_callbacks_spec.rb +4 -4
  70. data/spec/thinking_sphinx_spec.rb +2 -1
  71. data/thinking-sphinx.gemspec +1 -1
  72. metadata +12 -3
@@ -9,7 +9,7 @@ describe ThinkingSphinx::ActiveRecord::SQLSource do
9
9
  let(:db_config) { {:host => 'localhost', :user => 'root',
10
10
  :database => 'default'} }
11
11
  let(:source) { ThinkingSphinx::ActiveRecord::SQLSource.new(model,
12
- :position => 3) }
12
+ :position => 3, :primary_key => model.primary_key || :id ) }
13
13
  let(:adapter) { double('adapter') }
14
14
 
15
15
  before :each do
@@ -53,12 +53,14 @@ describe ThinkingSphinx::ActiveRecord::SQLSource do
53
53
  let(:processor) { double('processor') }
54
54
  let(:source) {
55
55
  ThinkingSphinx::ActiveRecord::SQLSource.new model,
56
- :delta_processor => processor_class
56
+ :delta_processor => processor_class,
57
+ :primary_key => model.primary_key || :id
57
58
  }
58
59
  let(:source_with_options) {
59
60
  ThinkingSphinx::ActiveRecord::SQLSource.new model,
60
61
  :delta_processor => processor_class,
61
- :delta_options => { :opt_key => :opt_value }
62
+ :delta_options => { :opt_key => :opt_value },
63
+ :primary_key => model.primary_key || :id
62
64
  }
63
65
 
64
66
  it "loads the processor with the adapter" do
@@ -81,7 +83,8 @@ describe ThinkingSphinx::ActiveRecord::SQLSource do
81
83
  describe '#delta?' do
82
84
  it "returns the given delta setting" do
83
85
  source = ThinkingSphinx::ActiveRecord::SQLSource.new model,
84
- :delta? => true
86
+ :delta? => true,
87
+ :primary_key => model.primary_key || :id
85
88
 
86
89
  source.should be_a_delta
87
90
  end
@@ -90,7 +93,8 @@ describe ThinkingSphinx::ActiveRecord::SQLSource do
90
93
  describe '#disable_range?' do
91
94
  it "returns the given range setting" do
92
95
  source = ThinkingSphinx::ActiveRecord::SQLSource.new model,
93
- :disable_range? => true
96
+ :disable_range? => true,
97
+ :primary_key => model.primary_key || :id
94
98
 
95
99
  source.disable_range?.should be_true
96
100
  end
@@ -129,7 +133,7 @@ describe ThinkingSphinx::ActiveRecord::SQLSource do
129
133
 
130
134
  it "allows for custom names, but adds the position suffix" do
131
135
  source = ThinkingSphinx::ActiveRecord::SQLSource.new model,
132
- :name => 'people', :position => 2
136
+ :name => 'people', :position => 2, :primary_key => model.primary_key || :id
133
137
 
134
138
  source.name.should == 'people_2'
135
139
  end
@@ -137,7 +141,8 @@ describe ThinkingSphinx::ActiveRecord::SQLSource do
137
141
 
138
142
  describe '#offset' do
139
143
  it "returns the given offset" do
140
- source = ThinkingSphinx::ActiveRecord::SQLSource.new model, :offset => 12
144
+ source = ThinkingSphinx::ActiveRecord::SQLSource.new model,
145
+ :offset => 12, :primary_key => model.primary_key || :id
141
146
 
142
147
  source.offset.should == 12
143
148
  end
@@ -153,6 +158,19 @@ describe ThinkingSphinx::ActiveRecord::SQLSource do
153
158
 
154
159
  source.options[:utf8?].should be_true
155
160
  end
161
+
162
+ describe "#primary key" do
163
+ let(:model) { double('model', :connection => connection,
164
+ :name => 'User', :column_names => [], :inheritance_column => 'type') }
165
+ let(:source) { ThinkingSphinx::ActiveRecord::SQLSource.new(model,
166
+ :position => 3, :primary_key => :custom_key) }
167
+ let(:template) { ThinkingSphinx::ActiveRecord::SQLSource::Template.new(source) }
168
+
169
+ it 'template should allow primary key from options' do
170
+ template.apply
171
+ template.source.attributes.collect(&:columns) == :custom_key
172
+ end
173
+ end
156
174
  end
157
175
 
158
176
  describe '#render' do
@@ -194,14 +212,6 @@ describe ThinkingSphinx::ActiveRecord::SQLSource do
194
212
  source.sql_query_pre.should == ['Change Setting']
195
213
  end
196
214
 
197
- it "appends the builder's sql_query_post_index value" do
198
- builder.stub! :sql_query_post_index => ['RESET DELTAS']
199
-
200
- source.render
201
-
202
- source.sql_query_post_index.should include('RESET DELTAS')
203
- end
204
-
205
215
  it "adds fields with attributes to sql_field_string" do
206
216
  source.fields << double('field', :name => 'title', :source_type => nil,
207
217
  :with_attribute? => true, :file? => false, :wordcount? => false)
@@ -398,6 +408,24 @@ describe ThinkingSphinx::ActiveRecord::SQLSource do
398
408
 
399
409
  source.sql_sock.should == '/unix/socket'
400
410
  end
411
+
412
+ it "sets the mysql_ssl_cert from the model's database settings" do
413
+ source.set_database_settings :sslcert => '/path/to/cert.pem'
414
+
415
+ source.mysql_ssl_cert.should eq '/path/to/cert.pem'
416
+ end
417
+
418
+ it "sets the mysql_ssl_key from the model's database settings" do
419
+ source.set_database_settings :sslkey => '/path/to/key.pem'
420
+
421
+ source.mysql_ssl_key.should eq '/path/to/key.pem'
422
+ end
423
+
424
+ it "sets the mysql_ssl_ca from the model's database settings" do
425
+ source.set_database_settings :sslca => '/path/to/ca.pem'
426
+
427
+ source.mysql_ssl_ca.should eq '/path/to/ca.pem'
428
+ end
401
429
  end
402
430
 
403
431
  describe '#type' do
@@ -33,6 +33,13 @@ describe ThinkingSphinx::SphinxError do
33
33
  should be_a(ThinkingSphinx::ConnectionError)
34
34
  end
35
35
 
36
+ it 'translates out-of-bounds errors' do
37
+ error.stub :message => "offset out of bounds (offset=1001, max_matches=1000)"
38
+
39
+ ThinkingSphinx::SphinxError.new_from_mysql(error).
40
+ should be_a(ThinkingSphinx::OutOfBoundsError)
41
+ end
42
+
36
43
  it 'prefixes the connection error message' do
37
44
  error.stub :message => "Can't connect to MySQL server on '127.0.0.1' (61)"
38
45
 
@@ -11,9 +11,10 @@ describe ThinkingSphinx::Middlewares::ActiveRecordTranslator do
11
11
  let(:app) { double('app', :call => true) }
12
12
  let(:middleware) {
13
13
  ThinkingSphinx::Middlewares::ActiveRecordTranslator.new app }
14
- let(:context) { {:raw => [], :results => []} }
14
+ let(:context) { {:raw => [], :results => [] } }
15
15
  let(:model) { double('model', :primary_key => :id) }
16
16
  let(:search) { double('search', :options => {}) }
17
+ let(:configuration) { double('configuration', :settings => {:primary_key => :id}) }
17
18
 
18
19
  def raw_result(id, model_name)
19
20
  {'sphinx_internal_id' => id, 'sphinx_internal_class' => model_name}
@@ -22,6 +23,7 @@ describe ThinkingSphinx::Middlewares::ActiveRecordTranslator do
22
23
  describe '#call' do
23
24
  before :each do
24
25
  context.stub :search => search
26
+ context.stub :configuration => configuration
25
27
  model.stub :unscoped => model
26
28
  end
27
29
 
@@ -101,6 +103,18 @@ describe ThinkingSphinx::Middlewares::ActiveRecordTranslator do
101
103
  context[:results].should == [instance_1, instance_2]
102
104
  end
103
105
 
106
+ it "handles model without primary key" do
107
+ no_primary_key_model = double('no primary key model')
108
+ no_primary_key_model.stub :unscoped => no_primary_key_model
109
+ model_name = double('article', :constantize => no_primary_key_model)
110
+ instance = double('instance', :id => 1)
111
+ no_primary_key_model.stub :where => [instance]
112
+
113
+ context[:results] << raw_result(1, model_name)
114
+
115
+ middleware.call [context]
116
+ end
117
+
104
118
  context 'SQL options' do
105
119
  let(:relation) { double('relation', :where => []) }
106
120
 
@@ -41,6 +41,7 @@ describe ThinkingSphinx::Middlewares::StaleIdChecker do
41
41
  middleware.call [context]
42
42
  }.should raise_error(ThinkingSphinx::Search::StaleIdsException) { |err|
43
43
  err.ids.should == [42]
44
+ err.context.should == context
44
45
  }
45
46
  end
46
47
  end
@@ -23,7 +23,7 @@ describe ThinkingSphinx::Middlewares::StaleIdFilter do
23
23
  app.stub(:call) do
24
24
  @calls ||= 0
25
25
  @calls += 1
26
- raise ThinkingSphinx::Search::StaleIdsException, [12] if @calls == 1
26
+ raise ThinkingSphinx::Search::StaleIdsException.new([12], context) if @calls == 1
27
27
  end
28
28
  end
29
29
 
@@ -47,8 +47,8 @@ describe ThinkingSphinx::Middlewares::StaleIdFilter do
47
47
  app.stub(:call) do
48
48
  @calls ||= 0
49
49
  @calls += 1
50
- raise ThinkingSphinx::Search::StaleIdsException, [12] if @calls == 1
51
- raise ThinkingSphinx::Search::StaleIdsException, [13] if @calls == 2
50
+ raise ThinkingSphinx::Search::StaleIdsException.new([12], context) if @calls == 1
51
+ raise ThinkingSphinx::Search::StaleIdsException.new([13], context) if @calls == 2
52
52
  end
53
53
  end
54
54
 
@@ -73,9 +73,9 @@ describe ThinkingSphinx::Middlewares::StaleIdFilter do
73
73
  @calls ||= 0
74
74
  @calls += 1
75
75
 
76
- raise ThinkingSphinx::Search::StaleIdsException, [12] if @calls == 1
77
- raise ThinkingSphinx::Search::StaleIdsException, [13] if @calls == 2
78
- raise ThinkingSphinx::Search::StaleIdsException, [14] if @calls == 3
76
+ raise ThinkingSphinx::Search::StaleIdsException.new([12], context) if @calls == 1
77
+ raise ThinkingSphinx::Search::StaleIdsException.new([13], context) if @calls == 2
78
+ raise ThinkingSphinx::Search::StaleIdsException.new([14], context) if @calls == 3
79
79
  end
80
80
  end
81
81
 
@@ -87,5 +87,25 @@ describe ThinkingSphinx::Middlewares::StaleIdFilter do
87
87
  }
88
88
  end
89
89
  end
90
+
91
+ context 'stale ids exceptions with multiple contexts' do
92
+ let(:context2) { {:raw => [], :results => []} }
93
+ let(:search2) { double('search2', :options => {}) }
94
+ before :each do
95
+ context2.stub :search => search2
96
+ app.stub(:call) do
97
+ @calls ||= 0
98
+ @calls += 1
99
+ raise ThinkingSphinx::Search::StaleIdsException.new([12], context2) if @calls == 1
100
+ end
101
+ end
102
+
103
+ it "appends the ids to the without_ids filter in the correct context" do
104
+ middleware.call [context, context2]
105
+ search.options[:without_ids].should == nil
106
+ search2.options[:without_ids].should == [12]
107
+ end
108
+ end
109
+
90
110
  end
91
111
  end
@@ -33,7 +33,7 @@ describe ThinkingSphinx::RealTime::Callbacks::RealTimeCallbacks do
33
33
 
34
34
  it "creates an insert statement with all fields and attributes" do
35
35
  Riddle::Query::Insert.should_receive(:new).
36
- with('my_index', ['id', 'name', 'created_at'], [123, 'Foo', time]).
36
+ with('my_index', ['id', 'name', 'created_at'], [[123, 'Foo', time]]).
37
37
  and_return(insert)
38
38
 
39
39
  callbacks.after_save instance
@@ -62,7 +62,7 @@ describe ThinkingSphinx::RealTime::Callbacks::RealTimeCallbacks do
62
62
 
63
63
  it "creates an insert statement with all fields and attributes" do
64
64
  Riddle::Query::Insert.should_receive(:new).
65
- with('my_index', ['id', 'name', 'created_at'], [123, 'Foo', time]).
65
+ with('my_index', ['id', 'name', 'created_at'], [[123, 'Foo', time]]).
66
66
  and_return(insert)
67
67
 
68
68
  callbacks.after_save instance
@@ -94,7 +94,7 @@ describe ThinkingSphinx::RealTime::Callbacks::RealTimeCallbacks do
94
94
 
95
95
  it "creates insert statements with all fields and attributes" do
96
96
  Riddle::Query::Insert.should_receive(:new).twice.
97
- with('my_index', ['id', 'name', 'created_at'], [123, 'Foo', time]).
97
+ with('my_index', ['id', 'name', 'created_at'], [[123, 'Foo', time]]).
98
98
  and_return(insert)
99
99
 
100
100
  callbacks.after_save instance
@@ -128,7 +128,7 @@ describe ThinkingSphinx::RealTime::Callbacks::RealTimeCallbacks do
128
128
 
129
129
  it "creates insert statements with all fields and attributes" do
130
130
  Riddle::Query::Insert.should_receive(:new).twice.
131
- with('my_index', ['id', 'name', 'created_at'], [123, 'Foo', time]).
131
+ with('my_index', ['id', 'name', 'created_at'], [[123, 'Foo', time]]).
132
132
  and_return(insert)
133
133
 
134
134
  callbacks.after_save instance
@@ -2,7 +2,8 @@ require 'spec_helper'
2
2
 
3
3
  describe ThinkingSphinx do
4
4
  describe '.count' do
5
- let(:search) { double('search', :total_entries => 23) }
5
+ let(:search) { double('search', :total_entries => 23, :populated? => false,
6
+ :options => {}) }
6
7
 
7
8
  before :each do
8
9
  ThinkingSphinx::Search.stub :new => search
@@ -3,7 +3,7 @@ $:.push File.expand_path('../lib', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = 'thinking-sphinx'
6
- s.version = '3.1.4'
6
+ s.version = '3.2.0'
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ["Pat Allan"]
9
9
  s.email = ["pat@freelancing-gods.com"]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thinking-sphinx
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.4
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pat Allan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-01 00:00:00.000000000 Z
11
+ date: 2016-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -204,6 +204,7 @@ files:
204
204
  - lib/thinking_sphinx/active_record/property_query.rb
205
205
  - lib/thinking_sphinx/active_record/property_sql_presenter.rb
206
206
  - lib/thinking_sphinx/active_record/simple_many_query.rb
207
+ - lib/thinking_sphinx/active_record/source_joins.rb
207
208
  - lib/thinking_sphinx/active_record/sql_builder.rb
208
209
  - lib/thinking_sphinx/active_record/sql_builder/clause_builder.rb
209
210
  - lib/thinking_sphinx/active_record/sql_builder/query.rb
@@ -219,6 +220,7 @@ files:
219
220
  - lib/thinking_sphinx/configuration/consistent_ids.rb
220
221
  - lib/thinking_sphinx/configuration/defaults.rb
221
222
  - lib/thinking_sphinx/configuration/distributed_indices.rb
223
+ - lib/thinking_sphinx/configuration/duplicate_names.rb
222
224
  - lib/thinking_sphinx/configuration/minimum_fields.rb
223
225
  - lib/thinking_sphinx/connection.rb
224
226
  - lib/thinking_sphinx/controller.rb
@@ -248,6 +250,8 @@ files:
248
250
  - lib/thinking_sphinx/guard/files.rb
249
251
  - lib/thinking_sphinx/index.rb
250
252
  - lib/thinking_sphinx/index_set.rb
253
+ - lib/thinking_sphinx/indexing_strategies/all_at_once.rb
254
+ - lib/thinking_sphinx/indexing_strategies/one_at_a_time.rb
251
255
  - lib/thinking_sphinx/logger.rb
252
256
  - lib/thinking_sphinx/masks.rb
253
257
  - lib/thinking_sphinx/masks/group_enumerators_mask.rb
@@ -283,6 +287,7 @@ files:
283
287
  - lib/thinking_sphinx/real_time/populator.rb
284
288
  - lib/thinking_sphinx/real_time/property.rb
285
289
  - lib/thinking_sphinx/real_time/transcriber.rb
290
+ - lib/thinking_sphinx/real_time/translator.rb
286
291
  - lib/thinking_sphinx/scopes.rb
287
292
  - lib/thinking_sphinx/search.rb
288
293
  - lib/thinking_sphinx/search/batch_inquirer.rb
@@ -366,6 +371,7 @@ files:
366
371
  - spec/internal/db/schema.rb
367
372
  - spec/internal/tmp/.gitkeep
368
373
  - spec/spec_helper.rb
374
+ - spec/support/json_column.rb
369
375
  - spec/support/multi_schema.rb
370
376
  - spec/support/sphinx_yaml_helpers.rb
371
377
  - spec/thinking_sphinx/active_record/association_spec.rb
@@ -375,6 +381,7 @@ files:
375
381
  - spec/thinking_sphinx/active_record/callbacks/delta_callbacks_spec.rb
376
382
  - spec/thinking_sphinx/active_record/callbacks/update_callbacks_spec.rb
377
383
  - spec/thinking_sphinx/active_record/column_spec.rb
384
+ - spec/thinking_sphinx/active_record/column_sql_presenter_spec.rb
378
385
  - spec/thinking_sphinx/active_record/database_adapters/abstract_adapter_spec.rb
379
386
  - spec/thinking_sphinx/active_record/database_adapters/mysql_adapter_spec.rb
380
387
  - spec/thinking_sphinx/active_record/database_adapters/postgresql_adapter_spec.rb
@@ -443,7 +450,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
443
450
  version: '0'
444
451
  requirements: []
445
452
  rubyforge_project: thinking-sphinx
446
- rubygems_version: 2.2.2
453
+ rubygems_version: 2.4.8
447
454
  signing_key:
448
455
  specification_version: 4
449
456
  summary: A smart wrapper over Sphinx for ActiveRecord
@@ -516,6 +523,7 @@ test_files:
516
523
  - spec/internal/db/schema.rb
517
524
  - spec/internal/tmp/.gitkeep
518
525
  - spec/spec_helper.rb
526
+ - spec/support/json_column.rb
519
527
  - spec/support/multi_schema.rb
520
528
  - spec/support/sphinx_yaml_helpers.rb
521
529
  - spec/thinking_sphinx/active_record/association_spec.rb
@@ -525,6 +533,7 @@ test_files:
525
533
  - spec/thinking_sphinx/active_record/callbacks/delta_callbacks_spec.rb
526
534
  - spec/thinking_sphinx/active_record/callbacks/update_callbacks_spec.rb
527
535
  - spec/thinking_sphinx/active_record/column_spec.rb
536
+ - spec/thinking_sphinx/active_record/column_sql_presenter_spec.rb
528
537
  - spec/thinking_sphinx/active_record/database_adapters/abstract_adapter_spec.rb
529
538
  - spec/thinking_sphinx/active_record/database_adapters/mysql_adapter_spec.rb
530
539
  - spec/thinking_sphinx/active_record/database_adapters/postgresql_adapter_spec.rb