riddle 1.5.5 → 1.5.6

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.
data/.travis.yml CHANGED
@@ -1,11 +1,11 @@
1
1
  language: ruby
2
2
  before_install:
3
- - curl -O http://fs-packages.s3.amazonaws.com/fs-sphinx-1.10_i386_12.04.deb
4
- - sudo dpkg -i fs-sphinx-1.10_i386_12.04.deb
5
- - curl -O http://fs-packages.s3.amazonaws.com/fs-sphinx-2.0.4_i386_12.04.deb
6
- - sudo dpkg -i fs-sphinx-2.0.4_i386_12.04.deb
7
- - curl -O http://fs-packages.s3.amazonaws.com/fs-sphinx-2.0.6_i386_12.04.deb
8
- - sudo dpkg -i fs-sphinx-2.0.6_i386_12.04.deb
3
+ - curl -O http://fs-packages.s3.amazonaws.com/fs-sphinx-1.10_x86_64_12.04.deb
4
+ - sudo dpkg -i fs-sphinx-1.10_x86_64_12.04.deb
5
+ - curl -O http://fs-packages.s3.amazonaws.com/fs-sphinx-2.0.4_x86_64_12.04.deb
6
+ - sudo dpkg -i fs-sphinx-2.0.4_x86_64_12.04.deb
7
+ - curl -O http://fs-packages.s3.amazonaws.com/fs-sphinx-2.0.6_x86_64_12.04.deb
8
+ - sudo dpkg -i fs-sphinx-2.0.6_x86_64_12.04.deb
9
9
  rvm:
10
10
  - 1.8.7
11
11
  - 1.9.2
data/HISTORY CHANGED
@@ -1,3 +1,9 @@
1
+ 1.5.6 - May 7th 2013
2
+ - Wrap underlying parse errors within Riddle::ResponseError instances when parsing responses.
3
+ - Add lemmatization options (Kirill Lazarev).
4
+ - Ignore configuration lines that are only comments when parsing configurations.
5
+ - Construct GROUP ORDER and ORDER in SphinxQL in the correct order (Grzegorz Derebecki).
6
+
1
7
  1.5.5 - February 23rd 2013
2
8
  - Added Riddle::Query.escape for SphinxQL queries.
3
9
  - Fixed failover handling (Ngan Pham).
