thinking-sphinx 2.0.13 → 2.0.14

Sign up to get free protection for your applications and to get access to all the features.
data/HISTORY CHANGED
@@ -1,3 +1,8 @@
1
+ 2.0.14 - January 2nd 2012
2
+ * Fix model loading for Rails 3.2.9 when subdirectories exist (Kenn Ejima).
3
+ * Use BasicObject instead of BlankSlate when running on 1.9 (Steve Purcell).
4
+ * 1.4.14 changes.
5
+
1
6
  2.0.13 - August 10th 2012
2
7
  * 1.4.13 changes.
3
8
 
@@ -64,6 +69,15 @@
64
69
  * Rails 3 support.
65
70
  * 1.4.0 changes.
66
71
 
72
+ 1.4.14 - January 2nd 2013
73
+ * Allow sql_query_pre values to come through from config/sphinx.yml (George Ogata).
74
+ * ThinkingSphinx::Search#tap doesn't delegate through to the underlying array.
75
+ * Use fire_delta? instance method in the model (if it exists) to decide whether indexing should happen.
76
+ * Use full query in excerpts so double-stemming of terms is avoided (Jason Rust).
77
+ * Fix thinking_sphinx:version rake task.
78
+ * Directly compare non-string non-nil facet values for facet filters.
79
+ * Don't bother checking with Sphinx whether documents exist when trying to update them. We're catching failures already (and Sphinx usually doesn't care anyway).
80
+
67
81
  1.4.13 - August 10th 2012
68
82
  * Sphinx 2.0.5 support.
69
83
  * Hard retries for Sphinx exceptions (Andrew Hunter).
data/README.textile CHANGED
@@ -232,3 +232,5 @@ Since I first released this library, there's been quite a few people who have su
232
232
  * Simon Hürlimann
233
233
  * Nathan Smith
234
234
  * Cedric Maion
235
+ * Steve Purcell
236
+ * George Ogata
@@ -23,6 +23,7 @@ require 'thinking_sphinx/source'
23
23
  require 'thinking_sphinx/search'
24
24
  require 'thinking_sphinx/search_methods'
25
25
  require 'thinking_sphinx/deltas'
26
+ require 'thinking_sphinx/version'
26
27
 
27
28
  require 'thinking_sphinx/adapters/abstract_adapter'
28
29
  require 'thinking_sphinx/adapters/mysql_adapter'
@@ -268,14 +268,13 @@ module ThinkingSphinx
268
268
  end
269
269
 
270
270
  def delete_in_index(index, document_id)
271
- return unless ThinkingSphinx.sphinx_running? &&
272
- search_for_id(document_id, index)
271
+ return unless ThinkingSphinx.sphinx_running?
273
272
 
274
273
  ThinkingSphinx::Configuration.instance.client.update(
275
274
  index, ['sphinx_deleted'], {document_id => [1]}
276
275
  )
277
276
  rescue Riddle::ConnectionError, Riddle::ResponseError,
278
- ThinkingSphinx::SphinxError, Errno::ETIMEDOUT
277
+ ThinkingSphinx::SphinxError, Errno::ETIMEDOUT, Timeout::Error
279
278
  # Not the end of the world if Sphinx isn't running.
280
279
  end
281
280
 
@@ -3,7 +3,7 @@ module ThinkingSphinx
3
3
  # This module contains all the delta-related code for models. There isn't
4
4
  # really anything you need to call manually in here - except perhaps
5
5
  # index_delta, but not sure what reason why.
6
- #
6
+ #
7
7
  module Delta
8
8
  # Code for after_commit callback is written by Eli Miller:
9
9
  # http://elimiller.blogspot.com/2007/06/proper-cache-expiry-with-aftercommit.html
@@ -18,38 +18,40 @@ module ThinkingSphinx
18
18
  def index_delta(instance = nil)
19
19
  delta_objects.each { |obj| obj.index(self, instance) }
20
20
  end
21
-
21
+
22
22
  def delta_objects
23
23
  self.sphinx_indexes.collect(&:delta_object).compact
24
24
  end
25
25
  end
26
-
26
+
27
27
  def toggled_delta?
28
28
  self.class.delta_objects.any? { |obj| obj.toggled(self) }
29
29
  end
30
-
30
+
31
31
  private
32
-
32
+
33
33
  # Set the delta value for the model to be true.
34
34
  def toggle_delta
35
35
  self.class.delta_objects.each { |obj|
36
36
  obj.toggle(self)
37
37
  } if should_toggle_delta?
38
38
  end
39
-
39
+
40
40
  # Build the delta index for the related model. This won't be called
41
41
  # if running in the test environment.
42
- #
42
+ #
43
43
  def index_delta
44
44
  self.class.index_delta(self) if self.class.delta_objects.any? { |obj|
45
45
  obj.toggled(self)
46
46
  }
47
47
  end
48
-
48
+
49
49
  def should_toggle_delta?
50
+ return fire_delta? if respond_to?(:fire_delta?)
51
+
50
52
  self.new_record? || indexed_data_changed?
51
53
  end
52
-
54
+
53
55
  def indexed_data_changed?
54
56
  sphinx_indexes.any? { |index|
55
57
  index.fields.any? { |field| field.changed?(self) } ||
@@ -14,7 +14,7 @@ module ThinkingSphinx
14
14
  else
15
15
  documentation_link = %Q{
16
16
  For more information, read the documentation:
17
- http://freelancing-god.github.com/ts/en/advanced_config.html
17
+ http://pat.github.com/ts/en/advanced_config.html
18
18
  }
19
19
 
20
20
  if version.nil? || version.empty?
@@ -53,7 +53,7 @@ module ThinkingSphinx
53
53
 
54
54
  SourceOptions = Riddle::Configuration::SQLSource.settings.map { |setting|
55
55
  setting.to_s
56
- } - %w( type sql_query_pre sql_query sql_joined_field sql_file_field
56
+ } - %w( type sql_query sql_joined_field sql_file_field
57
57
  sql_query_range sql_attr_uint sql_attr_bool sql_attr_bigint sql_query_info
58
58
  sql_attr_timestamp sql_attr_str2ordinal sql_attr_float sql_attr_multi
59
59
  sql_attr_string sql_attr_str2wordcount sql_column_buffers sql_field_string
@@ -62,9 +62,14 @@ class ThinkingSphinx::Context
62
62
 
63
63
  begin
64
64
  camelized_model.constantize
65
- rescue LoadError
65
+ rescue LoadError, NameError
66
66
  # Make sure that STI subclasses in subfolders are loaded.
67
- model_name.gsub!(/.*[\/\\]/, '').nil? ? next : retry
67
+ if camelized_model.gsub!(/.+::/, '').nil?
68
+ STDERR.puts "ThinkingSphinx: error loading #{file}"
69
+ next
70
+ else
71
+ retry
72
+ end
68
73
  rescue Exception => err
69
74
  STDERR.puts "Warning: Error loading #{file}:"
70
75
  STDERR.puts err.message
@@ -104,7 +104,14 @@ module ThinkingSphinx
104
104
  method = value_source || column.__name
105
105
  object = objects.one? ? objects.first : objects.detect { |item|
106
106
  result = item.send(method)
107
- result && result.to_crc32 == attribute_value
107
+ case result
108
+ when String
109
+ result.to_crc32 == attribute_value
110
+ when NilClass
111
+ false
112
+ else
113
+ result == attribute_value
114
+ end
108
115
  }
109
116
 
110
117
  object.try(method)
@@ -1,4 +1,4 @@
1
- require 'blankslate'
1
+ require 'blankslate' unless defined?(::BasicObject)
2
2
 
3
3
  module ThinkingSphinx
4
4
  class Index
@@ -14,14 +14,14 @@ module ThinkingSphinx
14
14
  # set_property allows you to set some settings on a per-index basis. Check
15
15
  # out each method's documentation for better ideas of usage.
16
16
  #
17
- class Builder < BlankSlate
17
+ class Builder < (defined?(::BasicObject) ? ::BasicObject : BlankSlate)
18
18
  def self.generate(model, name = nil, &block)
19
- index = ThinkingSphinx::Index.new(model)
19
+ index = ::ThinkingSphinx::Index.new(model)
20
20
  index.name = name unless name.nil?
21
21
 
22
- Builder.new(index, &block) if block_given?
22
+ new(index, &block) if block_given?
23
23
 
24
- index.delta_object = ThinkingSphinx::Deltas.parse index
24
+ index.delta_object = ::ThinkingSphinx::Deltas.parse index
25
25
  index
26
26
  end
27
27
 
@@ -38,7 +38,7 @@ module ThinkingSphinx
38
38
 
39
39
  def define_source(&block)
40
40
  if @explicit_source
41
- @source = ThinkingSphinx::Source.new(@index)
41
+ @source = ::ThinkingSphinx::Source.new(@index)
42
42
  @index.sources << @source
43
43
  else
44
44
  @explicit_source = true
@@ -101,7 +101,8 @@ module ThinkingSphinx
101
101
  def indexes(*args)
102
102
  options = args.extract_options!
103
103
  args.each do |columns|
104
- field = Field.new(source, FauxColumn.coerce(columns), options)
104
+ field = ::ThinkingSphinx::Field.new(source,
105
+ ::ThinkingSphinx::Index::FauxColumn.coerce(columns), options)
105
106
 
106
107
  add_sort_attribute field, options if field.sortable
107
108
  add_facet_attribute field, options if field.faceted
@@ -147,7 +148,8 @@ module ThinkingSphinx
147
148
  def has(*args)
148
149
  options = args.extract_options!
149
150
  args.each do |columns|
150
- attribute = Attribute.new(source, FauxColumn.coerce(columns), options)
151
+ attribute = ::ThinkingSphinx::Attribute.new(source,
152
+ ::ThinkingSphinx::Index::FauxColumn.coerce(columns), options)
151
153
 
152
154
  add_facet_attribute attribute, options if attribute.faceted
153
155
  end
@@ -158,7 +160,8 @@ module ThinkingSphinx
158
160
  options[:facet] = true
159
161
 
160
162
  args.each do |columns|
161
- attribute = Attribute.new(source, FauxColumn.coerce(columns), options)
163
+ attribute = ::ThinkingSphinx::Attribute.new(source,
164
+ ::ThinkingSphinx::Index::FauxColumn.coerce(columns), options)
162
165
 
163
166
  add_facet_attribute attribute, options
164
167
  end
@@ -166,7 +169,7 @@ module ThinkingSphinx
166
169
 
167
170
  def join(*args)
168
171
  args.each do |association|
169
- Join.new(source, association)
172
+ ::ThinkingSphinx::Join.new(source, association)
170
173
  end
171
174
  end
172
175
 
@@ -238,7 +241,7 @@ module ThinkingSphinx
238
241
  # definitions.
239
242
  #
240
243
  def method_missing(method, *args)
241
- FauxColumn.new(method, *args)
244
+ ::ThinkingSphinx::Index::FauxColumn.new(method, *args)
242
245
  end
243
246
 
244
247
  # A method to allow adding fields from associations which have names
@@ -248,7 +251,7 @@ module ThinkingSphinx
248
251
  # Example: indexes assoc(:properties).column
249
252
  #
250
253
  def assoc(assoc, *args)
251
- FauxColumn.new(assoc, *args)
254
+ ::ThinkingSphinx::Index::FauxColumn.new(assoc, *args)
252
255
  end
253
256
 
254
257
  # Use this method to generate SQL for your attributes, conditions, etc.
@@ -265,14 +268,14 @@ module ThinkingSphinx
265
268
 
266
269
  def source
267
270
  @source ||= begin
268
- source = ThinkingSphinx::Source.new(@index)
271
+ source = ::ThinkingSphinx::Source.new(@index)
269
272
  @index.sources << source
270
273
  source
271
274
  end
272
275
  end
273
276
 
274
277
  def set_single_property(key, value)
275
- source_options = ThinkingSphinx::Configuration::SourceOptions
278
+ source_options = ::ThinkingSphinx::Configuration::SourceOptions
276
279
  if source_options.include?(key.to_s)
277
280
  source.options.merge! key => value
278
281
  else
@@ -290,12 +293,12 @@ module ThinkingSphinx
290
293
  end
291
294
 
292
295
  def add_internal_attribute(property, options, suffix, crc = false)
293
- return unless ThinkingSphinx::Facet.translate?(property)
296
+ return unless ::ThinkingSphinx::Facet.translate?(property)
294
297
 
295
- Attribute.new(source,
298
+ ::ThinkingSphinx::Attribute.new(source,
296
299
  property.columns.collect { |col| col.clone },
297
300
  options.merge(
298
- :type => property.is_a?(Field) ? :string : options[:type],
301
+ :type => property.is_a?(::ThinkingSphinx::Field) ? :string : options[:type],
299
302
  :as => property.unique_name.to_s.concat(suffix).to_sym,
300
303
  :crc => crc
301
304
  ).except(:facet)
@@ -12,7 +12,7 @@ module ThinkingSphinx
12
12
  instance_of? instance_values instance_variable_defined?
13
13
  instance_variable_get instance_variable_set instance_variables is_a?
14
14
  kind_of? member? method methods nil? object_id respond_to?
15
- respond_to_missing? send should type )
15
+ respond_to_missing? send should tap type )
16
16
  SafeMethods = %w( partition private_methods protected_methods
17
17
  public_methods send class )
18
18
 
@@ -362,7 +362,7 @@ module ThinkingSphinx
362
362
  client.excerpts(
363
363
  {
364
364
  :docs => [string.to_s],
365
- :words => results[:words].keys.join(' '),
365
+ :words => query,
366
366
  :index => index.split(',').first.strip
367
367
  }.merge(options[:excerpt_options] || {})
368
368
  ).first
@@ -1,3 +1,3 @@
1
1
  module ThinkingSphinx
2
- Version = '2.0.13'
2
+ Version = '2.0.14'
3
3
  end
@@ -112,12 +112,6 @@ describe "ThinkingSphinx::ActiveRecord::Delta" do
112
112
  @person.send(:index_delta)
113
113
  end
114
114
 
115
- it "shouldn't update the deleted attribute if not in the index" do
116
- @client.should_not_receive(:update)
117
-
118
- @person.send(:index_delta)
119
- end
120
-
121
115
  it "should update the deleted attribute if in the core index" do
122
116
  Person.stub!(:search_for_id => true)
123
117
  @client.should_receive(:update)
@@ -273,7 +273,6 @@ describe ThinkingSphinx::ActiveRecord do
273
273
 
274
274
  @configuration.stub!(:client => @client)
275
275
  Person.sphinx_indexes.each { |index| index.stub!(:delta? => false) }
276
- Person.stub!(:search_for_id => true)
277
276
  end
278
277
 
279
278
  it "should update the core index's deleted flag if in core index" do
@@ -284,19 +283,9 @@ describe ThinkingSphinx::ActiveRecord do
284
283
  @person.toggle_deleted
285
284
  end
286
285
 
287
- it "shouldn't update the core index's deleted flag if the record isn't in it" do
288
- Person.stub!(:search_for_id => false)
289
- @client.should_not_receive(:update).with(
290
- "person_core", ["sphinx_deleted"], {@person.sphinx_document_id => [1]}
291
- )
292
-
293
- @person.toggle_deleted
294
- end
295
-
296
286
  it "shouldn't attempt to update the deleted flag if sphinx isn't running" do
297
287
  ThinkingSphinx.stub!(:sphinx_running? => false)
298
288
  @client.should_not_receive(:update)
299
- Person.should_not_receive(:search_for_id)
300
289
 
301
290
  @person.toggle_deleted
302
291
  end
@@ -493,14 +482,6 @@ describe ThinkingSphinx::ActiveRecord do
493
482
  @client = stub('client')
494
483
  ThinkingSphinx.stub!(:sphinx_running? => true)
495
484
  ThinkingSphinx::Configuration.instance.stub!(:client => @client)
496
- Alpha.stub!(:search_for_id => true)
497
- end
498
-
499
- it "should not update if the document isn't in the given index" do
500
- Alpha.stub!(:search_for_id => false)
501
- @client.should_not_receive(:update)
502
-
503
- Alpha.delete_in_index('alpha_core', 42)
504
485
  end
505
486
 
506
487
  it "should direct the update to the supplied index" do
@@ -34,16 +34,17 @@ describe ThinkingSphinx::Context do
34
34
  it "should report name errors but not raise them" do
35
35
  class_name.stub(:constantize).and_raise(NameError)
36
36
  STDERR.stub!(:puts => '')
37
- STDERR.should_receive(:puts).with('Warning: Error loading a.rb:')
37
+ STDERR.should_receive(:puts).with('ThinkingSphinx: error loading a.rb')
38
38
 
39
39
  lambda {
40
40
  ts_context.prepare
41
41
  }.should_not raise_error
42
42
  end
43
43
 
44
- it "should retry if the first load fails and contains a directory" do
45
- model_name_lower.should_receive(:gsub!).twice.and_return(true, nil)
44
+ it "should report load errors but not raise them" do
46
45
  class_name.stub(:constantize).and_raise(LoadError)
46
+ STDERR.stub!(:puts => '')
47
+ STDERR.should_receive(:puts).with('ThinkingSphinx: error loading a.rb')
47
48
 
48
49
  lambda {
49
50
  ts_context.prepare
@@ -1309,7 +1309,7 @@ describe ThinkingSphinx::Search do
1309
1309
  :matches => [],
1310
1310
  :words => {'one' => {}, 'two' => {}}
1311
1311
  })
1312
- @search = ThinkingSphinx::Search.new(:classes => [Alpha])
1312
+ @search = ThinkingSphinx::Search.new('reading comprehension', :classes => [Alpha])
1313
1313
  end
1314
1314
 
1315
1315
  it "should return the Sphinx excerpt value" do
@@ -1341,9 +1341,9 @@ describe ThinkingSphinx::Search do
1341
1341
  @search.excerpt_for('string', Beta)
1342
1342
  end
1343
1343
 
1344
- it "should join the words together" do
1344
+ it "should use the query string" do
1345
1345
  @client.should_receive(:excerpts) do |options|
1346
- options[:words].should == @search.results[:words].keys.join(' ')
1346
+ options[:words].should == 'reading comprehension'
1347
1347
  end
1348
1348
 
1349
1349
  @search.excerpt_for('string', Beta)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thinking-sphinx
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
8
  - 0
9
- - 13
10
- version: 2.0.13
9
+ - 14
10
+ version: 2.0.14
11
11
  platform: ruby
12
12
  authors:
13
13
  - Pat Allan
@@ -15,10 +15,10 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-08-10 00:00:00 Z
18
+ date: 2013-01-02 00:00:00 +11:00
19
+ default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
- type: :runtime
22
22
  requirement: &id001 !ruby/object:Gem::Requirement
23
23
  none: false
24
24
  requirements:
@@ -31,10 +31,10 @@ dependencies:
31
31
  - 3
32
32
  version: 3.0.3
33
33
  version_requirements: *id001
34
- prerelease: false
35
34
  name: activerecord
36
- - !ruby/object:Gem::Dependency
35
+ prerelease: false
37
36
  type: :runtime
37
+ - !ruby/object:Gem::Dependency
38
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
@@ -47,10 +47,10 @@ dependencies:
47
47
  - 3
48
48
  version: 1.5.3
49
49
  version_requirements: *id002
50
- prerelease: false
51
50
  name: riddle
52
- - !ruby/object:Gem::Dependency
51
+ prerelease: false
53
52
  type: :runtime
53
+ - !ruby/object:Gem::Dependency
54
54
  requirement: &id003 !ruby/object:Gem::Requirement
55
55
  none: false
56
56
  requirements:
@@ -63,10 +63,10 @@ dependencies:
63
63
  - 2
64
64
  version: 2.1.2
65
65
  version_requirements: *id003
66
- prerelease: false
67
66
  name: builder
67
+ prerelease: false
68
+ type: :runtime
68
69
  - !ruby/object:Gem::Dependency
69
- type: :development
70
70
  requirement: &id004 !ruby/object:Gem::Requirement
71
71
  none: false
72
72
  requirements:
@@ -79,10 +79,10 @@ dependencies:
79
79
  - 3
80
80
  version: 3.0.3
81
81
  version_requirements: *id004
82
- prerelease: false
83
82
  name: actionpack
84
- - !ruby/object:Gem::Dependency
83
+ prerelease: false
85
84
  type: :development
85
+ - !ruby/object:Gem::Dependency
86
86
  requirement: &id005 !ruby/object:Gem::Requirement
87
87
  none: false
88
88
  requirements:
@@ -95,10 +95,10 @@ dependencies:
95
95
  - 0
96
96
  version: 0.4.0
97
97
  version_requirements: *id005
98
- prerelease: false
99
98
  name: appraisal
100
- - !ruby/object:Gem::Dependency
99
+ prerelease: false
101
100
  type: :development
101
+ - !ruby/object:Gem::Dependency
102
102
  requirement: &id006 !ruby/object:Gem::Requirement
103
103
  none: false
104
104
  requirements:
@@ -111,10 +111,10 @@ dependencies:
111
111
  - 2
112
112
  version: 1.0.2
113
113
  version_requirements: *id006
114
- prerelease: false
115
114
  name: cucumber
116
- - !ruby/object:Gem::Dependency
115
+ prerelease: false
117
116
  type: :development
117
+ - !ruby/object:Gem::Dependency
118
118
  requirement: &id007 !ruby/object:Gem::Requirement
119
119
  none: false
120
120
  requirements:
@@ -127,10 +127,10 @@ dependencies:
127
127
  - 1
128
128
  version: 0.3.1
129
129
  version_requirements: *id007
130
- prerelease: false
131
130
  name: faker
132
- - !ruby/object:Gem::Dependency
131
+ prerelease: false
133
132
  type: :development
133
+ - !ruby/object:Gem::Dependency
134
134
  requirement: &id008 !ruby/object:Gem::Requirement
135
135
  none: false
136
136
  requirements:
@@ -143,10 +143,10 @@ dependencies:
143
143
  - 2
144
144
  version: 0.9.2
145
145
  version_requirements: *id008
146
- prerelease: false
147
146
  name: rake
148
- - !ruby/object:Gem::Dependency
147
+ prerelease: false
149
148
  type: :development
149
+ - !ruby/object:Gem::Dependency
150
150
  requirement: &id009 !ruby/object:Gem::Requirement
151
151
  none: false
152
152
  requirements:
@@ -159,10 +159,10 @@ dependencies:
159
159
  - 0
160
160
  version: 2.6.0
161
161
  version_requirements: *id009
162
- prerelease: false
163
162
  name: rspec
164
- - !ruby/object:Gem::Dependency
163
+ prerelease: false
165
164
  type: :development
165
+ - !ruby/object:Gem::Dependency
166
166
  requirement: &id010 !ruby/object:Gem::Requirement
167
167
  none: false
168
168
  requirements:
@@ -174,10 +174,10 @@ dependencies:
174
174
  - 0
175
175
  version: "3.0"
176
176
  version_requirements: *id010
177
- prerelease: false
178
177
  name: will_paginate
179
- - !ruby/object:Gem::Dependency
178
+ prerelease: false
180
179
  type: :development
180
+ - !ruby/object:Gem::Dependency
181
181
  requirement: &id011 !ruby/object:Gem::Requirement
182
182
  none: false
183
183
  requirements:
@@ -190,8 +190,9 @@ dependencies:
190
190
  - 2
191
191
  version: 0.7.2
192
192
  version_requirements: *id011
193
- prerelease: false
194
193
  name: yard
194
+ prerelease: false
195
+ type: :development
195
196
  description: A concise and easy-to-use Ruby library that connects ActiveRecord to the Sphinx search daemon, managing configuration, indexing and searching.
196
197
  email:
197
198
  - pat@freelancing-gods.com
@@ -376,12 +377,13 @@ files:
376
377
  - spec/thinking_sphinx/source_spec.rb
377
378
  - spec/thinking_sphinx/test_spec.rb
378
379
  - spec/thinking_sphinx_spec.rb
379
- homepage: http://freelancing-god.github.com/ts/en/
380
+ has_rdoc: true
381
+ homepage: http://pat.github.com/ts/en/
380
382
  licenses: []
381
383
 
382
384
  post_install_message: |+
383
385
  If you're upgrading, you should read this:
384
- http://freelancing-god.github.com/ts/en/upgrading.html
386
+ http://pat.github.com/ts/en/upgrading.html
385
387
 
386
388
  rdoc_options: []
387
389
 
@@ -408,7 +410,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
408
410
  requirements: []
409
411
 
410
412
  rubyforge_project: thinking-sphinx
411
- rubygems_version: 1.8.16
413
+ rubygems_version: 1.6.2
412
414
  signing_key:
413
415
  specification_version: 3
414
416
  summary: ActiveRecord/Rails Sphinx library
@@ -536,4 +538,3 @@ test_files:
536
538
  - spec/thinking_sphinx/source_spec.rb
537
539
  - spec/thinking_sphinx/test_spec.rb
538
540
  - spec/thinking_sphinx_spec.rb
539
- has_rdoc: