ultrasphinx 1.9 → 1.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. data.tar.gz.sig +0 -0
  2. data/CHANGELOG +6 -0
  3. data/DEPLOYMENT_NOTES +3 -1
  4. data/Manifest +10 -2
  5. data/RAKE_TASKS +2 -1
  6. data/README +6 -6
  7. data/Rakefile +27 -0
  8. data/examples/default.base +7 -2
  9. data/init.rb +1 -0
  10. data/lib/ultrasphinx/autoload.rb +0 -1
  11. data/lib/ultrasphinx/configure.rb +64 -36
  12. data/lib/ultrasphinx/core_extensions.rb +17 -2
  13. data/lib/ultrasphinx/fields.rb +33 -13
  14. data/lib/ultrasphinx/is_indexed.rb +32 -14
  15. data/lib/ultrasphinx/postgresql/concat_ws.sql +3 -3
  16. data/lib/ultrasphinx/postgresql/crc32.sql +1 -1
  17. data/lib/ultrasphinx/postgresql/group_concat.sql +1 -3
  18. data/lib/ultrasphinx/postgresql/hex_to_int.sql +1 -1
  19. data/lib/ultrasphinx/postgresql/unix_timestamp.sql +1 -1
  20. data/lib/ultrasphinx/search.rb +56 -6
  21. data/lib/ultrasphinx/search/internals.rb +88 -23
  22. data/lib/ultrasphinx/search/parser.rb +16 -2
  23. data/lib/ultrasphinx/spell.rb +2 -1
  24. data/lib/ultrasphinx/ultrasphinx.rb +43 -49
  25. data/tasks/ultrasphinx.rake +56 -16
  26. data/test/config/ultrasphinx/test.base +7 -2
  27. data/test/integration/app/app/controllers/addresses_controller.rb +9 -9
  28. data/test/integration/app/app/controllers/states_controller.rb +9 -9
  29. data/test/integration/app/app/models/category.rb +5 -0
  30. data/test/integration/app/app/models/geo/address.rb +1 -1
  31. data/test/integration/app/app/models/seller.rb +3 -3
  32. data/test/integration/app/app/views/addresses/edit.html.erb +2 -2
  33. data/test/integration/app/app/views/addresses/index.html.erb +2 -2
  34. data/test/integration/app/app/views/addresses/new.html.erb +1 -1
  35. data/test/integration/app/app/views/states/edit.html.erb +2 -2
  36. data/test/integration/app/app/views/states/index.html.erb +2 -2
  37. data/test/integration/app/app/views/states/new.html.erb +1 -1
  38. data/test/integration/app/app/views/users/index.html.erb +3 -3
  39. data/test/integration/app/config/environment.rb +1 -0
  40. data/test/integration/app/config/ultrasphinx/default.base +2 -2
  41. data/test/integration/app/config/ultrasphinx/development.conf.canonical +74 -50
  42. data/test/integration/app/db/migrate/007_add_lat_and_long_to_address.rb +3 -3
  43. data/test/integration/app/db/migrate/010_create_categories.rb +14 -0
  44. data/test/integration/app/db/migrate/011_categories_sellers.rb +15 -0
  45. data/test/integration/app/public/dispatch.cgi +0 -0
  46. data/test/integration/app/public/dispatch.fcgi +0 -0
  47. data/test/integration/app/public/dispatch.rb +0 -0
  48. data/test/integration/app/script/about +0 -0
  49. data/test/integration/app/script/breakpointer +0 -0
  50. data/test/integration/app/script/console +0 -0
  51. data/test/integration/app/script/destroy +0 -0
  52. data/test/integration/app/script/generate +0 -0
  53. data/test/integration/app/script/performance/benchmarker +0 -0
  54. data/test/integration/app/script/performance/profiler +0 -0
  55. data/test/integration/app/script/plugin +0 -0
  56. data/test/integration/app/script/process/inspector +0 -0
  57. data/test/integration/app/script/process/reaper +0 -0
  58. data/test/integration/app/script/process/spawner +0 -0
  59. data/test/integration/app/script/runner +0 -0
  60. data/test/integration/app/script/server +0 -0
  61. data/test/integration/app/test/fixtures/addresses.yml +77 -6
  62. data/test/integration/app/test/fixtures/categories.yml +101 -0
  63. data/test/integration/app/test/fixtures/categories_sellers.yml +29 -0
  64. data/test/integration/app/test/functional/addresses_controller_test.rb +9 -4
  65. data/test/integration/app/test/functional/sellers_controller_test.rb +9 -2
  66. data/test/integration/app/test/functional/states_controller_test.rb +10 -4
  67. data/test/integration/app/test/functional/users_controller_test.rb +7 -2
  68. data/test/integration/app/test/unit/address_test.rb +1 -1
  69. data/test/integration/app/test/unit/category_test.rb +8 -0
  70. data/test/integration/app/test/unit/country_test.rb +1 -1
  71. data/test/integration/app/test/unit/state_test.rb +1 -1
  72. data/test/integration/app/test/unit/user_test.rb +1 -1
  73. data/test/integration/delta_test.rb +13 -0
  74. data/test/integration/search_test.rb +80 -8
  75. data/test/profile/benchmark.rb +0 -0
  76. data/test/setup.rb +25 -7
  77. data/test/teardown.rb +13 -0
  78. data/test/test_helper.rb +3 -3
  79. data/ultrasphinx.gemspec +22 -43
  80. data/vendor/riddle/README +18 -4
  81. data/vendor/riddle/Rakefile +1 -0
  82. data/vendor/riddle/lib/riddle.rb +11 -5
  83. data/vendor/riddle/lib/riddle/client.rb +65 -20
  84. data/vendor/riddle/lib/riddle/client/response.rb +10 -0
  85. data/vendor/riddle/spec/fixtures/data/anchor.bin +0 -0
  86. data/vendor/riddle/spec/fixtures/data/any.bin +0 -0
  87. data/vendor/riddle/spec/fixtures/data/boolean.bin +0 -0
  88. data/vendor/riddle/spec/fixtures/data/comment.bin +0 -0
  89. data/vendor/riddle/spec/fixtures/data/distinct.bin +0 -0
  90. data/vendor/riddle/spec/fixtures/data/field_weights.bin +0 -0
  91. data/vendor/riddle/spec/fixtures/data/filter.bin +0 -0
  92. data/vendor/riddle/spec/fixtures/data/group.bin +0 -0
  93. data/vendor/riddle/spec/fixtures/data/index.bin +0 -0
  94. data/vendor/riddle/spec/fixtures/data/index_weights.bin +0 -0
  95. data/vendor/riddle/spec/fixtures/data/keywords_with_hits.bin +0 -0
  96. data/vendor/riddle/spec/fixtures/data/keywords_without_hits.bin +0 -0
  97. data/vendor/riddle/spec/fixtures/data/phrase.bin +0 -0
  98. data/vendor/riddle/spec/fixtures/data/rank_mode.bin +0 -0
  99. data/vendor/riddle/spec/fixtures/data/simple.bin +0 -0
  100. data/vendor/riddle/spec/fixtures/data/sort.bin +0 -0
  101. data/vendor/riddle/spec/fixtures/data/weights.bin +0 -0
  102. data/vendor/riddle/spec/fixtures/data_generator.php +15 -0
  103. data/vendor/riddle/spec/fixtures/sphinx/configuration.erb +4 -4
  104. data/vendor/riddle/spec/fixtures/sphinxapi.php +118 -7
  105. data/vendor/riddle/spec/functional/keywords_spec.rb +40 -0
  106. data/vendor/riddle/spec/spec_helper.rb +1 -0
  107. data/vendor/riddle/spec/unit/client_spec.rb +26 -0
  108. metadata +38 -11
  109. metadata.gz.sig +0 -0
  110. data/test/integration/app/config/ultrasphinx/development.conf +0 -319
  111. data/test/integration/app/db/schema.rb +0 -56
