riddle 1.5.1 → 1.5.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. data/.travis.yml +2 -4
  2. data/HISTORY +13 -1
  3. data/README.textile +7 -1
  4. data/lib/riddle/0.9.9/client.rb +8 -8
  5. data/lib/riddle/auto_version.rb +2 -2
  6. data/lib/riddle/client.rb +6 -4
  7. data/lib/riddle/client/filter.rb +16 -11
  8. data/lib/riddle/client/response.rb +19 -19
  9. data/lib/riddle/query.rb +4 -1
  10. data/lib/riddle/version.rb +1 -1
  11. data/spec/fixtures/data/0.9.9/anchor.bin +0 -0
  12. data/spec/fixtures/data/0.9.9/any.bin +0 -0
  13. data/spec/fixtures/data/0.9.9/boolean.bin +0 -0
  14. data/spec/fixtures/data/0.9.9/comment.bin +0 -0
  15. data/spec/fixtures/data/0.9.9/distinct.bin +0 -0
  16. data/spec/fixtures/data/0.9.9/field_weights.bin +0 -0
  17. data/spec/fixtures/data/0.9.9/filter.bin +0 -0
  18. data/spec/fixtures/data/0.9.9/index.bin +0 -0
  19. data/spec/fixtures/data/0.9.9/index_weights.bin +0 -0
  20. data/spec/fixtures/data/0.9.9/overrides.bin +0 -0
  21. data/spec/fixtures/data/0.9.9/phrase.bin +0 -0
  22. data/spec/fixtures/data/0.9.9/rank_mode.bin +0 -0
  23. data/spec/fixtures/data/0.9.9/select.bin +0 -0
  24. data/spec/fixtures/data/0.9.9/simple.bin +0 -0
  25. data/spec/fixtures/data/0.9.9/sort.bin +0 -0
  26. data/spec/fixtures/data/0.9.9/weights.bin +0 -0
  27. data/spec/fixtures/data/1.10/anchor.bin +0 -0
  28. data/spec/fixtures/data/1.10/any.bin +0 -0
  29. data/spec/fixtures/data/1.10/boolean.bin +0 -0
  30. data/spec/fixtures/data/1.10/comment.bin +0 -0
  31. data/spec/fixtures/data/1.10/distinct.bin +0 -0
  32. data/spec/fixtures/data/1.10/field_weights.bin +0 -0
  33. data/spec/fixtures/data/1.10/filter.bin +0 -0
  34. data/spec/fixtures/data/1.10/index.bin +0 -0
  35. data/spec/fixtures/data/1.10/index_weights.bin +0 -0
  36. data/spec/fixtures/data/1.10/overrides.bin +0 -0
  37. data/spec/fixtures/data/1.10/phrase.bin +0 -0
  38. data/spec/fixtures/data/1.10/rank_mode.bin +0 -0
  39. data/spec/fixtures/data/1.10/select.bin +0 -0
  40. data/spec/fixtures/data/1.10/simple.bin +0 -0
  41. data/spec/fixtures/data/1.10/sort.bin +0 -0
  42. data/spec/fixtures/data/1.10/weights.bin +0 -0
  43. data/spec/fixtures/data/2.0.1/anchor.bin +0 -0
  44. data/spec/fixtures/data/2.0.1/any.bin +0 -0
  45. data/spec/fixtures/data/2.0.1/boolean.bin +0 -0
  46. data/spec/fixtures/data/2.0.1/comment.bin +0 -0
  47. data/spec/fixtures/data/2.0.1/distinct.bin +0 -0
  48. data/spec/fixtures/data/2.0.1/field_weights.bin +0 -0
  49. data/spec/fixtures/data/2.0.1/filter.bin +0 -0
  50. data/spec/fixtures/data/2.0.1/index.bin +0 -0
  51. data/spec/fixtures/data/2.0.1/index_weights.bin +0 -0
  52. data/spec/fixtures/data/2.0.1/overrides.bin +0 -0
  53. data/spec/fixtures/data/2.0.1/phrase.bin +0 -0
  54. data/spec/fixtures/data/2.0.1/rank_mode.bin +0 -0
  55. data/spec/fixtures/data/2.0.1/select.bin +0 -0
  56. data/spec/fixtures/data/2.0.1/simple.bin +0 -0
  57. data/spec/fixtures/data/2.0.1/sort.bin +0 -0
  58. data/spec/fixtures/data/2.0.1/weights.bin +0 -0
  59. data/spec/fixtures/data/2.1.0/anchor.bin +0 -0
  60. data/spec/fixtures/data/2.1.0/any.bin +0 -0
  61. data/spec/fixtures/data/2.1.0/boolean.bin +0 -0
  62. data/spec/fixtures/data/2.1.0/comment.bin +0 -0
  63. data/spec/fixtures/data/2.1.0/distinct.bin +0 -0
  64. data/spec/fixtures/data/2.1.0/field_weights.bin +0 -0
  65. data/spec/fixtures/data/2.1.0/filter.bin +0 -0
  66. data/spec/fixtures/data/2.1.0/index.bin +0 -0
  67. data/spec/fixtures/data/2.1.0/index_weights.bin +0 -0
  68. data/spec/fixtures/data/2.1.0/overrides.bin +0 -0
  69. data/spec/fixtures/data/2.1.0/phrase.bin +0 -0
  70. data/spec/fixtures/data/2.1.0/rank_mode.bin +0 -0
  71. data/spec/fixtures/data/2.1.0/select.bin +0 -0
  72. data/spec/fixtures/data/2.1.0/simple.bin +0 -0
  73. data/spec/fixtures/data/2.1.0/sort.bin +0 -0
  74. data/spec/fixtures/data/2.1.0/weights.bin +0 -0
  75. data/spec/fixtures/sphinxapi.0.9.8.php +8 -8
  76. data/spec/fixtures/sphinxapi.0.9.9.php +26 -26
  77. data/spec/fixtures/sphinxapi.1.10.php +27 -27
  78. data/spec/fixtures/sphinxapi.2.0.1.php +27 -27
  79. data/spec/fixtures/sphinxapi.2.1.0.php +2 -2
  80. data/spec/riddle/auto_version_spec.rb +14 -0
  81. data/spec/riddle/query_spec.rb +13 -8
  82. data/spec/unit/client_spec.rb +22 -0
  83. metadata +76 -49
