nimboids-spork 0.8.99

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. data/Gemfile +6 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +129 -0
  4. data/assets/bootstrap.rb +29 -0
  5. data/bin/spork +20 -0
  6. data/ext/mkrf_conf.rb +26 -0
  7. data/features/at_exit_during_each_run.feature +36 -0
  8. data/features/cucumber_rails_integration.feature +107 -0
  9. data/features/diagnostic_mode.feature +41 -0
  10. data/features/gemfiles/rails3.0/Gemfile +10 -0
  11. data/features/gemfiles/rails3.0/Gemfile.lock +116 -0
  12. data/features/rails_delayed_loading_workarounds.feature +150 -0
  13. data/features/rspec_rails_integration.feature +92 -0
  14. data/features/spork_debugger.feature +108 -0
  15. data/features/steps/general_steps.rb +3 -0
  16. data/features/steps/rails_steps.rb +67 -0
  17. data/features/steps/sandbox_steps.rb +115 -0
  18. data/features/support/background_job.rb +63 -0
  19. data/features/support/bundler_helpers.rb +41 -0
  20. data/features/support/env.rb +105 -0
  21. data/features/unknown_app_framework.feature +42 -0
  22. data/lib/spork.rb +155 -0
  23. data/lib/spork/app_framework.rb +80 -0
  24. data/lib/spork/app_framework/padrino.rb +22 -0
  25. data/lib/spork/app_framework/rails.rb +82 -0
  26. data/lib/spork/app_framework/unknown.rb +6 -0
  27. data/lib/spork/custom_io_streams.rb +25 -0
  28. data/lib/spork/diagnoser.rb +105 -0
  29. data/lib/spork/ext/rails-reloader.rb +14 -0
  30. data/lib/spork/ext/ruby-debug.rb +150 -0
  31. data/lib/spork/forker.rb +71 -0
  32. data/lib/spork/run_strategy.rb +44 -0
  33. data/lib/spork/run_strategy/forking.rb +32 -0
  34. data/lib/spork/run_strategy/magazine.rb +141 -0
  35. data/lib/spork/run_strategy/magazine/magazine_slave.rb +30 -0
  36. data/lib/spork/run_strategy/magazine/magazine_slave_provider.rb +27 -0
  37. data/lib/spork/run_strategy/magazine/ring_server.rb +10 -0
  38. data/lib/spork/runner.rb +90 -0
  39. data/lib/spork/server.rb +76 -0
  40. data/lib/spork/test_framework.rb +167 -0
  41. data/lib/spork/test_framework/cucumber.rb +24 -0
  42. data/lib/spork/test_framework/rspec.rb +14 -0
  43. data/spec/spec_helper.rb +113 -0
  44. data/spec/spork/app_framework/rails_spec.rb +22 -0
  45. data/spec/spork/app_framework/unknown_spec.rb +12 -0
  46. data/spec/spork/app_framework_spec.rb +16 -0
  47. data/spec/spork/diagnoser_spec.rb +105 -0
  48. data/spec/spork/forker_spec.rb +44 -0
  49. data/spec/spork/run_strategy/forking_spec.rb +38 -0
  50. data/spec/spork/runner_spec.rb +50 -0
  51. data/spec/spork/server_spec.rb +15 -0
  52. data/spec/spork/test_framework/cucumber_spec.rb +11 -0
  53. data/spec/spork/test_framework/rspec_spec.rb +10 -0
  54. data/spec/spork/test_framework_shared_examples.rb +23 -0
  55. data/spec/spork/test_framework_spec.rb +90 -0
  56. data/spec/spork_spec.rb +153 -0
  57. data/spec/support/fake_framework.rb +15 -0
  58. data/spec/support/fake_run_strategy.rb +21 -0
  59. metadata +158 -0
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source :gemcutter
2
+ gem 'cucumber', '0.7.3'
3
+ gem 'gherkin', '1.0.27'
4
+ gem "rspec", "2.0.0.beta.20"
5
+ gem 'rake'
6
+ gem 'ruby-debug'
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 Tim Harper
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,129 @@
1
+ = Spork
2
+
3
+ * Repository: http://github.com/timcharper/spork
4
+ * Issues: http://github.com/timcharper/spork/issues
5
+ * Changes: http://github.com/timcharper/spork/blob/master/History.txt
6
+ * Mailing list: http://groups.google.com/group/sporkgem
7
+ * Wiki: http://wiki.github.com/timcharper/spork
8
+
9
+ == SYNOPSIS:
10
+
11
+ Spork is Tim Harper's implementation of test server (similar to the script/spec_server provided by rspec-rails), except rather than using the Rails constant unloading to reload your files, it forks a copy of the server each time you run your tests. The result? Spork runs more solid: it doesn't get corrupted over time, and it properly handles modules and any voo-doo meta programming you may have put in your app.
12
+
13
+ Spork runs on POSIX systems using fork. It also runs on windows by pre-populating a pool of ready processes (referred to here as the "magazine" strategy).
14
+
15
+ == RAILS 3
16
+
17
+ Rails 3.0 support is in progress, but is not ready. The master branch is stable and works with rails 2.3.x.
18
+
19
+ Rspec 2.x support is not ready either.
20
+
21
+ If you want to help, see the rails3 branch.
22
+
23
+ == Supported Testing Frameworks
24
+
25
+ * Rspec
26
+ * Cucumber
27
+ * Test::Unit (via 'gem install spork-testunit')
28
+
29
+ And more to come! Vote for your favorite at http://github.com/timcharper/spork/issues
30
+
31
+ == Supported Application Frameworks
32
+
33
+ Actually, Spork ~can~ work with any application framework. But, it ships with hooks and helpers to make an "out of the box" experience.
34
+
35
+ * Rails 3.0 (for Rails 2.{1,2,3}.x, please try spork 0.8.x)
36
+ * Padrino
37
+
38
+ == INSTALL:
39
+
40
+ === rubygems:
41
+
42
+ [sudo] gem install spork
43
+
44
+ === bundler:
45
+
46
+ Add to your Gemfile:
47
+
48
+ gem "spork"
49
+
50
+ == Usage
51
+
52
+ From a terminal, change to your project directory.
53
+
54
+ Then, bootstrap your spec/spec_helper.rb file.
55
+
56
+ spork --bootstrap
57
+
58
+ Next, edit spec/spec_helper.rb and follow the instructions that were put at the top.
59
+
60
+ Finally, run spork. A spec DRb server will be running!
61
+
62
+ spork
63
+
64
+ == Diagnostic mode
65
+
66
+ Initially, you may find that a few files don't reload automatically. This is because they are being loaded during Spork startup. To identify which project files are being pre-loaded, and why, run:
67
+
68
+ spork --diagnose
69
+ (or spork -d, for short)
70
+
71
+ It will output a lot of stuff. At the top you'll find a summary of all project files loaded. Down below, the stack trace for each file (how it got loaded). Spork hooks into Rails and does some magic (TM) to prevent ApplicationController observers, etc from pre-loading. Similar hooks for other ruby frameworks may come as support demands.
72
+
73
+ == Running specs over Spork
74
+
75
+ === RSpec
76
+
77
+ To get the TextMate RSpec bundle to use spork, go to config->advanced->shell variables, and add:
78
+
79
+ TM_RSPEC_OPTS=--drb.
80
+
81
+ To run from the command line, use:
82
+
83
+ rspec --drb spec/lib/my_spec.rb
84
+
85
+ Or, you could add the following flag to your +spec.opts+ file.
86
+
87
+ --drb
88
+
89
+ === Cucumber
90
+
91
+ Cucumber has DRb support (see http://wiki.github.com/aslakhellesoy/cucumber/spork-and-drb )
92
+
93
+ cucumber --drb
94
+
95
+ Use this as a guideline when "Sporking" your features/support/env.rb file
96
+
97
+ http://gist.github.com/123370
98
+
99
+ == Running the Spork test suite
100
+
101
+ If you wish to hack on spork, you will want to run the automated test suite to make sure your changes don't break anything. Spork uses bundler to manage and install dependencies. To start:
102
+
103
+ bundle install
104
+
105
+ Then, to run the specs:
106
+
107
+ bundle exec rspec spec/
108
+
109
+ (or, alternatively...)
110
+
111
+ bundle exec rake
112
+
113
+ === running features ===
114
+
115
+ Essentially:
116
+
117
+ bundle exec cucumber features
118
+
119
+ == Some potential issues and ways to overcome them:
120
+
121
+ See http://wiki.github.com/timcharper/spork/troubleshooting
122
+
123
+ == Kudos to
124
+
125
+ * Ben Mabey - help with documentation, testing, suggestions, patches, and bringing Cucumber support.
126
+ * David Chelimsky - for the fine RSpec testing framework, and the original rspec-rails spec_server implementation, which Spork has built upon.
127
+ * LeadTune - just for being an awesome place to work.
128
+
129
+ Spork (c) 2010 Tim Harper, released under the MIT license
@@ -0,0 +1,29 @@
1
+ require 'rubygems'
2
+ require 'spork'
3
+
4
+ Spork.prefork do
5
+ # Loading more in this block will cause your tests to run faster. However,
6
+ # if you change any configuration or code from libraries loaded here, you'll
7
+ # need to restart spork for it take effect.
8
+
9
+ end
10
+
11
+ Spork.each_run do
12
+ # This code will be run each time you run your specs.
13
+
14
+ end
15
+
16
+ # --- Instructions ---
17
+ # - Sort through your spec_helper file. Place as much environment loading
18
+ # code that you don't normally modify during development in the
19
+ # Spork.prefork block.
20
+ # - Place the rest under Spork.each_run block
21
+ # - Any code that is left outside of the blocks will be ran during preforking
22
+ # and during each_run!
23
+ # - These instructions should self-destruct in 10 seconds. If they don't,
24
+ # feel free to delete them.
25
+ #
26
+
27
+
28
+
29
+
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+
4
+ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib') unless $LOAD_PATH.include?(File.dirname(__FILE__) + '/../lib')
5
+
6
+ require 'spork'
7
+ require 'spork/runner'
8
+
9
+ begin
10
+ success = Spork::Runner.run(ARGV, STDOUT, STDERR)
11
+ Kernel.exit(success ? 0 : 1)
12
+ rescue SystemExit => e
13
+ Kernel.exit(e.status)
14
+ rescue Exception => e
15
+ STDERR.puts("#{e.message} (#{e.class})")
16
+ STDERR.puts(e.backtrace.join("\n"))
17
+ Kernel.exit 1
18
+ end
19
+
20
+
@@ -0,0 +1,26 @@
1
+ require 'rubygems'
2
+ require 'rubygems/command.rb'
3
+ require 'rubygems/dependency_installer.rb'
4
+ STDERR.puts "Actually, there aren't any native extensions. I'm just dynamically installing dependencies based off of your operating system"
5
+ inst = Gem::DependencyInstaller.new
6
+
7
+ # this will fail if rake isn't installed.
8
+ begin
9
+ inst.install "rake"
10
+ rescue
11
+ # oh well. Let it fail later.
12
+ end
13
+
14
+ if RUBY_PLATFORM =~ /mswin|mingw/ and RUBY_VERSION < '1.9.1'
15
+ STDERR.puts "installing windows dependencies"
16
+ begin
17
+ inst.install "win32-process", "~> 0.6.1"
18
+ rescue => e
19
+ STDERR.puts "Failed to install necessary dependency gem win32-process: #{e}"
20
+ exit(1)
21
+ end
22
+ end
23
+
24
+ f = File.open(File.join(File.dirname(__FILE__), "Rakefile"), "w") # create dummy rakefile to indicate success
25
+ f.write("task :default\n")
26
+ f.close
@@ -0,0 +1,36 @@
1
+ Feature: At exit during each run
2
+ In order to make sure at_exit hooks defined during the run get called
3
+ I want to override kernel #at_exit
4
+
5
+ Scenario: at exit
6
+
7
+ Given a file named "spec/spec_helper.rb" with:
8
+ """
9
+ require 'rubygems'
10
+ require 'rspec'
11
+ Spork.prefork do
12
+ puts "loading"
13
+ at_exit { puts "prefork at_exit called" }
14
+ end
15
+
16
+ Spork.each_run do
17
+ puts "running"
18
+ at_exit { printf "first " }
19
+ at_exit { printf "second " }
20
+ end
21
+
22
+ """
23
+
24
+ And a file named "spec/did_it_work_spec.rb" with:
25
+ """
26
+ require 'spec_helper'
27
+ describe "Did it work?" do
28
+ it "checks to see if all worked" do
29
+ puts "ran specs"
30
+ end
31
+ end
32
+ """
33
+ When I fire up a spork instance with "spork rspec"
34
+ And I run rspec --drb spec/did_it_work_spec.rb
35
+ Then the output should contain "second first"
36
+ Then the output should not contain "prefork at_exit called"
@@ -0,0 +1,107 @@
1
+ Feature: Cucumber integration with rails
2
+ As a developer using cucumber and rails
3
+ I want to use Spork with Cucumber
4
+ In order to eliminate the startup cost of my application each time I run them
5
+
6
+ Background: Sporked env.rb
7
+ Given I am in a fresh rails project named "test_rails_project"
8
+ And the application has a model, observer, route, and application helper
9
+ And a file named "features/support/env.rb" with:
10
+ """
11
+ require 'rubygems'
12
+ require 'spork'
13
+ ENV["RAILS_ENV"] ||= "test"
14
+
15
+
16
+ Spork.prefork do
17
+ # Loading more in this block will cause your tests to run faster. However,
18
+ # if you change any configuration or code from libraries loaded here, you'll
19
+ # need to restart spork for it take effect.
20
+
21
+ # Sets up the Rails environment for Cucumber
22
+ require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')
23
+
24
+ require 'cucumber'
25
+ require 'cucumber/formatter/unicode' # Comment out this line if you don't want Cucumber Unicode support
26
+ require 'rspec/rails'
27
+ require 'cucumber/rails/rspec'
28
+
29
+ #### this is for this test only #######
30
+ $loaded_stuff << 'prefork block' ######
31
+ #######################################
32
+ end
33
+
34
+ Spork.each_run do
35
+ #### this is for this test only #######
36
+ $loaded_stuff << 'each_run block' #####
37
+ #######################################
38
+ end
39
+ """
40
+ And a file named "features/cucumber_rails.feature" with:
41
+ """
42
+ Feature: cucumber rails
43
+ Scenario: did it work?
44
+ Then it should work
45
+
46
+ Scenario: did it work again?
47
+ Then it should work
48
+ """
49
+ And a file named "features/support/cucumber_rails_helper.rb" with:
50
+ """
51
+ $loaded_stuff << 'features/support/cucumber_rails_helper.rb'
52
+ """
53
+ And a file named "config/database.yml" with:
54
+ """
55
+ test:
56
+ adapter: sqlite3
57
+ database: db/test.sqlite3
58
+ timeout: 5000
59
+ """
60
+ And a file named "features/step_definitions/cucumber_rails_steps.rb" with:
61
+ """
62
+ Then "it should work" do
63
+ (Rails.respond_to?(:logger) ? Rails.logger : ActionController::Base.logger).info "hey there"
64
+ $loaded_stuff.should include('ActiveRecord::Base.establish_connection')
65
+ $loaded_stuff.should include('User')
66
+ $loaded_stuff.should include('UserObserver')
67
+ $loaded_stuff.should include('ApplicationHelper')
68
+ $loaded_stuff.should include('config/routes.rb')
69
+ $loaded_stuff.should include('features/support/cucumber_rails_helper.rb')
70
+ $loaded_stuff.should include('each_run block')
71
+ $loaded_stuff.should include('prefork block')
72
+ puts "It worked!"
73
+ end
74
+
75
+ Alors /ca marche/ do
76
+ end
77
+ """
78
+ Scenario: Analyzing files were preloaded
79
+ When I run spork --diagnose
80
+ Then the output should not contain "user_observer.rb"
81
+ Then the output should not contain "user.rb"
82
+ Then the output should not contain "app/controllers/application.rb"
83
+ Then the output should not contain "app/controllers/application_controller.rb"
84
+ Then the output should not contain "app/controllers/application_helper.rb"
85
+ Then the output should not contain "features/step_definitions/cucumber_rails_steps.rb"
86
+ Then the output should not contain "features/support/cucumber_rails_helper.rb"
87
+
88
+ Scenario: Running spork with a rails app and no server
89
+ When I run cucumber --drb features
90
+ Then the error output should contain
91
+ """
92
+ WARNING: No DRb server is running. Running features locally
93
+ """
94
+
95
+ Scenario: Running spork with a rails app and observers
96
+ When I fire up a spork instance with "spork cucumber"
97
+ And I run cucumber --drb features
98
+ Then the error output should be empty
99
+ And the output should contain "It worked!"
100
+ And the file "log/test.log" should include "hey there"
101
+
102
+ Scenario: Running spork with a rails app and a non-standard port
103
+ When I fire up a spork instance with "spork cucumber -p 9000"
104
+ And I run cucumber --drb --port 9000 features
105
+ Then the error output should be empty
106
+ And the output should contain "It worked!"
107
+ And the file "log/test.log" should include "hey there"
@@ -0,0 +1,41 @@
1
+ Feature: Diagnostic Mode
2
+ To help a developer quickly pinpoint why files are being loaded
3
+ Spork provides a diagnostic mode
4
+ That provides a list of which project files were loaded during prefork, and who loaded them.
5
+
6
+ Scenario: Running spork --diagnose
7
+ Given I am in the directory "test_project"
8
+ And a file named "spec/spec_helper.rb" with:
9
+ """
10
+ require 'rubygems'
11
+ require 'spork'
12
+
13
+ Spork.prefork do
14
+ require 'lib/awesome.rb'
15
+ require '../external_dependency/super_duper.rb'
16
+ end
17
+
18
+ Spork.each_run do
19
+ puts "I'm loading the stuff just for this run..."
20
+ end
21
+ """
22
+ And a file named "lib/awesome.rb" with:
23
+ """
24
+ class Awesome
25
+ end
26
+ """
27
+ And a file named "../external_dependency/super_duper.rb" with:
28
+ """
29
+ class Awesome
30
+ end
31
+ """
32
+ When I run spork --diagnose
33
+ Then the error output should contain
34
+ """
35
+ Loading Spork.prefork block...
36
+ """
37
+ And the output should contain "lib/awesome.rb"
38
+ And the output should contain "spec/spec_helper.rb:5"
39
+ And the output should not contain "super_duper.rb"
40
+ And the output should not contain "diagnose.rb"
41
+
@@ -0,0 +1,10 @@
1
+ source :gemcutter
2
+ gem 'sqlite3-ruby', '1.2.5'
3
+ gem 'cucumber', '0.8.5'
4
+ gem 'cucumber-rails', '0.3.2'
5
+ gem "gherkin", "2.1.4"
6
+ gem "rspec", "2.0.0.beta.20"
7
+ gem 'rspec-rails', "2.0.0.beta.20"
8
+ gem 'rails', '3.0.0'
9
+ gem 'ruby-debug', '>= 0.10.3'
10
+ gem 'spork', :path => File.expand_path("../../..", File.dirname(__FILE__))
@@ -0,0 +1,116 @@
1
+ PATH
2
+ remote: /Users/timcharper/projects/spork
3
+ specs:
4
+ spork (0.9.0.rc2)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ abstract (1.0.0)
10
+ actionmailer (3.0.0)
11
+ actionpack (= 3.0.0)
12
+ mail (~> 2.2.5)
13
+ actionpack (3.0.0)
14
+ activemodel (= 3.0.0)
15
+ activesupport (= 3.0.0)
16
+ builder (~> 2.1.2)
17
+ erubis (~> 2.6.6)
18
+ i18n (~> 0.4.1)
19
+ rack (~> 1.2.1)
20
+ rack-mount (~> 0.6.12)
21
+ rack-test (~> 0.5.4)
22
+ tzinfo (~> 0.3.23)
23
+ activemodel (3.0.0)
24
+ activesupport (= 3.0.0)
25
+ builder (~> 2.1.2)
26
+ i18n (~> 0.4.1)
27
+ activerecord (3.0.0)
28
+ activemodel (= 3.0.0)
29
+ activesupport (= 3.0.0)
30
+ arel (~> 1.0.0)
31
+ tzinfo (~> 0.3.23)
32
+ activeresource (3.0.0)
33
+ activemodel (= 3.0.0)
34
+ activesupport (= 3.0.0)
35
+ activesupport (3.0.0)
36
+ arel (1.0.1)
37
+ activesupport (~> 3.0.0)
38
+ builder (2.1.2)
39
+ columnize (0.3.1)
40
+ cucumber (0.8.5)
41
+ builder (~> 2.1.2)
42
+ diff-lcs (~> 1.1.2)
43
+ gherkin (~> 2.1.4)
44
+ json_pure (~> 1.4.3)
45
+ term-ansicolor (~> 1.0.4)
46
+ cucumber-rails (0.3.2)
47
+ cucumber (>= 0.8.0)
48
+ diff-lcs (1.1.2)
49
+ erubis (2.6.6)
50
+ abstract (>= 1.0.0)
51
+ gherkin (2.1.4)
52
+ trollop (~> 1.16.2)
53
+ i18n (0.4.1)
54
+ json_pure (1.4.6)
55
+ linecache (0.43)
56
+ mail (2.2.6.1)
57
+ activesupport (>= 2.3.6)
58
+ mime-types
59
+ treetop (>= 1.4.5)
60
+ mime-types (1.16)
61
+ polyglot (0.3.1)
62
+ rack (1.2.1)
63
+ rack-mount (0.6.13)
64
+ rack (>= 1.0.0)
65
+ rack-test (0.5.4)
66
+ rack (>= 1.0)
67
+ rails (3.0.0)
68
+ actionmailer (= 3.0.0)
69
+ actionpack (= 3.0.0)
70
+ activerecord (= 3.0.0)
71
+ activeresource (= 3.0.0)
72
+ activesupport (= 3.0.0)
73
+ bundler (~> 1.0.0)
74
+ railties (= 3.0.0)
75
+ railties (3.0.0)
76
+ actionpack (= 3.0.0)
77
+ activesupport (= 3.0.0)
78
+ rake (>= 0.8.4)
79
+ thor (~> 0.14.0)
80
+ rake (0.8.7)
81
+ rspec (2.0.0.beta.20)
82
+ rspec-core (= 2.0.0.beta.20)
83
+ rspec-expectations (= 2.0.0.beta.20)
84
+ rspec-mocks (= 2.0.0.beta.20)
85
+ rspec-core (2.0.0.beta.20)
86
+ rspec-expectations (2.0.0.beta.20)
87
+ diff-lcs (>= 1.1.2)
88
+ rspec-mocks (2.0.0.beta.20)
89
+ rspec-rails (2.0.0.beta.20)
90
+ rspec (= 2.0.0.beta.20)
91
+ ruby-debug (0.10.3)
92
+ columnize (>= 0.1)
93
+ ruby-debug-base (~> 0.10.3.0)
94
+ ruby-debug-base (0.10.3)
95
+ linecache (>= 0.3)
96
+ sqlite3-ruby (1.2.5)
97
+ term-ansicolor (1.0.5)
98
+ thor (0.14.0)
99
+ treetop (1.4.8)
100
+ polyglot (>= 0.3.1)
101
+ trollop (1.16.2)
102
+ tzinfo (0.3.23)
103
+
104
+ PLATFORMS
105
+ ruby
106
+
107
+ DEPENDENCIES
108
+ cucumber (= 0.8.5)
109
+ cucumber-rails (= 0.3.2)
110
+ gherkin (= 2.1.4)
111
+ rails (= 3.0.0)
112
+ rspec (= 2.0.0.beta.20)
113
+ rspec-rails (= 2.0.0.beta.20)
114
+ ruby-debug (>= 0.10.3)
115
+ spork!
116
+ sqlite3-ruby (= 1.2.5)