@@ -65,6 +65,16 @@ module Riddle
65
65
  return items
66
66
  end
67
67
 
68
+ def next_float_array
69
+ count = next_int
70
+ items = []
71
+ for i in 0...count
72
+ items << self.next_float
73
+ end
74
+
75
+ return items
76
+ end
77
+
68
78
  # Returns the length of the streamed data
69
79
  def length
70
80
  @str.length
@@ -122,9 +122,24 @@ fclose($file);
122
122
 
123
123
  $client->SetFieldWeights(array());
124
124
 
125
+ // comment
126
+ $file = fopen("spec/fixtures/data/comment.bin", "w");
127
+ fwrite($file, $client->_reqs[$client->AddQuery("test ", "*", "commenting")]);
128
+ fclose($file);
129
+
125
130
  // update_simple
126
131
  $file = fopen("spec/fixtures/data/update_simple.bin", "w");
127
132
  fwrite($file, $client->UpdateAttributes("people", array("birthday"), array(1 => array(191163600))));
128
133
  fclose($file);
129
134
 
135
+ // keywords_without_hits
136
+ $file = fopen("spec/fixtures/data/keywords_without_hits.bin", "w");
137
+ fwrite($file, $client->BuildKeywords("pat", "people", false));
138
+ fclose($file);
139
+
140
+ // keywords_with_hits
141
+ $file = fopen("spec/fixtures/data/keywords_with_hits.bin", "w");
142
+ fwrite($file, $client->BuildKeywords("pat", "people", true));
143
+ fclose($file);
144
+
130
145
  ?>