@@ -124,7 +124,7 @@ define ( "SPH_GROUPBY_ATTRPAIR", 5 );
124
124
  function sphPackI64 ( $v )
125
125
  {
126
126
  assert ( is_numeric($v) );
127
-
127
+
128
128
  // x64
129
129
  if ( PHP_INT_SIZE>=8 )
130
130
  {
@@ -136,7 +136,7 @@ function sphPackI64 ( $v )
136
136
  if ( is_int($v) )
137
137
  return pack ( "NN", $v < 0 ? -1 : 0, $v );
138
138
 
139
- // x32, bcmath
139
+ // x32, bcmath
140
140
  if ( function_exists("bcmul") )
141
141
  {
142
142
  if ( bccomp ( $v, 0 ) == -1 )
@@ -173,16 +173,16 @@ function sphPackI64 ( $v )
173
173
  function sphPackU64 ( $v )
174
174
  {
175
175
  assert ( is_numeric($v) );
176
-
176
+
177
177
  // x64
178
178
  if ( PHP_INT_SIZE>=8 )
179
179
  {
180
180
  assert ( $v>=0 );
181
-
181
+
182
182
  // x64, int
183
183
  if ( is_int($v) )
184
184
  return pack ( "NN", $v>>32, $v&0xFFFFFFFF );
185
-
185
+
186
186
  // x64, bcmath
187
187
  if ( function_exists("bcmul") )
188
188
  {
@@ -190,12 +190,12 @@ function sphPackU64 ( $v )
190
190
  $l = bcmod ( $v, 4294967296 );
191
191
  return pack ( "NN", $h, $l );
192
192
  }
193
-
193
+
194
194
  // x64, no-bcmath
195
195
  $p = max ( 0, strlen($v) - 13 );
196
196
  $lo = (int)substr ( $v, $p );
197
197
  $hi = (int)substr ( $v, 0, $p );
198
-
198
+
199
199
  $m = $lo + $hi*1316134912;
200
200
  $l = $m % 4294967296;
201
201
  $h = $hi*2328 + (int)($m/4294967296);
@@ -206,7 +206,7 @@ function sphPackU64 ( $v )
206
206
  // x32, int
207
207
  if ( is_int($v) )
208
208
  return pack ( "NN", 0, $v );
209
-
209
+
210
210
  // x32, bcmath
211
211
  if ( function_exists("bcmul") )
212
212
  {
@@ -219,7 +219,7 @@ function sphPackU64 ( $v )
219
219
  $p = max(0, strlen($v) - 13);
220
220
  $lo = (float)substr($v, $p);
221
221
  $hi = (float)substr($v, 0, $p);
222
-
222
+
223
223
  $m = $lo + $hi*1316134912.0;
224
224
  $q = floor($m / 4294967296.0);
225
225
  $l = $m - ($q * 4294967296.0);
@@ -275,11 +275,11 @@ function sphUnpackU64 ( $v )
275
275
  // x32, bcmath
276
276
  if ( function_exists("bcmul") )
277
277
  return bcadd ( $lo, bcmul ( $hi, "4294967296" ) );
278
-
278
+
279
279
  // x32, no-bcmath
280
280
  $hi = (float)$hi;
281
281
  $lo = (float)$lo;
282
-
282
+
283
283
  $q = floor($hi/10000000.0);
284
284
  $r = $hi - $q*10000000.0;
285
285
  $m = $lo + $r*4967296.0;
@@ -322,7 +322,7 @@ function sphUnpackI64 ( $v )
322
322
  return $lo;
323
323
  return sprintf ( "%.0f", $lo - 4294967296.0 );
324
324
  }
325
-
325
+
326
326
  $neg = "";
327
327
  $c = 0;
328
328
  if ( $hi<0 )
@@ -331,7 +331,7 @@ function sphUnpackI64 ( $v )
331
331
  $lo = ~$lo;
332
332
  $c = 1;
333
333
  $neg = "-";
334
- }
334
+ }
335
335
 
336
336
  $hi = sprintf ( "%u", $hi );
337
337
  $lo = sprintf ( "%u", $lo );
@@ -343,7 +343,7 @@ function sphUnpackI64 ( $v )
343
343
  // x32, no-bcmath
344
344
  $hi = (float)$hi;
345
345
  $lo = (float)$lo;
346
-
346
+
347
347
  $q = floor($hi/10000000.0);
348
348
  $r = $hi - $q*10000000.0;
349
349
  $m = $lo + $r*4967296.0;
@@ -444,7 +444,7 @@ class SphinxClient
444
444
  $this->_filters = array ();
445
445
  $this->_groupby = "";
446
446
  $this->_groupfunc = SPH_GROUPBY_DAY;
447
- $this->_groupsort = "@group desc";
447
+ $this->_groupsort = "@weight DESC";
448
448
  $this->_groupdistinct= "";
449
449
  $this->_maxmatches = 1000;
450
450
  $this->_cutoff = 0;
@@ -506,7 +506,7 @@ class SphinxClient
506
506
  $this->_path = $host;
507
507
  return;
508
508
  }
509
-
509
+
510
510
  assert ( is_int($port) );
511
511
  $this->_host = $host;
512
512
  $this->_port = $port;
@@ -586,14 +586,14 @@ class SphinxClient
586
586
  $fp = @fsockopen ( $host, $port, $errno, $errstr );
587
587
  else
588
588
  $fp = @fsockopen ( $host, $port, $errno, $errstr, $this->_timeout );
589
-
589
+
590
590
  if ( !$fp )
591
591
  {
592
592
  if ( $this->_path )
593
593
  $location = $this->_path;
594
594
  else
595
595
  $location = "{$this->_host}:{$this->_port}";
596
-
596
+
597
597
  $errstr = trim ( $errstr );
598
598
  $this->_error = "connection to $location failed (errno=$errno, msg=$errstr)";
599
599
  $this->_connerror = true;
@@ -932,7 +932,7 @@ class SphinxClient
932
932
  {
933
933
  $this->_groupby = "";
934
934
  $this->_groupfunc = SPH_GROUPBY_DAY;
935
- $this->_groupsort = "@group desc";
935
+ $this->_groupsort = "@weight DESC";
936
936
  $this->_groupdistinct= "";
937
937
  }
938
938
 
@@ -1227,7 +1227,7 @@ class SphinxClient
1227
1227
  if ( $type==SPH_ATTR_FLOAT )
1228
1228
  {
1229
1229
  list(,$uval) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4;
1230
- list(,$fval) = unpack ( "f*", pack ( "L", $uval ) );
1230
+ list(,$fval) = unpack ( "f*", pack ( "L", $uval ) );
1231
1231
  $attrvals[$attr] = $fval;
1232
1232
  continue;
1233
1233
  }
@@ -1246,7 +1246,7 @@ class SphinxClient
1246
1246
  } else if ( $type==SPH_ATTR_STRING )
1247
1247
  {
1248
1248
  $attrvals[$attr] = substr ( $response, $p, $val );
1249
- $p += $val;
1249
+ $p += $val;
1250
1250
  } else
1251
1251
  {
1252
1252
  $attrvals[$attr] = sphFixUint($val);
@@ -1418,7 +1418,7 @@ class SphinxClient
1418
1418
 
1419
1419
  // Commented out for testing Riddle
1420
1420
  // $this->_MBPush ();
1421
- //
1421
+ //
1422
1422
  // if (!( $fp = $this->_Connect() ))
1423
1423
  // {
1424
1424
  // $this->_MBPop();
@@ -1433,7 +1433,7 @@ class SphinxClient
1433
1433
  $req = pack ( "N", strlen($query) ) . $query; // req query
1434
1434
  $req .= pack ( "N", strlen($index) ) . $index; // req index
1435
1435
  $req .= pack ( "N", (int)$hits );
1436
-
1436
+
1437
1437
  // Line for testing Riddle:
1438
1438
  return $req;
1439
1439
 
@@ -1556,7 +1556,7 @@ class SphinxClient
1556
1556
  $req .= pack ( "N", $vv );
1557
1557
  }
1558
1558
  }
1559
-
1559
+
1560
1560
  // Line for testing Riddle:
1561
1561
  return $req;
1562
1562
 
@@ -1620,7 +1620,7 @@ class SphinxClient
1620
1620
 
1621
1621
  fclose ( $this->_socket );
1622
1622
  $this->_socket = false;
1623
-
1623
+
1624
1624
  return true;
1625
1625
  }