data/lib/riddle.rb CHANGED
@@ -7,7 +7,7 @@ module Riddle #:nodoc:
7
7
  @@escape_pattern = /[\(\)\|\-!@~"&\/]/
8
8
  @@use_encoding = defined?(::Encoding) &&
9
9
  ::Encoding.respond_to?(:default_external)
10
-
10
+
11
11
  class ConnectionError < StandardError #:nodoc:
12
12
  #
13
13
  end
@@ -19,36 +19,36 @@ module Riddle #:nodoc:
19
19
  data
20
20
  end
21
21
  end
22
-
22
+
23
23
  def self.mutex
24
24
  @@mutex
25
25
  end
26
-
26
+
27
27
  def self.escape_pattern
28
28
  @@escape_pattern
29
29
  end
30
-
30
+
31
31
  def self.escape_pattern=(pattern)
32
32
  mutex.synchronize do
33
33
  @@escape_pattern = pattern
34
34
  end
35
35
  end
36
-
36
+
37
37
  def self.escape(string)
38
38
  string.gsub(escape_pattern) { |char| "\\#{char}" }
39
39
  end
40
-
40
+
41
41
  def self.loaded_version
42
42
  @@sphinx_version
43
43
  end
44
-
44
+
45
45
  def self.loaded_version=(version)
46
46
  @@sphinx_version = version
47
47
  end
48
-
48
+
49
49
  def self.version_warning
50
50
  return if loaded_version
51
-
51
+
52
52
  STDERR.puts %Q{
53
53
  Riddle cannot detect Sphinx on your machine, and so can't determine which
54
54
  version of Sphinx you are planning on using. Please use one of the following
@@ -70,7 +70,6 @@ require 'riddle/client'
70
70
  require 'riddle/configuration'
71
71
  require 'riddle/controller'
72
72
  require 'riddle/query'
73
- require 'riddle/version'
74
73
 
75
74
  Riddle.loaded_version = nil
76
75
  Riddle::AutoVersion.configure
data/lib/riddle/client.rb CHANGED
@@ -4,7 +4,9 @@ require 'riddle/client/response'
4
4
 
5
5
  module Riddle
6
6
  class VersionError < StandardError; end
7
- class ResponseError < StandardError; end
7
+ class ResponseError < StandardError
8
+ attr_accessor :original
9
+ end
8
10
  class OutOfBoundsError < StandardError; end
9
11
 
10
12
  # This class was heavily based on the existing Client API by Dmytro Shteflyuk
@@ -290,6 +292,10 @@ module Riddle
290
292
 
291
293
  @queue.clear
292
294
  results
295
+ rescue => original
296
+ error = ResponseError.new original.message
297
+ error.original = original
298
+ raise error
293
299
  end
294
300
 
295
301
  # Query the Sphinx daemon - defaulting to all indices, but you can specify
@@ -4,7 +4,7 @@ module Riddle
4
4
  def self.settings
5
5
  [
6
6
  :mem_limit, :max_iops, :max_iosize, :max_xmlpipe2_field,
7
- :write_buffer, :max_file_field_buffer
7
+ :write_buffer, :max_file_field_buffer, :lemmatizer_base, :lemmatizer_cache
8
8
  ]
9
9
  end
10
10
 
@@ -144,7 +144,7 @@ class Riddle::Configuration::Parser
144
144
  return line if line.nil?
145
145
 
146
146
  line = line.strip
147
- line.empty? ? next_line : line
147
+ (line.empty? || line[/^#/]) ? next_line : line
148
148
  end
149
149
 
150
150
  def next_settings
@@ -84,10 +84,10 @@ class Riddle::Query::Select
84
84
  sql = "SELECT #{ @values.join(', ') } FROM #{ @indices.join(', ') }"
85
85
  sql << " WHERE #{ combined_wheres }" if wheres?
86
86
  sql << " GROUP BY #{@group_by}" if !@group_by.nil?
87
- sql << " ORDER BY #{@order_by}" if !@order_by.nil?
88
87
  unless @order_within_group_by.nil?
89
88
  sql << " WITHIN GROUP ORDER BY #{@order_within_group_by}"
90
89
  end
90
+ sql << " ORDER BY #{@order_by}" if !@order_by.nil?
91
91
  sql << " #{limit_clause}" unless @limit.nil? && @offset.nil?
92
92
  sql << " #{options_clause}" unless @options.empty?
93
93
 
data/riddle.gemspec CHANGED
@@ -1,10 +1,9 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path('../lib', __FILE__)
3
- require 'riddle/version'
4
3
 
5
4
  Gem::Specification.new do |s|
6
5
  s.name = 'riddle'
7
- s.version = Riddle::Version
6
+ s.version = '1.5.6'
8
7
  s.platform = Gem::Platform::RUBY
9
8
  s.authors = ['Pat Allan']
10
9
  s.email = ['pat@freelancing-gods.com']
@@ -8,7 +8,7 @@ describe 'Sphinx Client', :live => true do
8
8
  after :each do
9
9
  Riddle::Client.connection = nil
10
10
  end
11
-
11
+
12
12
  describe '.connection' do
13
13
  it "should use the given block" do
14
14
  Riddle::Client.connection = lambda { |client|
@@ -16,16 +16,16 @@ describe 'Sphinx Client', :live => true do
16
16
  }
17
17
  client.query('smith').should be_kind_of(Hash)
18
18
  end
19
-
19
+
20
20
  it "should fail with errors from the given block" do
21
21
  Riddle::Client.connection = lambda { |client|
22
22
  raise RiddleSpecConnectionProcError
23
23
  }
24
24
  lambda { client.query('smith') }.
25
- should raise_error(RiddleSpecConnectionProcError)
25
+ should raise_error(Riddle::ResponseError)
26
26
  end
27
27
  end
28
-
28
+
29
29
  describe '#connection' do
30
30
  it "use the given block" do
31
31
  client.connection = lambda { |client|
@@ -39,7 +39,7 @@ describe 'Sphinx Client', :live => true do
39
39
  raise RiddleSpecConnectionProcError
40
40
  }
41
41
  lambda { client.query('smith') }.
42
- should raise_error(RiddleSpecConnectionProcError)
42
+ should raise_error(Riddle::ResponseError)
43
43
  end
44
44
 
45
45
  it "should prioritise instance over class connection" do
@@ -49,7 +49,7 @@ describe 'Sphinx Client', :live => true do
49
49
  client.connection = lambda { |client|
50
50
  TCPSocket.new(client.server, client.port)
51
51
  }
52
-
52
+
53
53
  lambda { client.query('smith') }.should_not raise_error
54
54
  end
55
55
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riddle
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 5
9
- - 5
10
- version: 1.5.5
9
+ - 6
10
+ version: 1.5.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Pat Allan
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-02-23 00:00:00 +11:00
18
+ date: 2013-05-07 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -117,7 +117,6 @@ files:
117
117
  - lib/riddle/query/delete.rb
118
118
  - lib/riddle/query/insert.rb
119
119
  - lib/riddle/query/select.rb
120
- - lib/riddle/version.rb
121
120
  - riddle.gemspec
122
121
  - spec/fixtures/.gitignore
123
122
  - spec/fixtures/data/0.9.9/anchor.bin
@@ -1,3 +0,0 @@
1
- module Riddle
2
- Version = '1.5.5'
3
- end