flying-sphinx 0.6.0 → 0.6.1
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/HISTORY +5 -0
- data/README.textile +1 -0
- data/flying-sphinx.gemspec +4 -4
- data/lib/flying_sphinx/configuration.rb +19 -19
- data/lib/flying_sphinx/version.rb +1 -1
- data/spec/specs/configuration_spec.rb +40 -40
- metadata +124 -50
data/HISTORY
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
0.6.1 - 4th November 2011
|
2
|
+
* Adding Riddle dependency requirement.
|
3
|
+
* Updating indexes (index plural) references to indices.
|
4
|
+
* Updating faraday_middleware version requirement, to play nicely with OmniAuth (Paolo Perrotta)
|
5
|
+
|
1
6
|
0.6.0 - 31st July 2011
|
2
7
|
* Version in a separate file.
|
3
8
|
* Support for all file-based Sphinx settings: stopwords, wordforms, exceptions, and mysql ssl settings for SQL sources.
|
data/README.textile
CHANGED
@@ -32,6 +32,7 @@ In the meantime, please keep in mind the following:
|
|
32
32
|
h2. Contributors
|
33
33
|
|
34
34
|
* "Josh Kalderimis":http://blog.cookiestack.com/ for switching the API calls to Faraday, improving the specs, a ton of debugging, and encouraging a versioned API.
|
35
|
+
* "Paolo Perrotta":http://ducktypo.blogspot.com/ for updating dependencies for faraday_middleware.
|
35
36
|
|
36
37
|
h2. Licence
|
37
38
|
|
data/flying-sphinx.gemspec
CHANGED
@@ -19,12 +19,12 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.rubygems_version = %q{1.3.7}
|
20
20
|
|
21
21
|
s.add_runtime_dependency 'thinking-sphinx', ['>= 0']
|
22
|
+
s.add_runtime_dependency 'riddle', ['>= 1.5.0']
|
22
23
|
s.add_runtime_dependency 'net-ssh', ['>= 2.0.23']
|
23
24
|
s.add_runtime_dependency 'multi_json', ['~> 1.0.1']
|
24
|
-
s.add_runtime_dependency '
|
25
|
-
s.add_runtime_dependency 'faraday_middleware', ['~> 0.6.3']
|
25
|
+
s.add_runtime_dependency 'faraday_middleware', ['~> 0.7.0']
|
26
26
|
s.add_runtime_dependency 'rash', ['~> 0.3.0']
|
27
|
-
|
27
|
+
|
28
28
|
s.add_development_dependency 'rake', ['0.8.7']
|
29
29
|
s.add_development_dependency 'yajl-ruby', ['~> 0.8.2']
|
30
30
|
s.add_development_dependency 'rspec', ['~> 2.5.0']
|
@@ -32,7 +32,7 @@ Gem::Specification.new do |s|
|
|
32
32
|
s.add_development_dependency 'fakeweb', ['~> 1.3.0']
|
33
33
|
s.add_development_dependency 'fakeweb-matcher', ['~> 1.2.2']
|
34
34
|
s.add_development_dependency 'delayed_job', ['~> 2.1.4']
|
35
|
-
|
35
|
+
|
36
36
|
s.post_install_message = <<-MESSAGE
|
37
37
|
If you're upgrading, you should rebuild your Sphinx setup when deploying:
|
38
38
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
class FlyingSphinx::Configuration
|
2
2
|
attr_reader :identifier, :api_key, :host, :port, :database_port, :mem_limit
|
3
|
-
|
3
|
+
|
4
4
|
FileIndexSettings = [:stopwords, :wordforms, :exceptions]
|
5
5
|
FileSourceSettings = [:mysql_ssl_cert, :mysql_ssl_key, :mysql_ssl_ca]
|
6
6
|
FileSettings = FileIndexSettings + FileSourceSettings
|
@@ -24,7 +24,7 @@ class FlyingSphinx::Configuration
|
|
24
24
|
|
25
25
|
riddle.render
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
def file_setting_pairs(setting)
|
29
29
|
@file_setting_pairs ||= {}
|
30
30
|
@file_setting_pairs[setting] ||= begin
|
@@ -43,7 +43,7 @@ class FlyingSphinx::Configuration
|
|
43
43
|
def stop_sphinx
|
44
44
|
api.post('stop')
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
def client_key
|
48
48
|
"#{identifier}:#{api_key}"
|
49
49
|
end
|
@@ -53,7 +53,7 @@ class FlyingSphinx::Configuration
|
|
53
53
|
puts "#{action.created_at} #{action.name}"
|
54
54
|
end
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
57
|
private
|
58
58
|
|
59
59
|
def set_from_server
|
@@ -106,7 +106,7 @@ class FlyingSphinx::Configuration
|
|
106
106
|
def set_searchd_settings
|
107
107
|
thinking_sphinx.port = port
|
108
108
|
thinking_sphinx.address = host
|
109
|
-
|
109
|
+
|
110
110
|
if riddle.searchd.respond_to?(:client_key)
|
111
111
|
riddle.searchd.client_key = client_key
|
112
112
|
end
|
@@ -118,8 +118,8 @@ class FlyingSphinx::Configuration
|
|
118
118
|
|
119
119
|
def set_database_settings
|
120
120
|
return unless FlyingSphinx::Tunnel.required?
|
121
|
-
|
122
|
-
riddle.
|
121
|
+
|
122
|
+
riddle.indices.each do |index|
|
123
123
|
next unless index.respond_to?(:sources)
|
124
124
|
|
125
125
|
index.sources.each do |source|
|
@@ -128,19 +128,19 @@ class FlyingSphinx::Configuration
|
|
128
128
|
end
|
129
129
|
end
|
130
130
|
end
|
131
|
-
|
131
|
+
|
132
132
|
def set_file_settings
|
133
|
-
riddle.
|
133
|
+
riddle.indices.each do |index|
|
134
134
|
set_file_settings_for index, FileIndexSettings
|
135
|
-
|
135
|
+
|
136
136
|
next unless index.respond_to?(:sources)
|
137
|
-
|
137
|
+
|
138
138
|
index.sources.each do |source|
|
139
139
|
set_file_settings_for source, FileSourceSettings
|
140
140
|
end
|
141
141
|
end
|
142
142
|
end
|
143
|
-
|
143
|
+
|
144
144
|
def set_file_settings_for(object, settings)
|
145
145
|
settings.each do |setting|
|
146
146
|
next unless object.respond_to?(setting)
|
@@ -148,14 +148,14 @@ class FlyingSphinx::Configuration
|
|
148
148
|
file_setting_pairs(setting)[object.send(setting)]
|
149
149
|
end
|
150
150
|
end
|
151
|
-
|
151
|
+
|
152
152
|
def file_setting_sources(setting)
|
153
153
|
@file_setting_sources ||= {}
|
154
|
-
@file_setting_sources[setting] ||= riddle.
|
154
|
+
@file_setting_sources[setting] ||= riddle.indices.collect { |index|
|
155
155
|
file_settings_for_index(index, setting)
|
156
156
|
}.flatten.compact.uniq
|
157
157
|
end
|
158
|
-
|
158
|
+
|
159
159
|
def file_settings_for_index(index, setting)
|
160
160
|
settings = Array(file_setting_for(index, setting))
|
161
161
|
settings += index.sources.collect { |source|
|
@@ -163,11 +163,11 @@ class FlyingSphinx::Configuration
|
|
163
163
|
} if index.respond_to?(:sources)
|
164
164
|
settings
|
165
165
|
end
|
166
|
-
|
166
|
+
|
167
167
|
def file_setting_for(object, setting)
|
168
168
|
object.respond_to?(setting) ? object.send(setting) : nil
|
169
169
|
end
|
170
|
-
|
170
|
+
|
171
171
|
def identifier_from_env
|
172
172
|
ENV['FLYING_SPHINX_IDENTIFIER']
|
173
173
|
end
|
@@ -175,11 +175,11 @@ class FlyingSphinx::Configuration
|
|
175
175
|
def api_key_from_env
|
176
176
|
ENV['FLYING_SPHINX_API_KEY']
|
177
177
|
end
|
178
|
-
|
178
|
+
|
179
179
|
def host_from_env
|
180
180
|
ENV['FLYING_SPHINX_HOST']
|
181
181
|
end
|
182
|
-
|
182
|
+
|
183
183
|
def port_from_env
|
184
184
|
ENV['FLYING_SPHINX_PORT']
|
185
185
|
end
|
@@ -3,7 +3,7 @@ require 'multi_json'
|
|
3
3
|
|
4
4
|
describe FlyingSphinx::Configuration do
|
5
5
|
let(:api_server) { 'https://flying-sphinx.com/api/my' }
|
6
|
-
|
6
|
+
|
7
7
|
before :each do
|
8
8
|
FakeWeb.register_uri(:get, "#{api_server}/app",
|
9
9
|
:body => MultiJson.encode(
|
@@ -13,67 +13,67 @@ describe FlyingSphinx::Configuration do
|
|
13
13
|
)
|
14
14
|
)
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
describe '#initialize' do
|
18
18
|
let(:api_key) { 'foo-bar-baz' }
|
19
19
|
let(:identifier) { 'app@heroku.com' }
|
20
20
|
let(:config) { FlyingSphinx::Configuration.new identifier, api_key }
|
21
|
-
|
21
|
+
|
22
22
|
it "requests details from the server with the given API key" do
|
23
23
|
config
|
24
24
|
FakeWeb.should have_requested :get, "#{api_server}/app"
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
it "sets the host from the server information" do
|
28
28
|
config.host.should == 'foo.bar.com'
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
it "sets the port from the server information" do
|
32
32
|
config.port.should == 9319
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
it "sets the port from the server information" do
|
36
36
|
config.database_port.should == 10001
|
37
37
|
end
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
describe '#file_setting_pairs' do
|
41
41
|
let(:config) { FlyingSphinx::Configuration.new 'ident' }
|
42
42
|
let(:riddle) { ThinkingSphinx::Configuration.instance.configuration }
|
43
43
|
let(:base_path) { '/mnt/sphinx/flying-sphinx/ident' }
|
44
|
-
|
44
|
+
|
45
45
|
context 'index setting' do
|
46
46
|
it "pairs each local file path to a server file path" do
|
47
|
-
riddle.stub! :
|
47
|
+
riddle.stub! :indices => [
|
48
48
|
double('index', :wordforms => '/path/to/wordforms-foo.txt',
|
49
49
|
:sources => [double('source'), double('source')]),
|
50
50
|
double('index', :wordforms => '/path/to/wordforms-bar.txt',
|
51
51
|
:sources => [double('source'), double('source')])
|
52
52
|
]
|
53
|
-
|
53
|
+
|
54
54
|
config.file_setting_pairs(:wordforms).should == {
|
55
55
|
'/path/to/wordforms-foo.txt' => "#{base_path}/wordforms/0.txt",
|
56
56
|
'/path/to/wordforms-bar.txt' => "#{base_path}/wordforms/1.txt"
|
57
57
|
}
|
58
58
|
end
|
59
|
-
|
59
|
+
|
60
60
|
it "doesn't duplicate multiple references to the same local file" do
|
61
|
-
riddle.stub! :
|
61
|
+
riddle.stub! :indices => [
|
62
62
|
double('index', :wordforms => '/path/to/wordforms-foo.txt',
|
63
63
|
:sources => [double('source'), double('source')]),
|
64
64
|
double('index', :wordforms => '/path/to/wordforms-foo.txt',
|
65
65
|
:sources => [double('source'), double('source')])
|
66
66
|
]
|
67
|
-
|
67
|
+
|
68
68
|
config.file_setting_pairs(:wordforms).should == {
|
69
69
|
'/path/to/wordforms-foo.txt' => "#{base_path}/wordforms/0.txt"
|
70
70
|
}
|
71
71
|
end
|
72
72
|
end
|
73
|
-
|
73
|
+
|
74
74
|
context 'source setting' do
|
75
75
|
it "pairs each local file path to a server file path" do
|
76
|
-
riddle.stub! :
|
76
|
+
riddle.stub! :indices => [
|
77
77
|
double('index', :sources => [
|
78
78
|
double('source', :mysql_ssl_cert => '/path/to/cert-foo.txt'),
|
79
79
|
double('source', :mysql_ssl_cert => '/path/to/cert-bar.txt')
|
@@ -83,16 +83,16 @@ describe FlyingSphinx::Configuration do
|
|
83
83
|
double('source', :mysql_ssl_cert => nil)
|
84
84
|
])
|
85
85
|
]
|
86
|
-
|
86
|
+
|
87
87
|
config.file_setting_pairs(:mysql_ssl_cert).should == {
|
88
88
|
'/path/to/cert-foo.txt' => "#{base_path}/mysql_ssl_cert/0.txt",
|
89
89
|
'/path/to/cert-bar.txt' => "#{base_path}/mysql_ssl_cert/1.txt",
|
90
90
|
'/path/to/cert-baz.txt' => "#{base_path}/mysql_ssl_cert/2.txt"
|
91
91
|
}
|
92
92
|
end
|
93
|
-
|
93
|
+
|
94
94
|
it "doesn't duplicate multiple references to the same local file" do
|
95
|
-
riddle.stub! :
|
95
|
+
riddle.stub! :indices => [
|
96
96
|
double('index', :sources => [
|
97
97
|
double('source', :mysql_ssl_cert => '/path/to/cert-foo.txt'),
|
98
98
|
double('source', :mysql_ssl_cert => '/path/to/cert-bar.txt')
|
@@ -102,7 +102,7 @@ describe FlyingSphinx::Configuration do
|
|
102
102
|
double('source', :mysql_ssl_cert => nil)
|
103
103
|
])
|
104
104
|
]
|
105
|
-
|
105
|
+
|
106
106
|
config.file_setting_pairs(:mysql_ssl_cert).should == {
|
107
107
|
'/path/to/cert-foo.txt' => "#{base_path}/mysql_ssl_cert/0.txt",
|
108
108
|
'/path/to/cert-bar.txt' => "#{base_path}/mysql_ssl_cert/1.txt"
|
@@ -110,13 +110,13 @@ describe FlyingSphinx::Configuration do
|
|
110
110
|
end
|
111
111
|
end
|
112
112
|
end
|
113
|
-
|
113
|
+
|
114
114
|
describe '#sphinx_configuration' do
|
115
115
|
let(:config) { FlyingSphinx::Configuration.new 'ident' }
|
116
116
|
let(:riddle) { double('riddle configuration').as_null_object }
|
117
117
|
let(:base_path) { '/mnt/sphinx/flying-sphinx/ident' }
|
118
118
|
let(:source) { double('source') }
|
119
|
-
|
119
|
+
|
120
120
|
before :each do
|
121
121
|
ThinkingSphinx::Configuration.instance.stub!(
|
122
122
|
:generate => nil,
|
@@ -124,40 +124,40 @@ describe FlyingSphinx::Configuration do
|
|
124
124
|
)
|
125
125
|
FlyingSphinx::Tunnel.stub! :required? => false
|
126
126
|
end
|
127
|
-
|
127
|
+
|
128
128
|
it "sets database settings to match Flying Sphinx port forward" do
|
129
129
|
FlyingSphinx::Tunnel.stub! :required? => true
|
130
|
-
|
131
|
-
riddle.stub! :
|
130
|
+
|
131
|
+
riddle.stub! :indices => [
|
132
132
|
double('distributed index'),
|
133
133
|
double('index', :sources => [source])
|
134
134
|
]
|
135
|
-
|
135
|
+
|
136
136
|
source.should_receive(:sql_host=).with('127.0.0.1')
|
137
137
|
source.should_receive(:sql_port=).with(10001)
|
138
|
-
|
138
|
+
|
139
139
|
config.sphinx_configuration
|
140
140
|
end
|
141
|
-
|
141
|
+
|
142
142
|
it "sets file path to match server directories for index settings" do
|
143
|
-
riddle.stub! :
|
143
|
+
riddle.stub! :indices => [
|
144
144
|
double('index', :wordforms => '/path/to/wordforms-foo.txt',
|
145
145
|
:sources => [double('source'), double('source')]),
|
146
146
|
double('index', :wordforms => '/path/to/wordforms-bar.txt',
|
147
147
|
:sources => [double('source'), double('source')]),
|
148
148
|
double('distributed index')
|
149
149
|
]
|
150
|
-
|
151
|
-
riddle.
|
150
|
+
|
151
|
+
riddle.indices[0].should_receive(:wordforms=).
|
152
152
|
with("#{base_path}/wordforms/0.txt")
|
153
|
-
riddle.
|
153
|
+
riddle.indices[1].should_receive(:wordforms=).
|
154
154
|
with("#{base_path}/wordforms/1.txt")
|
155
|
-
|
155
|
+
|
156
156
|
config.sphinx_configuration
|
157
157
|
end
|
158
|
-
|
158
|
+
|
159
159
|
it "sets file path to match server directories for source settings" do
|
160
|
-
riddle.stub! :
|
160
|
+
riddle.stub! :indices => [
|
161
161
|
double('index', :sources => [
|
162
162
|
double('source', :mysql_ssl_cert => '/path/to/cert-foo.txt'),
|
163
163
|
double('source', :mysql_ssl_cert => '/path/to/cert-bar.txt')
|
@@ -168,16 +168,16 @@ describe FlyingSphinx::Configuration do
|
|
168
168
|
]),
|
169
169
|
double('distributed index')
|
170
170
|
]
|
171
|
-
|
172
|
-
riddle.
|
171
|
+
|
172
|
+
riddle.indices[0].sources[0].should_receive(:mysql_ssl_cert=).
|
173
173
|
with("#{base_path}/mysql_ssl_cert/0.txt")
|
174
|
-
riddle.
|
174
|
+
riddle.indices[0].sources[1].should_receive(:mysql_ssl_cert=).
|
175
175
|
with("#{base_path}/mysql_ssl_cert/1.txt")
|
176
|
-
riddle.
|
176
|
+
riddle.indices[1].sources[0].should_receive(:mysql_ssl_cert=).
|
177
177
|
with("#{base_path}/mysql_ssl_cert/2.txt")
|
178
|
-
riddle.
|
178
|
+
riddle.indices[1].sources[1].should_receive(:mysql_ssl_cert=).
|
179
179
|
with(nil)
|
180
|
-
|
180
|
+
|
181
181
|
config.sphinx_configuration
|
182
182
|
end
|
183
183
|
end
|
metadata
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flying-sphinx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 5
|
4
5
|
prerelease:
|
5
|
-
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 6
|
9
|
+
- 1
|
10
|
+
version: 0.6.1
|
6
11
|
platform: ruby
|
7
12
|
authors:
|
8
13
|
- Pat Allan
|
@@ -10,152 +15,215 @@ autorequire:
|
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
17
|
|
13
|
-
date: 2011-
|
18
|
+
date: 2011-11-04 00:00:00 +02:00
|
14
19
|
default_executable:
|
15
20
|
dependencies:
|
16
21
|
- !ruby/object:Gem::Dependency
|
17
22
|
name: thinking-sphinx
|
18
|
-
|
19
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
23
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
20
24
|
none: false
|
21
25
|
requirements:
|
22
26
|
- - ">="
|
23
27
|
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
24
31
|
version: "0"
|
25
32
|
type: :runtime
|
26
|
-
version_requirements: *id001
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: net-ssh
|
29
33
|
prerelease: false
|
30
|
-
requirement:
|
34
|
+
requirement: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: riddle
|
37
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
31
38
|
none: false
|
32
39
|
requirements:
|
33
40
|
- - ">="
|
34
41
|
- !ruby/object:Gem::Version
|
35
|
-
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 1
|
45
|
+
- 5
|
46
|
+
- 0
|
47
|
+
version: 1.5.0
|
36
48
|
type: :runtime
|
37
|
-
version_requirements: *id002
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: multi_json
|
40
49
|
prerelease: false
|
41
|
-
requirement:
|
50
|
+
requirement: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: net-ssh
|
53
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
42
54
|
none: false
|
43
55
|
requirements:
|
44
|
-
- -
|
56
|
+
- - ">="
|
45
57
|
- !ruby/object:Gem::Version
|
46
|
-
|
58
|
+
hash: 33
|
59
|
+
segments:
|
60
|
+
- 2
|
61
|
+
- 0
|
62
|
+
- 23
|
63
|
+
version: 2.0.23
|
47
64
|
type: :runtime
|
48
|
-
version_requirements: *id003
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: faraday
|
51
65
|
prerelease: false
|
52
|
-
requirement:
|
66
|
+
requirement: *id003
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: multi_json
|
69
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
53
70
|
none: false
|
54
71
|
requirements:
|
55
72
|
- - ~>
|
56
73
|
- !ruby/object:Gem::Version
|
57
|
-
|
74
|
+
hash: 21
|
75
|
+
segments:
|
76
|
+
- 1
|
77
|
+
- 0
|
78
|
+
- 1
|
79
|
+
version: 1.0.1
|
58
80
|
type: :runtime
|
59
|
-
|
81
|
+
prerelease: false
|
82
|
+
requirement: *id004
|
60
83
|
- !ruby/object:Gem::Dependency
|
61
84
|
name: faraday_middleware
|
62
|
-
|
63
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
85
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
64
86
|
none: false
|
65
87
|
requirements:
|
66
88
|
- - ~>
|
67
89
|
- !ruby/object:Gem::Version
|
68
|
-
|
90
|
+
hash: 3
|
91
|
+
segments:
|
92
|
+
- 0
|
93
|
+
- 7
|
94
|
+
- 0
|
95
|
+
version: 0.7.0
|
69
96
|
type: :runtime
|
70
|
-
|
97
|
+
prerelease: false
|
98
|
+
requirement: *id005
|
71
99
|
- !ruby/object:Gem::Dependency
|
72
100
|
name: rash
|
73
|
-
|
74
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
101
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
75
102
|
none: false
|
76
103
|
requirements:
|
77
104
|
- - ~>
|
78
105
|
- !ruby/object:Gem::Version
|
106
|
+
hash: 19
|
107
|
+
segments:
|
108
|
+
- 0
|
109
|
+
- 3
|
110
|
+
- 0
|
79
111
|
version: 0.3.0
|
80
112
|
type: :runtime
|
81
|
-
|
113
|
+
prerelease: false
|
114
|
+
requirement: *id006
|
82
115
|
- !ruby/object:Gem::Dependency
|
83
116
|
name: rake
|
84
|
-
|
85
|
-
requirement: &id007 !ruby/object:Gem::Requirement
|
117
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
86
118
|
none: false
|
87
119
|
requirements:
|
88
120
|
- - "="
|
89
121
|
- !ruby/object:Gem::Version
|
122
|
+
hash: 49
|
123
|
+
segments:
|
124
|
+
- 0
|
125
|
+
- 8
|
126
|
+
- 7
|
90
127
|
version: 0.8.7
|
91
128
|
type: :development
|
92
|
-
|
129
|
+
prerelease: false
|
130
|
+
requirement: *id007
|
93
131
|
- !ruby/object:Gem::Dependency
|
94
132
|
name: yajl-ruby
|
95
|
-
|
96
|
-
requirement: &id008 !ruby/object:Gem::Requirement
|
133
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
97
134
|
none: false
|
98
135
|
requirements:
|
99
136
|
- - ~>
|
100
137
|
- !ruby/object:Gem::Version
|
138
|
+
hash: 59
|
139
|
+
segments:
|
140
|
+
- 0
|
141
|
+
- 8
|
142
|
+
- 2
|
101
143
|
version: 0.8.2
|
102
144
|
type: :development
|
103
|
-
|
145
|
+
prerelease: false
|
146
|
+
requirement: *id008
|
104
147
|
- !ruby/object:Gem::Dependency
|
105
148
|
name: rspec
|
106
|
-
|
107
|
-
requirement: &id009 !ruby/object:Gem::Requirement
|
149
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
108
150
|
none: false
|
109
151
|
requirements:
|
110
152
|
- - ~>
|
111
153
|
- !ruby/object:Gem::Version
|
154
|
+
hash: 27
|
155
|
+
segments:
|
156
|
+
- 2
|
157
|
+
- 5
|
158
|
+
- 0
|
112
159
|
version: 2.5.0
|
113
160
|
type: :development
|
114
|
-
|
161
|
+
prerelease: false
|
162
|
+
requirement: *id009
|
115
163
|
- !ruby/object:Gem::Dependency
|
116
164
|
name: rcov
|
117
|
-
|
118
|
-
requirement: &id010 !ruby/object:Gem::Requirement
|
165
|
+
version_requirements: &id010 !ruby/object:Gem::Requirement
|
119
166
|
none: false
|
120
167
|
requirements:
|
121
168
|
- - ~>
|
122
169
|
- !ruby/object:Gem::Version
|
170
|
+
hash: 41
|
171
|
+
segments:
|
172
|
+
- 0
|
173
|
+
- 9
|
174
|
+
- 9
|
123
175
|
version: 0.9.9
|
124
176
|
type: :development
|
125
|
-
|
177
|
+
prerelease: false
|
178
|
+
requirement: *id010
|
126
179
|
- !ruby/object:Gem::Dependency
|
127
180
|
name: fakeweb
|
128
|
-
|
129
|
-
requirement: &id011 !ruby/object:Gem::Requirement
|
181
|
+
version_requirements: &id011 !ruby/object:Gem::Requirement
|
130
182
|
none: false
|
131
183
|
requirements:
|
132
184
|
- - ~>
|
133
185
|
- !ruby/object:Gem::Version
|
186
|
+
hash: 27
|
187
|
+
segments:
|
188
|
+
- 1
|
189
|
+
- 3
|
190
|
+
- 0
|
134
191
|
version: 1.3.0
|
135
192
|
type: :development
|
136
|
-
|
193
|
+
prerelease: false
|
194
|
+
requirement: *id011
|
137
195
|
- !ruby/object:Gem::Dependency
|
138
196
|
name: fakeweb-matcher
|
139
|
-
|
140
|
-
requirement: &id012 !ruby/object:Gem::Requirement
|
197
|
+
version_requirements: &id012 !ruby/object:Gem::Requirement
|
141
198
|
none: false
|
142
199
|
requirements:
|
143
200
|
- - ~>
|
144
201
|
- !ruby/object:Gem::Version
|
202
|
+
hash: 27
|
203
|
+
segments:
|
204
|
+
- 1
|
205
|
+
- 2
|
206
|
+
- 2
|
145
207
|
version: 1.2.2
|
146
208
|
type: :development
|
147
|
-
|
209
|
+
prerelease: false
|
210
|
+
requirement: *id012
|
148
211
|
- !ruby/object:Gem::Dependency
|
149
212
|
name: delayed_job
|
150
|
-
|
151
|
-
requirement: &id013 !ruby/object:Gem::Requirement
|
213
|
+
version_requirements: &id013 !ruby/object:Gem::Requirement
|
152
214
|
none: false
|
153
215
|
requirements:
|
154
216
|
- - ~>
|
155
217
|
- !ruby/object:Gem::Version
|
218
|
+
hash: 3
|
219
|
+
segments:
|
220
|
+
- 2
|
221
|
+
- 1
|
222
|
+
- 4
|
156
223
|
version: 2.1.4
|
157
224
|
type: :development
|
158
|
-
|
225
|
+
prerelease: false
|
226
|
+
requirement: *id013
|
159
227
|
description: Hooks Thinking Sphinx into the Flying Sphinx service
|
160
228
|
email: pat@freelancing-gods.com
|
161
229
|
executables: []
|
@@ -211,17 +279,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
211
279
|
requirements:
|
212
280
|
- - ">="
|
213
281
|
- !ruby/object:Gem::Version
|
282
|
+
hash: 3
|
283
|
+
segments:
|
284
|
+
- 0
|
214
285
|
version: "0"
|
215
286
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
216
287
|
none: false
|
217
288
|
requirements:
|
218
289
|
- - ">="
|
219
290
|
- !ruby/object:Gem::Version
|
291
|
+
hash: 3
|
292
|
+
segments:
|
293
|
+
- 0
|
220
294
|
version: "0"
|
221
295
|
requirements: []
|
222
296
|
|
223
297
|
rubyforge_project:
|
224
|
-
rubygems_version: 1.
|
298
|
+
rubygems_version: 1.4.2
|
225
299
|
signing_key:
|
226
300
|
specification_version: 3
|
227
301
|
summary: Sphinx in the Cloud
|