1626
1626
 
@@ -1691,7 +1691,7 @@ class SphinxClient
1691
1691
  $this->_MBPop ();
1692
1692
  return $tag;
1693
1693
  }
1694
-
1694
+
1695
1695
  // Added for Riddle - code is taken from AddQuery
1696
1696
  function FilterOutput()
1697
1697
  {
@@ -1721,7 +1721,7 @@ class SphinxClient
1721
1721
  }
1722
1722
  $req .= pack ( "N", $filter["exclude"] );
1723
1723
  }
1724
-
1724
+
1725
1725
  return $req;
1726
1726
  }
1727
1727
  }
@@ -447,7 +447,7 @@ class SphinxClient
447
447
  $this->_filters = array ();
448
448
  $this->_groupby = "";
449
449
  $this->_groupfunc = SPH_GROUPBY_DAY;
450
- $this->_groupsort = "@group desc";
450
+ $this->_groupsort = "@weight DESC";
451
451
  $this->_groupdistinct= "";
452
452
  $this->_maxmatches = 1000;
453
453
  $this->_cutoff = 0;
@@ -938,7 +938,7 @@ class SphinxClient
938
938
  {
939
939
  $this->_groupby = "";
940
940
  $this->_groupfunc = SPH_GROUPBY_DAY;
941
- $this->_groupsort = "@group desc";
941
+ $this->_groupsort = "@weight DESC";
942
942
  $this->_groupdistinct= "";
943
943
  }
