riddle 1.0.10 → 1.0.11

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.
@@ -61,7 +61,7 @@ that the query took to run.
61
61
  @:status@ is the error code for the query - and if there was a related warning, it will be under
62
62
  the @:warning@ key. Fatal errors will be described under @:error@.
63
63
 
64
- If you've installed the gem and wondering why there's no tests - check out the svn version. I've kept the specs out of the gem as I have a decent amount of test data in there, which really isn't needed unless you want to submit patches.
64
+ If you've installed the gem and wondering why there's no tests - check out the git version. I've kept the specs out of the gem as I have a decent amount of test data in there, which really isn't needed unless you want to submit patches.
65
65
 
66
66
  h2. Contributors
67
67
 
@@ -80,3 +80,4 @@ Thanks to the following people who have contributed to Riddle in some shape or f
80
80
  * Jerry Vos
81
81
  * Piotr Sarnacki
82
82
  * Tim Preston
83
+ * Amir Yalon
@@ -175,9 +175,9 @@ module Riddle
175
175
  # the latitude and longitude (in radians), and the reference position.
176
176
  # Note that for geocoding to work properly, you must also set
177
177
  # match_mode to :extended. To sort results by distance, you will
178
- # need to set sort_mode to '@geodist asc' for example. Sphinx
179
- # expects latitude and longitude to be returned from you SQL source
180
- # in radians.
178
+ # need to set sort_by to '@geodist asc', and sort_mode to extended (as an
179
+ # example). Sphinx expects latitude and longitude to be returned from you
180
+ # SQL source in radians.
181
181
  #
182
182
  # Example:
183
183
  # client.set_anchor('lat', -0.6591741, 'long', 2.530770)
@@ -21,7 +21,7 @@ module Riddle
21
21
  conf = " #{setting} = "
22
22
  else
23
23
  conf = setting_to_array(setting).collect { |set|
24
- " #{setting} = #{set}"
24
+ " #{setting} = #{rendered_setting set}"
25
25
  }
26
26
  end
27
27
  conf.length == 0 ? nil : conf
@@ -38,6 +38,20 @@ module Riddle
38
38
  [value]
39
39
  end
40
40
  end
41
+
42
+ def rendered_setting(setting)
43
+ return setting unless setting.is_a?(String)
44
+
45
+ index = 8100
46
+ output = setting.clone
47
+
48
+ while index < output.length
49
+ output.insert(index, "\\\n")
50
+ index += 8100
51
+ end
52
+
53
+ output
54
+ end
41
55
  end
42
56
  end
43
57
  end
@@ -31,19 +31,6 @@ module Riddle
31
31
  @unpack_mysqlcompress = []
32
32
  end
33
33
 
34
- def sql_query=(query)
35
- unless query.nil?
36
- max_length = 8178 # max is: 8192 - "sql_query = ".length - "\\\n".length
37
- i = max_length
38
- while i < query.length
39
- i = query.rindex(" ", i)
40
- query.insert(i, "\\" + "\n")
41
- i = i + max_length
42
- end
43
- end
44
- @sql_query = query
45
- end
46
-
47
34
  def valid?
48
35
  super && (!( @sql_host.nil? || @sql_user.nil? || @sql_db.nil? ||
49
36
  @sql_query.nil? ) || !@parent.nil?)
@@ -21,7 +21,7 @@ module Riddle
21
21
  options = indexes.last.is_a?(Hash) ? indexes.pop : {}
22
22
  indexes << '--all' if indexes.empty?
23
23
 
24
- cmd = "#{indexer} --config #{@path} #{indexes.join(' ')}"
24
+ cmd = "#{indexer} --config '#{@path}' #{indexes.join(' ')}"
25
25
  cmd << " --rotate" if running?
26
26
  options[:verbose] ? system(cmd) : `#{cmd}`
27
27
  end
@@ -29,7 +29,7 @@ module Riddle
29
29
  def start
30
30
  return if running?
31
31
 
32
- cmd = "#{searchd} --pidfile --config #{@path}"
32
+ cmd = "#{searchd} --pidfile --config '#{@path}'"
33
33
 
34
34
  if RUBY_PLATFORM =~ /mswin/
35
35
  system("start /B #{cmd} 1> NUL 2>&1")
@@ -11,17 +11,17 @@ describe "Sphinx Updates" do
11
11
  result[:matches].should_not be_empty
12
12
  result[:matches].length.should == 1
13
13
  ellie = result[:matches].first
14
- ellie[:attributes]["birthday"].should == Time.utc(1970, 1, 23).to_i
14
+ ellie[:attributes]["birthday"].should == Time.local(1970, 1, 23).to_i
15
15
 
16
16
  # make Ellie younger by 6 years
17
- @client.update("people", ["birthday"], {ellie[:doc] => [Time.utc(1976, 1, 23).to_i]})
17
+ @client.update("people", ["birthday"], {ellie[:doc] => [Time.local(1976, 1, 23).to_i]})
18
18
 
19
19
  # check attribute's value
20
20
  result = @client.query("Ellie K Ford")
21
21
  result[:matches].should_not be_empty
22
22
  result[:matches].length.should == 1
23
23
  ellie = result[:matches].first
24
- ellie[:attributes]["birthday"].should == Time.utc(1976, 1, 23).to_i
24
+ ellie[:attributes]["birthday"].should == Time.local(1976, 1, 23).to_i
25
25
  end
26
26
 
27
27
  it "should update multiple records appropriately" do
@@ -1,3 +1,5 @@
1
+ require 'rubygems'
2
+
1
3
  $:.unshift File.dirname(__FILE__) + '/../lib'
2
4
 
3
5
  require 'riddle'
@@ -116,16 +116,17 @@ source src1
116
116
  it "should insert a backslash-newline into an sql_query when greater than 8178 characters" do
117
117
  source = Riddle::Configuration::SQLSource.new("src1", "mysql")
118
118
  source.sql_query = big_query_string[0, 8200]
119
+ source.parent = 'src0'
119
120
 
120
- (source.sql_query.index("\\\n") < 8178).should be_true
121
+ source.render.should match(/sql_query\s=\s[^\n]+\\\n/)
121
122
  end
122
123
 
123
124
  it "should insert two backslash-newlines into an sql_query when greater than 16,356 characters" do
124
125
  source = Riddle::Configuration::SQLSource.new("src1", "mysql")
125
126
  source.sql_query = big_query_string
127
+ source.parent = 'src0'
126
128
 
127
- (source.sql_query.index("\\\n") < 8178).should be_true
128
- (source.sql_query.index("\\\n", 8178) < 16356).should be_true
129
+ source.render.should match(/sql_query\s=\s[^\n]+\\\n[^\n]+\\\n/)
129
130
  end
130
131
 
131
132
  def big_query_string
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riddle
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.10
4
+ hash: 1
5
+ prerelease: false
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 11
10
+ version: 1.0.11
5
11
  platform: ruby
6
12
  authors:
7
13
  - Pat Allan
@@ -9,29 +15,39 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2010-02-16 00:00:00 +11:00
18
+ date: 2010-06-30 00:00:00 +10:00
13
19
  default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: rspec
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
20
26
  requirements:
21
27
  - - ">="
22
28
  - !ruby/object:Gem::Version
29
+ hash: 13
30
+ segments:
31
+ - 1
32
+ - 2
33
+ - 9
23
34
  version: 1.2.9
24
- version:
35
+ type: :development
36
+ version_requirements: *id001
25
37
  - !ruby/object:Gem::Dependency
26
38
  name: yard
27
- type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
30
42
  requirements:
31
43
  - - ">="
32
44
  - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
33
48
  version: "0"
34
- version:
49
+ type: :development
50
+ version_requirements: *id002
35
51
  description: A Ruby API and configuration helper for the Sphinx search service.
36
52
  email: pat@freelancing-gods.com
37
53
  executables: []
@@ -64,6 +80,33 @@ files:
64
80
  - lib/riddle/configuration/sql_source.rb
65
81
  - lib/riddle/configuration/xml_source.rb
66
82
  - lib/riddle/controller.rb
83
+ - spec/functional/connection_spec.rb
84
+ - spec/functional/excerpt_spec.rb
85
+ - spec/functional/keywords_spec.rb
86
+ - spec/functional/persistance_spec.rb
87
+ - spec/functional/search_spec.rb
88
+ - spec/functional/status_spec.rb
89
+ - spec/functional/update_spec.rb
90
+ - spec/riddle/auto_version_spec.rb
91
+ - spec/riddle/client_spec.rb
92
+ - spec/riddle/configuration_spec.rb
93
+ - spec/riddle/controller_spec.rb
94
+ - spec/riddle_spec.rb
95
+ - spec/spec_helper.rb
96
+ - spec/sphinx_helper.rb
97
+ - spec/unit/client_spec.rb
98
+ - spec/unit/configuration/distributed_index_spec.rb
99
+ - spec/unit/configuration/index_spec.rb
100
+ - spec/unit/configuration/indexer_spec.rb
101
+ - spec/unit/configuration/searchd_spec.rb
102
+ - spec/unit/configuration/source_spec.rb
103
+ - spec/unit/configuration/sql_source_spec.rb
104
+ - spec/unit/configuration/xml_source_spec.rb
105
+ - spec/unit/configuration_spec.rb
106
+ - spec/unit/filter_spec.rb
107
+ - spec/unit/message_spec.rb
108
+ - spec/unit/response_spec.rb
109
+ - spec/unit/riddle_spec.rb
67
110
  has_rdoc: true
68
111
  homepage: http://riddle.freelancing-gods.com
69
112
  licenses: []
@@ -74,21 +117,27 @@ rdoc_options:
74
117
  require_paths:
75
118
  - lib
76
119
  required_ruby_version: !ruby/object:Gem::Requirement
120
+ none: false
77
121
  requirements:
78
122
  - - ">="
79
123
  - !ruby/object:Gem::Version
124
+ hash: 3
125
+ segments:
126
+ - 0
80
127
  version: "0"
81
- version:
82
128
  required_rubygems_version: !ruby/object:Gem::Requirement
129
+ none: false
83
130
  requirements:
84
131
  - - ">="
85
132
  - !ruby/object:Gem::Version
133
+ hash: 3
134
+ segments:
135
+ - 0
86
136
  version: "0"
87
- version:
88
137
  requirements: []
89
138
 
90
139
  rubyforge_project:
91
- rubygems_version: 1.3.5
140
+ rubygems_version: 1.3.7
92
141
  signing_key:
93
142
  specification_version: 3
94
143
  summary: An API for Sphinx, written in and for Ruby.