@@ -21,10 +21,10 @@ source peoples
21
21
  sql_pass = <%= @password %>
22
22
  sql_db = riddle_sphinx_spec
23
23
 
24
- sql_query = SELECT id, first_name, middle_initial, last_name, gender, street_address, city, state, postcode, email, UNIX_TIMESTAMP(birthday) AS birthday FROM people WHERE id >= $start AND id <= $end
25
- sql_query_range = SELECT MIN(id), MAX(id) FROM people
26
- sql_query_info = SELECT * FROM people WHERE id = $id
27
- sql_date_column = birthday
24
+ sql_query = SELECT id, first_name, middle_initial, last_name, gender, street_address, city, state, postcode, email, UNIX_TIMESTAMP(birthday) AS birthday FROM people WHERE id >= $start AND id <= $end
25
+ sql_query_range = SELECT MIN(id), MAX(id) FROM people
26
+ sql_query_info = SELECT * FROM people WHERE id = $id
27
+ sql_attr_timestamp = birthday
28
28
  }
29
29
 
30
30
  index people
@@ -1,7 +1,7 @@
1
1
  <?php
2
2
 
3
3
  //
4
- // $Id: sphinxapi.php 1103 2008-01-24 18:42:57Z shodan $
4
+ // $Id: sphinxapi.php 1163 2008-02-19 21:00:40Z glook $
5
5
  //
6
6
 
7
7
  //
@@ -21,11 +21,13 @@
21
21
  define ( "SEARCHD_COMMAND_SEARCH", 0 );
22
22
  define ( "SEARCHD_COMMAND_EXCERPT", 1 );
23
23
  define ( "SEARCHD_COMMAND_UPDATE", 2 );
24
+ define ( "SEARCHD_COMMAND_KEYWORDS",3 );
24
25
 
25
26
  /// current client-side command implementation versions
26
- define ( "VER_COMMAND_SEARCH", 0x112 );
27
+ define ( "VER_COMMAND_SEARCH", 0x113 );
27
28
  define ( "VER_COMMAND_EXCERPT", 0x100 );
28
29
  define ( "VER_COMMAND_UPDATE", 0x101 );
30
+ define ( "VER_COMMAND_KEYWORDS", 0x100 );
29
31
 
30
32
  /// known searchd status codes
31
33
  define ( "SEARCHD_OK", 0 );
@@ -591,11 +593,11 @@ class SphinxClient
591
593
 
592
594
  /// connect to searchd server, run given search query through given indexes,
593
595
  /// and return the search results