944
944
 
@@ -50,6 +50,20 @@ describe Riddle::AutoVersion do
50
50
  Riddle::AutoVersion.configure
51
51
  end
52
52
 
53
+ it "should require 2.0.1 if 2.0.2-dev is being used" do
54
+ Riddle::AutoVersion.should_receive(:require).with('riddle/2.0.1')
55
+
56
+ @controller.stub!(:sphinx_version => '2.0.2-dev')
57
+ Riddle::AutoVersion.configure
58
+ end
59
+
60
+ it "should require 2.1.0 if 2.0.3 is being used" do
61
+ Riddle::AutoVersion.should_receive(:require).with('riddle/2.1.0')
62
+
63
+ @controller.stub!(:sphinx_version => '2.0.3-release')
64
+ Riddle::AutoVersion.configure
65
+ end
66
+
53
67
  it "should require 2.1.0 if that is the known version" do
54
68
  Riddle::AutoVersion.should_receive(:require).with('riddle/2.1.0')
55
69
 
@@ -3,11 +3,11 @@ require 'spec_helper'
3
3
  describe Riddle::Query, :live => true do
4
4
  describe '.connection' do
5
5
  let(:connection) { Riddle::Query.connection 'localhost', 9306 }
6
-
6
+
7
7
  it "returns a MySQL Client" do
