thinking-sphinx 3.1.4 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +7 -2
- data/Appraisals +4 -4
- data/Gemfile +2 -0
- data/HISTORY +24 -0
- data/README.textile +5 -4
- data/gemfiles/rails_3_2.gemfile +2 -1
- data/gemfiles/rails_4_0.gemfile +2 -1
- data/gemfiles/rails_4_1.gemfile +2 -1
- data/gemfiles/rails_4_2.gemfile +2 -1
- data/lib/thinking_sphinx.rb +4 -1
- data/lib/thinking_sphinx/active_record.rb +1 -0
- data/lib/thinking_sphinx/active_record/association_proxy/attribute_finder.rb +1 -1
- data/lib/thinking_sphinx/active_record/attribute/type.rb +1 -1
- data/lib/thinking_sphinx/active_record/base.rb +1 -1
- data/lib/thinking_sphinx/active_record/callbacks/delete_callbacks.rb +1 -1
- data/lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb +7 -3
- data/lib/thinking_sphinx/active_record/callbacks/update_callbacks.rb +2 -2
- data/lib/thinking_sphinx/active_record/column_sql_presenter.rb +5 -1
- data/lib/thinking_sphinx/active_record/index.rb +4 -4
- data/lib/thinking_sphinx/active_record/source_joins.rb +55 -0
- data/lib/thinking_sphinx/active_record/sql_builder.rb +3 -18
- data/lib/thinking_sphinx/active_record/sql_builder/query.rb +7 -0
- data/lib/thinking_sphinx/active_record/sql_source.rb +7 -5
- data/lib/thinking_sphinx/active_record/sql_source/template.rb +1 -1
- data/lib/thinking_sphinx/callbacks.rb +18 -0
- data/lib/thinking_sphinx/configuration.rb +50 -33
- data/lib/thinking_sphinx/configuration/duplicate_names.rb +34 -0
- data/lib/thinking_sphinx/connection.rb +4 -4
- data/lib/thinking_sphinx/controller.rb +6 -4
- data/lib/thinking_sphinx/deletion.rb +13 -0
- data/lib/thinking_sphinx/errors.rb +8 -0
- data/lib/thinking_sphinx/index_set.rb +6 -1
- data/lib/thinking_sphinx/indexing_strategies/all_at_once.rb +7 -0
- data/lib/thinking_sphinx/indexing_strategies/one_at_a_time.rb +14 -0
- data/lib/thinking_sphinx/middlewares/active_record_translator.rb +1 -1
- data/lib/thinking_sphinx/middlewares/inquirer.rb +1 -1
- data/lib/thinking_sphinx/middlewares/sphinxql.rb +2 -2
- data/lib/thinking_sphinx/middlewares/stale_id_checker.rb +1 -1
- data/lib/thinking_sphinx/middlewares/stale_id_filter.rb +2 -2
- data/lib/thinking_sphinx/rake_interface.rb +14 -5
- data/lib/thinking_sphinx/real_time.rb +1 -0
- data/lib/thinking_sphinx/real_time/attribute.rb +7 -1
- data/lib/thinking_sphinx/real_time/index.rb +2 -0
- data/lib/thinking_sphinx/real_time/populator.rb +3 -3
- data/lib/thinking_sphinx/real_time/property.rb +1 -5
- data/lib/thinking_sphinx/real_time/transcriber.rb +44 -9
- data/lib/thinking_sphinx/real_time/translator.rb +36 -0
- data/lib/thinking_sphinx/search.rb +10 -0
- data/lib/thinking_sphinx/search/context.rb +8 -0
- data/lib/thinking_sphinx/search/stale_ids_exception.rb +3 -2
- data/lib/thinking_sphinx/subscribers/populator_subscriber.rb +1 -1
- data/lib/thinking_sphinx/tasks.rb +3 -1
- data/spec/acceptance/remove_deleted_records_spec.rb +18 -0
- data/spec/acceptance/searching_with_filters_spec.rb +13 -0
- data/spec/internal/app/indices/product_index.rb +1 -0
- data/spec/internal/db/schema.rb +1 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/support/json_column.rb +29 -0
- data/spec/thinking_sphinx/active_record/callbacks/delete_callbacks_spec.rb +10 -0
- data/spec/thinking_sphinx/active_record/callbacks/update_callbacks_spec.rb +10 -0
- data/spec/thinking_sphinx/active_record/column_sql_presenter_spec.rb +37 -0
- data/spec/thinking_sphinx/active_record/sql_builder_spec.rb +7 -17
- data/spec/thinking_sphinx/active_record/sql_source_spec.rb +43 -15
- data/spec/thinking_sphinx/errors_spec.rb +7 -0
- data/spec/thinking_sphinx/middlewares/active_record_translator_spec.rb +15 -1
- data/spec/thinking_sphinx/middlewares/stale_id_checker_spec.rb +1 -0
- data/spec/thinking_sphinx/middlewares/stale_id_filter_spec.rb +26 -6
- data/spec/thinking_sphinx/real_time/callbacks/real_time_callbacks_spec.rb +4 -4
- data/spec/thinking_sphinx_spec.rb +2 -1
- data/thinking-sphinx.gemspec +1 -1
- 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,
|
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
|
|
@@ -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
|
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
|
51
|
-
raise ThinkingSphinx::Search::StaleIdsException
|
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
|
77
|
-
raise ThinkingSphinx::Search::StaleIdsException
|
78
|
-
raise ThinkingSphinx::Search::StaleIdsException
|
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
|
data/thinking-sphinx.gemspec
CHANGED
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.
|
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:
|
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.
|
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
|