594
- function Query ( $query, $index="*" )
596
+ function Query ( $query, $index="*", $comment="" )
595
597
  {
596
598
  assert ( empty($this->_reqs) );
597
599
 
598
- $this->AddQuery ( $query, $index );
600
+ $this->AddQuery ( $query, $index, $comment );
599
601
  $results = $this->RunQueries ();
600
602
 
601
603
  if ( !is_array($results) )
@@ -619,7 +621,7 @@ class SphinxClient
619
621
 
620
622
  /// add query to multi-query batch
621
623
  /// returns index into results array from RunQueries() call
622
- function AddQuery ( $query, $index="*" )
624
+ function AddQuery ( $query, $index="*", $comment="" )
623
625
  {
624
626
  // mbstring workaround
625
627
  $this->_MBPush ();
@@ -696,6 +698,9 @@ class SphinxClient
696
698
  foreach ( $this->_fieldweights as $field=>$weight )
697
699
  $req .= pack ( "N", strlen($field) ) . $field . pack ( "N", $weight );
698
700
 
701
+ // comment
702
+ $req .= pack ( "N", strlen($comment) ) . $comment;
703
+
699
704
  // mbstring workaround
700
705
  $this->_MBPop ();
701
706
 
@@ -817,7 +822,16 @@ class SphinxClient
817
822
  list ( $doc, $weight ) = array_values ( unpack ( "N*N*",
818
823
  substr ( $response, $p, 8 ) ) );
819
824
  $p += 8;
820
- $doc = sprintf ( "%u", $doc ); // workaround for php signed/unsigned braindamage
825
+
826
+ if ( PHP_INT_SIZE>=8 )
827
+ {
828
+ // x64 route, workaround broken unpack() in 5.2.2+
829
+ if ( $doc<0 ) $doc += (1<<32);
830
+ } else
831
+ {
832
+ // x32 route, workaround php signed/unsigned braindamage
833
+ $doc = sprintf ( "%u", $doc );
834
+ }
821
835
  }
822
836
  $weight = sprintf ( "%u", $weight );
823
837
 
@@ -989,6 +1003,103 @@ class SphinxClient
989
1003
  return $res;
990
1004
  }
991
1005
 
1006
+
1007
+ /////////////////////////////////////////////////////////////////////////////
1008
+ // keyword generation
1009
+ /////////////////////////////////////////////////////////////////////////////
1010
+
1011
+ /// connect to searchd server, and generate keyword list for a given query
1012
+ /// returns false on failure,
1013
+ /// an array of words on success
1014
+ function BuildKeywords ( $query, $index, $hits )
1015
+ {
1016
+ assert ( is_string($query) );
1017
+ assert ( is_string($index) );
1018
+ assert ( is_bool($hits) );
1019
+
1020
+ // Commented out for testing Riddle
1021
+ // $this->_MBPush ();
1022
+ //
1023
+ // if (!( $fp = $this->_Connect() ))
1024
+ // {
1025
+ // $this->_MBPop();
1026
+ // return false;
1027
+ // }
1028
+
1029
+ /////////////////
1030
+ // build request
1031
+ /////////////////
1032
+
1033
+ // v.1.0 req
1034
+ $req = pack ( "N", strlen($query) ) . $query; // req query
1035
+ $req .= pack ( "N", strlen($index) ) . $index; // req index
1036
+ $req .= pack ( "N", (int)$hits );
1037
+
1038
+ // Line for testing Riddle:
1039
+ return $req;
1040
+
1041
+ ////////////////////////////
1042
+ // send query, get response
1043
+ ////////////////////////////
1044
+
1045
+ $len = strlen($req);
1046
+ $req = pack ( "nnN", SEARCHD_COMMAND_KEYWORDS, VER_COMMAND_KEYWORDS, $len ) . $req; // add header
1047
+ $wrote = fwrite ( $fp, $req, $len+8 );
1048
+ if (!( $response = $this->_GetResponse ( $fp, VER_COMMAND_KEYWORDS ) ))
1049
+ {
1050
+ $this->_MBPop ();
1051
+ return false;
1052
+ }
1053
+
1054
+ //////////////////
1055
+ // parse response
1056
+ //////////////////
1057
+
1058
+ $pos = 0;
1059
+ $res = array ();
1060
+ $rlen = strlen($response);
1061
+ list(,$nwords) = unpack ( "N*", substr ( $response, $pos, 4 ) );
1062
+ $pos += 4;
1063
+ for ( $i=0; $i<$nwords; $i++ )
1064
+ {
1065
+ list(,$len) = unpack ( "N*", substr ( $response, $pos, 4 ) ); $pos += 4;
1066
+ $tokenized = $len ? substr ( $response, $pos, $len ) : "";
1067
+ $pos += $len;
1068
+
1069
+ list(,$len) = unpack ( "N*", substr ( $response, $pos, 4 ) ); $pos += 4;
1070
+ $normalized = $len ? substr ( $response, $pos, $len ) : "";
1071
+ $pos += $len;
1072
+
1073
+ $res[] = array ( "tokenized"=>$tokenized, "normalized"=>$normalized );
1074
+
1075
+ if ( $hits )
1076
+ {
1077
+ list($ndocs,$nhits) = array_values ( unpack ( "N*N*", substr ( $response, $pos, 8 ) ) );
1078
+ $pos += 8;
1079
+ $res [$i]["docs"] = $ndocs;
1080
+ $res [$i]["hits"] = $nhits;
1081
+ }
1082
+
1083
+ if ( $pos > $rlen )
1084
+ {
1085
+ $this->_error = "incomplete reply";
1086
+ $this->_MBPop ();
1087
+ return false;
1088
+ }
1089
+ }
1090
+
1091
+ $this->_MBPop ();
1092
+ return $res;
1093
+ }
1094
+
1095
+ function EscapeString ( $string )
1096
+ {
1097
+ $from = array ( '(',')','|','-','!','@','~','\"','&' );
1098
+ $to = array ( '\\(','\\)','\\|','\\-','\\!','\\@','\\~','\\\"', '\\&' );
1099
+
1100
+ return str_replace ( $from, $to, $string );
1101
+ }
1102
+
992
1103
  /////////////////////////////////////////////////////////////////////////////
993
1104
  // attribute updates
994
1105
  /////////////////////////////////////////////////////////////////////////////
@@ -1060,7 +1171,7 @@ class SphinxClient
1060
1171
  }
1061
1172
 
1062
1173
  //
1063
- // $Id: sphinxapi.php 1103 2008-01-24 18:42:57Z shodan $
1174
+ // $Id: sphinxapi.php 1163 2008-02-19 21:00:40Z glook $
1064
1175
  //
1065
1176
 
1066
1177
  ?>
@@ -0,0 +1,40 @@
1
+ require 'spec/spec_helper'
2
+
3
+ describe "Sphinx Keywords" do
4
+ before :each do
5
+ @client = Riddle::Client.new("localhost", 3313)
6
+ end
7
+
8
+ it "should return an array of hashes" do
9
+ results = @client.keywords("pat", "people")
10
+ results.should be_kind_of(Array)
11
+
12
+ results.each do |result|
13
+ result.should be_kind_of(Hash)
14
+ end
15
+ end
16
+
17
+ it "should have keys for normalised and tokenised versions of the keywords" do
18
+ results = @client.keywords("pat", "people")
19
+ results.each do |result|
20
+ result.keys.should include(:normalised)
21
+ result.keys.should include(:tokenised)
22
+ end
23
+ end
24
+
25
+ it "shouldn't have docs or hits keys if not requested" do
26
+ results = @client.keywords("pat", "people")
27
+ results.each do |result|
28
+ result.keys.should_not include(:docs)
29
+ result.keys.should_not include(:hits)
30
+ end
31
+ end
32
+
33
+ it "should have docs and hits keys if requested" do
34
+ results = @client.keywords("pat", "people", true)
35
+ results.each do |result|
36
+ result.keys.should include(:docs)
37
+ result.keys.should include(:hits)
38
+ end
39
+ end
40
+ end
@@ -1,4 +1,5 @@
1
1
  require 'riddle'
2
+ require 'spec'
2
3
  require 'spec/sphinx_helper'
3
4
 
4
5
  Spec::Runner.configure do |config|
@@ -123,6 +123,12 @@ describe Riddle::Client do
123
123
  client.queue.first.should == query_contents(:field_weights)
124
124
  end
125
125
 
126
+ it "should build a message with acomment correctly" do
127
+ client = Riddle::Client.new
128
+ client.append_query "test ", "*", "commenting"
129
+ client.queue.first.should == query_contents(:comment)
130
+ end
131
+
126
132
  it "should keep multiple messages in the queue" do
127
133
  client = Riddle::Client.new
128
134
  client.weights = [100, 1]
@@ -151,4 +157,24 @@ describe Riddle::Client do
151
157
  {1 => [191163600]}
152
158
  ).should == query_contents(:update_simple)
153
159
  end
160
+
161
+ it "should build a keywords request without hits correctly" do
162
+ client = Riddle::Client.new
163
+ client.send(
164
+ :keywords_message,
165
+ "pat",
166
+ "people",
167
+ false
168
+ ).should == query_contents(:keywords_without_hits)
169
+ end
170
+
171
+ it "should build a keywords request with hits correctly" do
172
+ client = Riddle::Client.new
173
+ client.send(
174
+ :keywords_message,
175
+ "pat",
176
+ "people",
177
+ true
178
+ ).should == query_contents(:keywords_with_hits)
179
+ end
154
180
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ultrasphinx
3
3
  version: !ruby/object:Gem::Version
4
- version: "1.9"
4
+ version: "1.11"
5
5
  platform: ruby
6
6
  authors:
7
7
  - ""
@@ -30,11 +30,12 @@ cert_chain:
30
30
  yZ0=
31
31
  -----END CERTIFICATE-----
32
32
 
33
- date: 2008-03-08 00:00:00 -05:00
33
+ date: 2009-11-18 00:00:00 -08:00
34
34
  default_executable:
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: chronic
38
+ type: :runtime
38
39
  version_requirement:
39
40
  version_requirements: !ruby/object:Gem::Requirement
40
41
  requirements:
@@ -48,8 +49,18 @@ executables: []
48
49
 
49
50
  extensions: []
50
51
 
51
- extra_rdoc_files: []
52
-
52
+ extra_rdoc_files:
53
+ - CHANGELOG
54
+ - DEPLOYMENT_NOTES
55
+ - lib/ultrasphinx/is_indexed.rb
56
+ - lib/ultrasphinx/search.rb
57
+ - lib/ultrasphinx/spell.rb
58
+ - lib/ultrasphinx/ultrasphinx.rb
59
+ - lib/ultrasphinx.rb
60
+ - LICENSE
61
+ - RAKE_TASKS
62
+ - README
63
+ - TODO
53
64
  files:
54
65
  - CHANGELOG
55
66
  - DEPLOYMENT_NOTES
@@ -90,6 +101,7 @@ files:
90
101
  - test/integration/app/app/helpers/sellers_helper.rb
91
102
  - test/integration/app/app/helpers/states_helper.rb
92
103
  - test/integration/app/app/helpers/users_helper.rb
104
+ - test/integration/app/app/models/category.rb
93
105
  - test/integration/app/app/models/geo/address.rb
94
106
  - test/integration/app/app/models/geo/country.rb
95
107
  - test/integration/app/app/models/geo/state.rb
@@ -124,7 +136,6 @@ files:
124
136
  - test/integration/app/config/locomotive.yml
125
137
  - test/integration/app/config/routes.rb
126
138
  - test/integration/app/config/ultrasphinx/default.base
127
- - test/integration/app/config/ultrasphinx/development.conf
128
139
  - test/integration/app/config/ultrasphinx/development.conf.canonical
129
140
  - test/integration/app/db/migrate/001_create_users.rb
130
141
  - test/integration/app/db/migrate/002_create_sellers.rb
@@ -135,7 +146,8 @@ files:
135
146
  - test/integration/app/db/migrate/007_add_lat_and_long_to_address.rb
136
147
  - test/integration/app/db/migrate/008_add_mission_statement_to_seller.rb
137
148
  - test/integration/app/db/migrate/009_create_countries.rb
138
- - test/integration/app/db/schema.rb
149
+ - test/integration/app/db/migrate/010_create_categories.rb
150
+ - test/integration/app/db/migrate/011_categories_sellers.rb
139
151
  - test/integration/app/doc/README_FOR_APP
140
152
  - test/integration/app/public/404.html
141
153
  - test/integration/app/public/500.html
@@ -168,6 +180,8 @@ files:
168
180
  - test/integration/app/script/runner
169
181
  - test/integration/app/script/server
170
182
  - test/integration/app/test/fixtures/addresses.yml
183
+ - test/integration/app/test/fixtures/categories.yml
184
+ - test/integration/app/test/fixtures/categories_sellers.yml
171
185
  - test/integration/app/test/fixtures/countries.yml
172
186
  - test/integration/app/test/fixtures/sellers.yml
173
187
  - test/integration/app/test/fixtures/states.yml
@@ -178,6 +192,7 @@ files:
178
192
  - test/integration/app/test/functional/users_controller_test.rb
179
193
  - test/integration/app/test/test_helper.rb
180
194
  - test/integration/app/test/unit/address_test.rb
195
+ - test/integration/app/test/unit/category_test.rb
181
196
  - test/integration/app/test/unit/country_test.rb
182
197
  - test/integration/app/test/unit/seller_test.rb
183
198
  - test/integration/app/test/unit/state_test.rb
@@ -206,6 +221,7 @@ files:
206
221
  - vendor/riddle/spec/fixtures/data/anchor.bin
207
222
  - vendor/riddle/spec/fixtures/data/any.bin
208
223
  - vendor/riddle/spec/fixtures/data/boolean.bin
224
+ - vendor/riddle/spec/fixtures/data/comment.bin
209
225
  - vendor/riddle/spec/fixtures/data/distinct.bin
210
226
  - vendor/riddle/spec/fixtures/data/field_weights.bin
211
227
  - vendor/riddle/spec/fixtures/data/filter.bin
@@ -219,6 +235,8 @@ files:
219
235
  - vendor/riddle/spec/fixtures/data/group.bin
220
236
  - vendor/riddle/spec/fixtures/data/index.bin
221
237
  - vendor/riddle/spec/fixtures/data/index_weights.bin
238
+ - vendor/riddle/spec/fixtures/data/keywords_with_hits.bin
239
+ - vendor/riddle/spec/fixtures/data/keywords_without_hits.bin
222
240
  - vendor/riddle/spec/fixtures/data/phrase.bin
223
241
  - vendor/riddle/spec/fixtures/data/rank_mode.bin
224
242
  - vendor/riddle/spec/fixtures/data/simple.bin
@@ -232,6 +250,7 @@ files:
232
250
  - vendor/riddle/spec/fixtures/sql/data.sql
233
251
  - vendor/riddle/spec/fixtures/sql/structure.sql
234
252
  - vendor/riddle/spec/functional/excerpt_spec.rb
253
+ - vendor/riddle/spec/functional/keywords_spec.rb
235
254
  - vendor/riddle/spec/functional/search_spec.rb
236
255
  - vendor/riddle/spec/functional/update_spec.rb
237
256
  - vendor/riddle/spec/spec_helper.rb
@@ -242,11 +261,19 @@ files:
242
261
  - vendor/riddle/spec/unit/response_spec.rb
243
262
  - vendor/will_paginate/LICENSE
244
263
  - ultrasphinx.gemspec
264
+ - Rakefile
245
265
  has_rdoc: true
246
266
  homepage: http://blog.evanweaver.com/files/doc/fauna/ultrasphinx/
247
- post_install_message:
248
- rdoc_options: []
267
+ licenses: []
249
268
 
269
+ post_install_message:
270
+ rdoc_options:
271
+ - --line-numbers
272
+ - --inline-source
273
+ - --title
274
+ - Ultrasphinx
275
+ - --main
276
+ - README
250
277
  require_paths:
251
278
  - lib
252
279
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -259,14 +286,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
259
286
  requirements:
260
287
  - - ">="
261
288
  - !ruby/object:Gem::Version
262
- version: "0"
289
+ version: "1.2"
263
290
  version:
264
291
  requirements: []
265
292
 
266
293
  rubyforge_project: fauna
267
- rubygems_version: 1.0.1
294
+ rubygems_version: 1.3.5
268
295
  signing_key:
269
- specification_version: 2
296
+ specification_version: 3
270
297
  summary: Ruby on Rails configurator and client to the Sphinx fulltext search engine.
271
298
  test_files:
272
299
  - test/test_all.rb