8
8
  connection.should be_a(Mysql2::Client)
9
9
  end
10
-
10
+
11
11
  it "should handle search requests" do
12
12
  connection.query(Riddle::Query.tables).to_a[0].should == {
13
13
  'Index' => 'people', 'Type' => 'local'
@@ -21,35 +21,40 @@ describe Riddle::Query do
21
21
  it 'handles a single value' do
22
22
  Riddle::Query.set('foo', 'bar').should == 'SET GLOBAL foo = bar'
23
23
  end
24
-
24
+
25
25
  it 'handles multiple values' do
26
26
  Riddle::Query.set('foo', [1, 2, 3]).should == 'SET GLOBAL foo = (1, 2, 3)'
27
27
  end
28
-
28
+
29
29
  it 'handles non-global settings' do
30
30
  Riddle::Query.set('foo', 'bar', false).should == 'SET foo = bar'
31
31
  end
32
32
  end
33
-
33
+
34
34
  describe '.snippets' do
35
35
  it 'handles a basic request' do
36
36
  Riddle::Query.snippets('foo bar baz', 'foo_core', 'foo').
37
37
  should == "CALL SNIPPETS('foo bar baz', 'foo_core', 'foo')"
38
38
  end
39
-
39
+
40
40
  it 'handles a request with options' do
41
41
  Riddle::Query.snippets('foo bar baz', 'foo_core', 'foo', :around => 5).
42
42
  should == "CALL SNIPPETS('foo bar baz', 'foo_core', 'foo', 5 AS around)"
43
43
  end
44
+
45
+ it 'handles string options' do
46
+ Riddle::Query.snippets('foo bar baz', 'foo_core', 'foo',
47
+ :before_match => '<strong>').should == "CALL SNIPPETS('foo bar baz', 'foo_core', 'foo', '<strong>' AS before_match)"
48
+ end
44
49
  end
45
-
50
+
46
51
  describe '.create_function' do
47
52
  it 'handles a basic create request' do
48
53
  Riddle::Query.create_function('foo', :bigint, 'foo.sh').
49
54
  should == "CREATE FUNCTION foo RETURNS BIGINT SONAME 'foo.sh'"
50
55
  end
51
56
  end
52
-
57
+
53
58
  describe '.update' do
54
59
  it 'handles a basic update request' do
55
60
  Riddle::Query.update('foo_core', 5, :deleted => 1).
@@ -265,4 +265,26 @@ describe Riddle::Client do
265
265
  }.should raise_error(Riddle::ConnectionError)
266
266
  end unless RUBY_PLATFORM == 'java' # JRuby doesn't like Timeout
267
267
  end
268
+
269
+ it "should fail if the server has the wrong version" do
270
+ client = Riddle::Client.new
271
+ client.port = 9314
272
+ client.timeout = 1
273
+
274
+ server = TCPServer.new "localhost", 9314
275
+
276
+ thread = Thread.new do
277
+ client = server.accept
278
+ client.send [0].pack("N"), 0
279
+ client.close
280
+ end
281
+
282
+ lambda {
283
+ client.send(:connect) { |socket| }
284
+ }.should raise_error(Riddle::VersionError)
285
+
286
+ thread.exit
287
+ server.close
288
+ end
289
+
268
290
  end
metadata CHANGED
@@ -1,56 +1,80 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: riddle
3
- version: !ruby/object:Gem::Version
4
- version: 1.5.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 7
5
5
  prerelease:
