ts-resque-delta 1.2.4 → 2.0.0
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.
- checksums.yaml +7 -0
- data/.gitignore +1 -1
- data/.travis.yml +14 -14
- data/Appraisals +4 -6
- data/Gemfile +1 -1
- data/README.markdown +31 -39
- data/Rakefile +6 -13
- data/gemfiles/binary.gemfile +7 -0
- data/gemfiles/sphinxql.gemfile +7 -0
- data/lib/thinking_sphinx/deltas/resque_delta.rb +66 -76
- data/lib/thinking_sphinx/deltas/resque_delta/delta_job.rb +1 -113
- data/lib/thinking_sphinx/deltas/resque_delta/flag_as_deleted_job.rb +7 -0
- data/lib/ts-resque-delta.rb +0 -2
- data/spec/acceptance/resque_deltas_spec.rb +50 -0
- data/spec/acceptance/spec_helper.rb +4 -0
- data/spec/acceptance/support/database_cleaner.rb +11 -0
- data/spec/acceptance/support/sphinx_controller.rb +61 -0
- data/spec/acceptance/support/sphinx_helpers.rb +36 -0
- data/spec/internal/.gitignore +2 -0
- data/spec/internal/app/indices/book_index.rb +3 -0
- data/spec/internal/app/models/book.rb +7 -0
- data/spec/internal/config/database.yml +5 -0
- data/spec/internal/db/schema.rb +10 -0
- data/spec/internal/log/.gitignore +1 -0
- data/spec/spec_helper.rb +16 -12
- data/spec/thinking_sphinx/deltas/resque_delta/delta_job_spec.rb +11 -155
- data/spec/thinking_sphinx/deltas/resque_delta_spec.rb +3 -166
- data/ts-resque-delta.gemspec +19 -28
- metadata +90 -230
- data/Guardfile +0 -17
- data/features/resque_deltas.feature +0 -62
- data/features/smart_indexing.feature +0 -43
- data/features/step_definitions/common_steps.rb +0 -76
- data/features/step_definitions/resque_delta_steps.rb +0 -33
- data/features/step_definitions/smart_indexing_steps.rb +0 -3
- data/features/support/env.rb +0 -41
- data/features/thinking_sphinx/database.example.yml +0 -4
- data/features/thinking_sphinx/db/migrations/create_delayed_betas.rb +0 -4
- data/features/thinking_sphinx/models/delayed_beta.rb +0 -6
- data/gemfiles/activerecord2.gemfile +0 -8
- data/gemfiles/activerecord2.gemfile.lock +0 -114
- data/gemfiles/activerecord3.gemfile +0 -8
- data/gemfiles/activerecord3.gemfile.lock +0 -123
- data/lib/flying_sphinx/resque_delta.rb +0 -35
- data/lib/flying_sphinx/resque_delta/delta_job.rb +0 -14
- data/lib/flying_sphinx/resque_delta/flag_as_deleted_job.rb +0 -7
- data/lib/thinking_sphinx/deltas/resque_delta/core_index.rb +0 -116
- data/lib/thinking_sphinx/deltas/resque_delta/flag_as_deleted_set.rb +0 -59
- data/lib/thinking_sphinx/deltas/resque_delta/index_utils.rb +0 -47
- data/lib/thinking_sphinx/deltas/resque_delta/railtie.rb +0 -8
- data/lib/thinking_sphinx/deltas/resque_delta/tasks.rb +0 -38
- data/lib/thinking_sphinx/deltas/resque_delta/version.rb +0 -7
- data/spec/flying_sphinx/resque_delta/delta_job_spec.rb +0 -32
- data/spec/flying_sphinx/resque_delta/flag_as_deleted_job_spec.rb +0 -23
- data/spec/flying_sphinx/resque_delta_spec.rb +0 -130
- data/spec/thinking_sphinx/deltas/resque_delta/core_index_spec.rb +0 -210
- data/spec/thinking_sphinx/deltas/resque_delta/flag_as_deleted_set_spec.rb +0 -126
- data/spec/thinking_sphinx/deltas/resque_delta/index_utils_spec.rb +0 -67
data/Guardfile
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
guard 'bundler' do
|
2
|
-
watch('Gemfile')
|
3
|
-
watch(/^.+\.gemspec/)
|
4
|
-
end
|
5
|
-
|
6
|
-
guard 'rspec', :version => 2, :cli => "-c --format progress", :all_on_start => false do
|
7
|
-
watch(%r{^spec/.+_spec\.rb$})
|
8
|
-
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
9
|
-
watch('spec/spec_helper.rb') { "spec" }
|
10
|
-
end
|
11
|
-
|
12
|
-
guard 'cucumber', :all_on_start => false do
|
13
|
-
watch(%r{^features/.+\.feature$})
|
14
|
-
watch(%r{^features/support/.+$}) { 'features' }
|
15
|
-
watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
|
16
|
-
end
|
17
|
-
|
@@ -1,62 +0,0 @@
|
|
1
|
-
Feature: Resque Delta Indexing
|
2
|
-
In order to have delta indexing on frequently-updated sites
|
3
|
-
Developers
|
4
|
-
Should be able to use Resque to handle delta indices to lower system load
|
5
|
-
|
6
|
-
Background:
|
7
|
-
Given Sphinx is running
|
8
|
-
And I am searching on delayed betas
|
9
|
-
And I have data and it has been indexed
|
10
|
-
|
11
|
-
Scenario: Delta Index should not fire automatically
|
12
|
-
When I search for one
|
13
|
-
Then I should get 1 result
|
14
|
-
|
15
|
-
When I change the name of delayed beta one to eleven
|
16
|
-
And I wait for Sphinx to catch up
|
17
|
-
And I search for one
|
18
|
-
Then I should get 1 result
|
19
|
-
|
20
|
-
When I search for eleven
|
21
|
-
Then I should get 0 results
|
22
|
-
|
23
|
-
Scenario: Delta Index should fire when jobs are run
|
24
|
-
When I search for one
|
25
|
-
Then I should get 1 result
|
26
|
-
|
27
|
-
When I change the name of delayed beta two to twelve
|
28
|
-
And I wait for Sphinx to catch up
|
29
|
-
And I search for twelve
|
30
|
-
Then I should get 0 results
|
31
|
-
|
32
|
-
When I run the delayed jobs
|
33
|
-
And I wait for Sphinx to catch up
|
34
|
-
And I search for twelve
|
35
|
-
Then I should get 1 result
|
36
|
-
|
37
|
-
When I search for two
|
38
|
-
Then I should get 0 results
|
39
|
-
|
40
|
-
Scenario: ensuring that duplicate jobs are deleted
|
41
|
-
When I change the name of delayed beta two to fifty
|
42
|
-
And I change the name of delayed beta five to twelve
|
43
|
-
And I change the name of delayed beta one to fifteen
|
44
|
-
And I change the name of delayed beta six to twenty
|
45
|
-
And I run one delayed job
|
46
|
-
Then there should be no more DeltaJobs on the Resque queue
|
47
|
-
|
48
|
-
When I run the delayed jobs
|
49
|
-
And I wait for Sphinx to catch up
|
50
|
-
And I search for fifty
|
51
|
-
Then I should get 1 result
|
52
|
-
|
53
|
-
When I search for two
|
54
|
-
Then I should get 0 results
|
55
|
-
|
56
|
-
Scenario: canceling jobs
|
57
|
-
When I change the name of delayed beta two to fifty
|
58
|
-
And I cancel the jobs
|
59
|
-
And I run the delayed jobs
|
60
|
-
And I wait for Sphinx to catch up
|
61
|
-
And I search for fifty
|
62
|
-
Then I should get 0 results
|
@@ -1,43 +0,0 @@
|
|
1
|
-
Feature: Smart Indexing
|
2
|
-
In order to have core indexing that works well with resque delta indexing
|
3
|
-
Developers
|
4
|
-
Should be able to use smart index to update core indices
|
5
|
-
|
6
|
-
Background:
|
7
|
-
Given Sphinx is running
|
8
|
-
And I am searching on delayed betas
|
9
|
-
And I have data
|
10
|
-
|
11
|
-
Scenario: Smart indexing should update core indices
|
12
|
-
When I run the smart indexer
|
13
|
-
And I wait for Sphinx to catch up
|
14
|
-
And I search for one
|
15
|
-
Then I should get 1 result
|
16
|
-
|
17
|
-
Scenario: Smart indexing should reset the delta index
|
18
|
-
Given I have indexed
|
19
|
-
When I change the name of delayed beta one to eleven
|
20
|
-
And I run the delayed jobs
|
21
|
-
And I wait for Sphinx to catch up
|
22
|
-
|
23
|
-
When I change the name of delayed beta eleven to one
|
24
|
-
And I run the smart indexer
|
25
|
-
And I run the delayed jobs
|
26
|
-
And I wait for Sphinx to catch up
|
27
|
-
|
28
|
-
When I search for eleven
|
29
|
-
Then I should get 0 results
|
30
|
-
|
31
|
-
Scenario: Delta Index running after smart indexing should not hide records
|
32
|
-
When I run the smart indexer
|
33
|
-
And I run the delayed jobs
|
34
|
-
And I wait for Sphinx to catch up
|
35
|
-
|
36
|
-
When I search for two
|
37
|
-
Then I should get 1 result
|
38
|
-
|
39
|
-
Scenario: Smart index should remove existing delta jobs
|
40
|
-
When I run the smart indexer
|
41
|
-
And I run one delayed job
|
42
|
-
And I wait for Sphinx to catch up
|
43
|
-
Then there should be no more DeltaJobs on the Resque queue
|
@@ -1,76 +0,0 @@
|
|
1
|
-
Before do
|
2
|
-
$queries_executed = []
|
3
|
-
ThinkingSphinx::Deltas::ResqueDelta.clear!
|
4
|
-
@model = nil
|
5
|
-
@method = :search
|
6
|
-
@query = ""
|
7
|
-
@conditions = {}
|
8
|
-
@with = {}
|
9
|
-
@without = {}
|
10
|
-
@with_all = {}
|
11
|
-
@options = {}
|
12
|
-
@results = nil
|
13
|
-
end
|
14
|
-
|
15
|
-
Given "Sphinx is running" do
|
16
|
-
ThinkingSphinx::Configuration.instance.controller.should be_running
|
17
|
-
end
|
18
|
-
|
19
|
-
Given /^I am searching on (.+)$/ do |model|
|
20
|
-
@model = model.gsub(/\s/, '_').singularize.camelize.constantize
|
21
|
-
end
|
22
|
-
|
23
|
-
Given "I have data" do
|
24
|
-
DelayedBeta.create(:name => "one")
|
25
|
-
DelayedBeta.create(:name => "two")
|
26
|
-
DelayedBeta.create(:name => "three")
|
27
|
-
DelayedBeta.create(:name => "four")
|
28
|
-
DelayedBeta.create(:name => "five")
|
29
|
-
DelayedBeta.create(:name => "six")
|
30
|
-
DelayedBeta.create(:name => "seven")
|
31
|
-
DelayedBeta.create(:name => "eight")
|
32
|
-
DelayedBeta.create(:name => "nine")
|
33
|
-
DelayedBeta.create(:name => "ten")
|
34
|
-
end
|
35
|
-
|
36
|
-
Given "I have indexed" do
|
37
|
-
ThinkingSphinx::Deltas::ResqueDelta.clear!
|
38
|
-
ThinkingSphinx::Configuration.instance.controller.index
|
39
|
-
sleep(1.5)
|
40
|
-
end
|
41
|
-
|
42
|
-
Given "I have data and it has been indexed" do
|
43
|
-
step "I have data"
|
44
|
-
step "I have indexed"
|
45
|
-
end
|
46
|
-
|
47
|
-
When "I wait for Sphinx to catch up" do
|
48
|
-
sleep(0.5)
|
49
|
-
end
|
50
|
-
|
51
|
-
When /^I search for (\w+)$/ do |query|
|
52
|
-
@results = nil
|
53
|
-
@query = query
|
54
|
-
end
|
55
|
-
|
56
|
-
Then /^I should get (\d+) results?$/ do |count|
|
57
|
-
results.length.should == count.to_i
|
58
|
-
end
|
59
|
-
|
60
|
-
Then /^I debug$/ do
|
61
|
-
debugger
|
62
|
-
0
|
63
|
-
end
|
64
|
-
|
65
|
-
def results
|
66
|
-
@results ||= (@model || ThinkingSphinx).send(
|
67
|
-
@method,
|
68
|
-
@query,
|
69
|
-
@options.merge(
|
70
|
-
:conditions => @conditions,
|
71
|
-
:with => @with,
|
72
|
-
:without => @without,
|
73
|
-
:with_all => @with_all
|
74
|
-
)
|
75
|
-
)
|
76
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
When /^I run the delayed jobs$/ do
|
2
|
-
unless @resque_worker
|
3
|
-
@resque_worker = Resque::Worker.new("ts_delta")
|
4
|
-
@resque_worker.register_worker
|
5
|
-
end
|
6
|
-
while job = @resque_worker.reserve
|
7
|
-
@resque_worker.perform(job)
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
When /^I run one delayed job$/ do
|
12
|
-
unless @resque_worker
|
13
|
-
@resque_worker = Resque::Worker.new("ts_delta")
|
14
|
-
@resque_worker.register_worker
|
15
|
-
end
|
16
|
-
job = @resque_worker.reserve
|
17
|
-
@resque_worker.perform(job)
|
18
|
-
end
|
19
|
-
|
20
|
-
When /^I cancel the jobs$/ do
|
21
|
-
ThinkingSphinx::Deltas::ResqueDelta.clear!
|
22
|
-
end
|
23
|
-
|
24
|
-
When /^I change the name of delayed beta (\w+) to (\w+)$/ do |current, replacement|
|
25
|
-
DelayedBeta.find_by_name(current).update_attributes(:name => replacement)
|
26
|
-
end
|
27
|
-
|
28
|
-
Then /^there should be no more DeltaJobs on the Resque queue$/ do
|
29
|
-
job_classes = Resque.redis.lrange("queue:ts_delta", 0, -1).collect do |j|
|
30
|
-
Resque.decode(j)["class"]
|
31
|
-
end
|
32
|
-
job_classes.should_not include("ThinkingSphinx::Deltas::ResqueDelta::DeltaJob")
|
33
|
-
end
|
data/features/support/env.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
require 'cucumber'
|
2
|
-
require 'rspec/expectations'
|
3
|
-
require 'fileutils'
|
4
|
-
require 'active_record'
|
5
|
-
require 'mock_redis'
|
6
|
-
|
7
|
-
PROJECT_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
|
8
|
-
|
9
|
-
$:.unshift(File.join(PROJECT_ROOT, 'lib'))
|
10
|
-
$:.unshift(File.dirname(__FILE__))
|
11
|
-
|
12
|
-
require 'cucumber/thinking_sphinx/internal_world'
|
13
|
-
|
14
|
-
ActiveRecord::Base.default_timezone = :utc
|
15
|
-
|
16
|
-
world = Cucumber::ThinkingSphinx::InternalWorld.new
|
17
|
-
world.configure_database
|
18
|
-
|
19
|
-
require 'thinking_sphinx'
|
20
|
-
require 'thinking_sphinx/deltas/resque_delta'
|
21
|
-
|
22
|
-
ActiveRecord::Base.send(:include, ThinkingSphinx::ActiveRecord)
|
23
|
-
|
24
|
-
ActiveSupport::Inflector.inflections do |inflect|
|
25
|
-
inflect.plural /^(.*)beta$/i, '\1betas'
|
26
|
-
inflect.singular /^(.*)betas$/i, '\1beta'
|
27
|
-
end
|
28
|
-
|
29
|
-
world.setup
|
30
|
-
|
31
|
-
ThinkingSphinx.updates_enabled = true
|
32
|
-
ThinkingSphinx.deltas_enabled = true
|
33
|
-
|
34
|
-
Resque.redis = MockRedis.new
|
35
|
-
Before do
|
36
|
-
Resque.redis.flushall
|
37
|
-
end
|
38
|
-
|
39
|
-
require 'database_cleaner'
|
40
|
-
require 'database_cleaner/cucumber'
|
41
|
-
DatabaseCleaner.strategy = :truncation
|
@@ -1,114 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: /Users/aarongibralter/Dropbox/Documents/source-code/ts-resque-delta
|
3
|
-
specs:
|
4
|
-
ts-resque-delta (1.2.3)
|
5
|
-
resque (~> 1.10)
|
6
|
-
resque-lock-timeout (~> 0.4)
|
7
|
-
riddle (>= 1.5)
|
8
|
-
thinking-sphinx (>= 1.4.1)
|
9
|
-
|
10
|
-
GEM
|
11
|
-
remote: http://rubygems.org/
|
12
|
-
specs:
|
13
|
-
activerecord (2.3.14)
|
14
|
-
activesupport (= 2.3.14)
|
15
|
-
activesupport (2.3.14)
|
16
|
-
after_commit (1.0.10)
|
17
|
-
activerecord (>= 1.15.6, < 3.0.0)
|
18
|
-
appraisal (0.4.1)
|
19
|
-
bundler
|
20
|
-
rake
|
21
|
-
builder (3.1.4)
|
22
|
-
cucumber (1.2.1)
|
23
|
-
builder (>= 2.1.2)
|
24
|
-
diff-lcs (>= 1.1.3)
|
25
|
-
gherkin (~> 2.11.0)
|
26
|
-
json (>= 1.4.6)
|
27
|
-
database_cleaner (0.9.1)
|
28
|
-
diff-lcs (1.1.3)
|
29
|
-
fakefs (0.4.2)
|
30
|
-
faraday (0.8.4)
|
31
|
-
multipart-post (~> 1.1)
|
32
|
-
faraday_middleware (0.9.0)
|
33
|
-
faraday (>= 0.7.4, < 0.9)
|
34
|
-
flying-sphinx (0.8.4)
|
35
|
-
faraday_middleware (~> 0.7)
|
36
|
-
multi_json (>= 1.0.1)
|
37
|
-
rash (~> 0.3.0)
|
38
|
-
riddle (>= 1.5.0)
|
39
|
-
thinking-sphinx
|
40
|
-
gherkin (2.11.5)
|
41
|
-
json (>= 1.4.6)
|
42
|
-
guard (0.8.8)
|
43
|
-
thor (~> 0.14.6)
|
44
|
-
guard-bundler (0.1.3)
|
45
|
-
bundler (>= 1.0.0)
|
46
|
-
guard (>= 0.2.2)
|
47
|
-
guard-cucumber (0.7.5)
|
48
|
-
cucumber (>= 0.10)
|
49
|
-
guard (>= 0.8.3)
|
50
|
-
guard-rspec (0.5.11)
|
51
|
-
guard (>= 0.8.4)
|
52
|
-
hashie (1.2.0)
|
53
|
-
json (1.7.5)
|
54
|
-
mock_redis (0.3.0)
|
55
|
-
multi_json (1.3.7)
|
56
|
-
multipart-post (1.1.5)
|
57
|
-
mysql2 (0.2.18)
|
58
|
-
rack (1.4.1)
|
59
|
-
rack-protection (1.2.0)
|
60
|
-
rack
|
61
|
-
rake (10.0.2)
|
62
|
-
rash (0.3.2)
|
63
|
-
hashie (~> 1.2.0)
|
64
|
-
redis (3.0.2)
|
65
|
-
redis-namespace (1.2.1)
|
66
|
-
redis (~> 3.0.0)
|
67
|
-
resque (1.23.0)
|
68
|
-
multi_json (~> 1.0)
|
69
|
-
redis-namespace (~> 1.0)
|
70
|
-
sinatra (>= 0.9.2)
|
71
|
-
vegas (~> 0.1.2)
|
72
|
-
resque-lock-timeout (0.4.1)
|
73
|
-
resque (>= 1.8.0)
|
74
|
-
riddle (1.5.3)
|
75
|
-
rspec (2.10.0)
|
76
|
-
rspec-core (~> 2.10.0)
|
77
|
-
rspec-expectations (~> 2.10.0)
|
78
|
-
rspec-mocks (~> 2.10.0)
|
79
|
-
rspec-core (2.10.1)
|
80
|
-
rspec-expectations (2.10.0)
|
81
|
-
diff-lcs (~> 1.1.3)
|
82
|
-
rspec-mocks (2.10.1)
|
83
|
-
sinatra (1.3.3)
|
84
|
-
rack (~> 1.3, >= 1.3.6)
|
85
|
-
rack-protection (~> 1.2)
|
86
|
-
tilt (~> 1.3, >= 1.3.3)
|
87
|
-
thinking-sphinx (1.4.13)
|
88
|
-
activerecord (>= 1.15.6, < 3.0.0)
|
89
|
-
after_commit (>= 1.0.7)
|
90
|
-
riddle (>= 1.5.3)
|
91
|
-
thor (0.14.6)
|
92
|
-
tilt (1.3.3)
|
93
|
-
vegas (0.1.11)
|
94
|
-
rack (>= 1.0.0)
|
95
|
-
|
96
|
-
PLATFORMS
|
97
|
-
ruby
|
98
|
-
|
99
|
-
DEPENDENCIES
|
100
|
-
activerecord (~> 2.3.14)
|
101
|
-
appraisal (~> 0.4.1)
|
102
|
-
cucumber
|
103
|
-
database_cleaner (>= 0.5.2)
|
104
|
-
fakefs (~> 0.4.0)
|
105
|
-
flying-sphinx (>= 0.5.1)
|
106
|
-
guard (~> 0.8.8)
|
107
|
-
guard-bundler (~> 0.1.3)
|
108
|
-
guard-cucumber (~> 0.7.4)
|
109
|
-
guard-rspec (~> 0.5.8)
|
110
|
-
mock_redis (~> 0.3.0)
|
111
|
-
mysql2 (~> 0.2.7)
|
112
|
-
rake (>= 0.8.7)
|
113
|
-
rspec (~> 2.10.0)
|
114
|
-
ts-resque-delta!
|
@@ -1,123 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: /Users/aarongibralter/Dropbox/Documents/source-code/ts-resque-delta
|
3
|
-
specs:
|
4
|
-
ts-resque-delta (1.2.3)
|
5
|
-
resque (~> 1.10)
|
6
|
-
resque-lock-timeout (~> 0.4)
|
7
|
-
riddle (>= 1.5)
|
8
|
-
thinking-sphinx (>= 1.4.1)
|
9
|
-
|
10
|
-
GEM
|
11
|
-
remote: http://rubygems.org/
|
12
|
-
specs:
|
13
|
-
activemodel (3.2.9)
|
14
|
-
activesupport (= 3.2.9)
|
15
|
-
builder (~> 3.0.0)
|
16
|
-
activerecord (3.2.9)
|
17
|
-
activemodel (= 3.2.9)
|
18
|
-
activesupport (= 3.2.9)
|
19
|
-
arel (~> 3.0.2)
|
20
|
-
tzinfo (~> 0.3.29)
|
21
|
-
activesupport (3.2.9)
|
22
|
-
i18n (~> 0.6)
|
23
|
-
multi_json (~> 1.0)
|
24
|
-
appraisal (0.4.1)
|
25
|
-
bundler
|
26
|
-
rake
|
27
|
-
arel (3.0.2)
|
28
|
-
builder (3.0.4)
|
29
|
-
cucumber (1.2.1)
|
30
|
-
builder (>= 2.1.2)
|
31
|
-
diff-lcs (>= 1.1.3)
|
32
|
-
gherkin (~> 2.11.0)
|
33
|
-
json (>= 1.4.6)
|
34
|
-
database_cleaner (0.9.1)
|
35
|
-
diff-lcs (1.1.3)
|
36
|
-
fakefs (0.4.2)
|
37
|
-
faraday (0.8.4)
|
38
|
-
multipart-post (~> 1.1)
|
39
|
-
faraday_middleware (0.9.0)
|
40
|
-
faraday (>= 0.7.4, < 0.9)
|
41
|
-
flying-sphinx (0.8.4)
|
42
|
-
faraday_middleware (~> 0.7)
|
43
|
-
multi_json (>= 1.0.1)
|
44
|
-
rash (~> 0.3.0)
|
45
|
-
riddle (>= 1.5.0)
|
46
|
-
thinking-sphinx
|
47
|
-
gherkin (2.11.5)
|
48
|
-
json (>= 1.4.6)
|
49
|
-
guard (0.8.8)
|
50
|
-
thor (~> 0.14.6)
|
51
|
-
guard-bundler (0.1.3)
|
52
|
-
bundler (>= 1.0.0)
|
53
|
-
guard (>= 0.2.2)
|
54
|
-
guard-cucumber (0.7.5)
|
55
|
-
cucumber (>= 0.10)
|
56
|
-
guard (>= 0.8.3)
|
57
|
-
guard-rspec (0.5.11)
|
58
|
-
guard (>= 0.8.4)
|
59
|
-
hashie (1.2.0)
|
60
|
-
i18n (0.6.1)
|
61
|
-
json (1.7.5)
|
62
|
-
mock_redis (0.3.0)
|
63
|
-
multi_json (1.3.7)
|
64
|
-
multipart-post (1.1.5)
|
65
|
-
mysql2 (0.3.11)
|
66
|
-
rack (1.4.1)
|
67
|
-
rack-protection (1.2.0)
|
68
|
-
rack
|
69
|
-
rake (10.0.2)
|
70
|
-
rash (0.3.2)
|
71
|
-
hashie (~> 1.2.0)
|
72
|
-
redis (3.0.2)
|
73
|
-
redis-namespace (1.2.1)
|
74
|
-
redis (~> 3.0.0)
|
75
|
-
resque (1.23.0)
|
76
|
-
multi_json (~> 1.0)
|
77
|
-
redis-namespace (~> 1.0)
|
78
|
-
sinatra (>= 0.9.2)
|
79
|
-
vegas (~> 0.1.2)
|
80
|
-
resque-lock-timeout (0.4.1)
|
81
|
-
resque (>= 1.8.0)
|
82
|
-
riddle (1.5.3)
|
83
|
-
rspec (2.10.0)
|
84
|
-
rspec-core (~> 2.10.0)
|
85
|
-
rspec-expectations (~> 2.10.0)
|
86
|
-
rspec-mocks (~> 2.10.0)
|
87
|
-
rspec-core (2.10.1)
|
88
|
-
rspec-expectations (2.10.0)
|
89
|
-
diff-lcs (~> 1.1.3)
|
90
|
-
rspec-mocks (2.10.1)
|
91
|
-
sinatra (1.3.3)
|
92
|
-
rack (~> 1.3, >= 1.3.6)
|
93
|
-
rack-protection (~> 1.2)
|
94
|
-
tilt (~> 1.3, >= 1.3.3)
|
95
|
-
thinking-sphinx (2.0.13)
|
96
|
-
activerecord (>= 3.0.3)
|
97
|
-
builder (>= 2.1.2)
|
98
|
-
riddle (>= 1.5.3)
|
99
|
-
thor (0.14.6)
|
100
|
-
tilt (1.3.3)
|
101
|
-
tzinfo (0.3.35)
|
102
|
-
vegas (0.1.11)
|
103
|
-
rack (>= 1.0.0)
|
104
|
-
|
105
|
-
PLATFORMS
|
106
|
-
ruby
|
107
|
-
|
108
|
-
DEPENDENCIES
|
109
|
-
activerecord (~> 3.2.9)
|
110
|
-
appraisal (~> 0.4.1)
|
111
|
-
cucumber
|
112
|
-
database_cleaner (>= 0.5.2)
|
113
|
-
fakefs (~> 0.4.0)
|
114
|
-
flying-sphinx (>= 0.5.1)
|
115
|
-
guard (~> 0.8.8)
|
116
|
-
guard-bundler (~> 0.1.3)
|
117
|
-
guard-cucumber (~> 0.7.4)
|
118
|
-
guard-rspec (~> 0.5.8)
|
119
|
-
mock_redis (~> 0.3.0)
|
120
|
-
mysql2 (~> 0.3.11)
|
121
|
-
rake (>= 0.8.7)
|
122
|
-
rspec (~> 2.10.0)
|
123
|
-
ts-resque-delta!
|