6
+ segments:
7
+ - 1
8
+ - 5
9
+ - 2
10
+ version: 1.5.2
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Pat Allan
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-01-02 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: rake
16
- requirement: &70316764766880 !ruby/object:Gem::Requirement
17
+
18
+ date: 2012-05-14 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ type: :development
22
+ requirement: &id001 !ruby/object:Gem::Requirement
17
23
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ hash: 63
28
+ segments:
29
+ - 0
30
+ - 9
31
+ - 2
21
32
  version: 0.9.2
22
- type: :development
33
+ version_requirements: *id001
23
34
  prerelease: false
24
- version_requirements: *70316764766880
25
- - !ruby/object:Gem::Dependency
26
- name: rspec
27
- requirement: &70316764765360 !ruby/object:Gem::Requirement
35
+ name: rake
36
+ - !ruby/object:Gem::Dependency
37
+ type: :development
38
+ requirement: &id002 !ruby/object:Gem::Requirement
28
39
  none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 27
44
+ segments:
45
+ - 2
46
+ - 5
47
+ - 0
32
48
  version: 2.5.0
33
- type: :development
49
+ version_requirements: *id002
34
50
  prerelease: false
35
- version_requirements: *70316764765360
36
- - !ruby/object:Gem::Dependency
37
- name: yard
38
- requirement: &70316764763300 !ruby/object:Gem::Requirement
51
+ name: rspec
52
+ - !ruby/object:Gem::Dependency
53
+ type: :development
54
+ requirement: &id003 !ruby/object:Gem::Requirement
39
55
  none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 7
60
+ segments:
61
+ - 0
62
+ - 7
63
+ - 2
43
64
  version: 0.7.2
44
- type: :development
65
+ version_requirements: *id003
45
66
  prerelease: false
46
- version_requirements: *70316764763300
67
+ name: yard
47
68
  description: A Ruby API and configuration helper for the Sphinx search service.
48
- email:
69
+ email:
49
70
  - pat@freelancing-gods.com
50
71
  executables: []
72
+
51
73
  extensions: []
74
+
52
75
  extra_rdoc_files: []
53
- files:
76
+
77
+ files:
54
78
  - .gitignore
55
79
  - .travis.yml
56
80
  - Gemfile
@@ -252,35 +276,38 @@ files:
252
276
  - spec/unit/riddle_spec.rb
253
277
  homepage: http://freelancing-god.github.com/riddle/
254
278
  licenses: []
279
+
255
280
  post_install_message:
256
281
  rdoc_options: []
257
- require_paths:
282
+
283
+ require_paths:
258
284
  - lib
259
- required_ruby_version: !ruby/object:Gem::Requirement
285
+ required_ruby_version: !ruby/object:Gem::Requirement
260
286
  none: false
261
- requirements:
262
- - - ! '>='
263
- - !ruby/object:Gem::Version
264
- version: '0'
265
- segments:
287
+ requirements:
288
+ - - ">="
289
+ - !ruby/object:Gem::Version
290
+ hash: 3
291
+ segments:
266
292
  - 0
267
- hash: -2420399523402402729
268
- required_rubygems_version: !ruby/object:Gem::Requirement
293
+ version: "0"
294
+ required_rubygems_version: !ruby/object:Gem::Requirement
269
295
  none: false
270
- requirements:
271
- - - ! '>='
272
- - !ruby/object:Gem::Version
273
- version: '0'
274
- segments:
296
+ requirements:
297
+ - - ">="
298
+ - !ruby/object:Gem::Version
299
+ hash: 3
300
+ segments:
275
301
  - 0
276
- hash: -2420399523402402729
302
+ version: "0"
277
303
  requirements: []
304
+
278
305
  rubyforge_project: riddle
279
- rubygems_version: 1.8.10
306
+ rubygems_version: 1.8.16
280
307
  signing_key:
281
308
  specification_version: 3
282
309
  summary: An API for Sphinx, written in and for Ruby.
283
- test_files:
310
+ test_files:
284
311
  - spec/fixtures/.gitignore
285
312
  - spec/fixtures/data/0.9.9/anchor.bin
286
313
  - spec/fixtures/data/0.9.9/any.bin