kookaburra 0.23.0 → 0.23.1

Sign up to get free protection for your applications and to get access to all the features.
data/.rvmrc CHANGED
@@ -1,2 +1,4 @@
1
+ rvm use ruby-1.9.3@kookaburra --create --install
2
+ rvm use ruby-1.9.2@kookaburra --create --install
1
3
  rvm use ree-1.8.7@kookaburra --create --install
2
- bundle check
4
+ rvm use ruby-1.8.7@kookaburra --create --install
data/Gemfile CHANGED
@@ -12,7 +12,6 @@ group :development do
12
12
  gem 'yard'
13
13
  gem 'redcarpet', '~> 1.0' # used to format documentation
14
14
  gem 'jeweler'
15
- gem 'rcov'
16
15
  gem 'reek'
17
16
  gem 'sinatra'
18
17
  end
data/Gemfile.lock CHANGED
@@ -1,9 +1,10 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activesupport (3.2.2)
4
+ activesupport (3.2.3)
5
5
  i18n (~> 0.6)
6
6
  multi_json (~> 1.0)
7
+ addressable (2.2.7)
7
8
  capybara (1.1.2)
8
9
  mime-types (>= 1.16)
9
10
  nokogiri (>= 1.3.3)
@@ -22,10 +23,12 @@ GEM
22
23
  git (>= 1.2.5)
23
24
  rake
24
25
  rdoc
25
- json (1.6.5)
26
- mime-types (1.17.2)
27
- multi_json (1.1.0)
28
- nokogiri (1.5.0)
26
+ json (1.6.6)
27
+ libwebsocket (0.1.3)
28
+ addressable
29
+ mime-types (1.18)
30
+ multi_json (1.2.0)
31
+ nokogiri (1.5.2)
29
32
  patron (0.4.18)
30
33
  rack (1.4.1)
31
34
  rack-protection (1.2.0)
@@ -33,7 +36,6 @@ GEM
33
36
  rack-test (0.6.1)
34
37
  rack (>= 1.0)
35
38
  rake (0.9.2.2)
36
- rcov (1.0.0)
37
39
  rdoc (3.12)
38
40
  json (~> 1.4)
39
41
  redcarpet (1.17.2)
@@ -41,23 +43,24 @@ GEM
41
43
  ruby2ruby (~> 1.2)
42
44
  ruby_parser (~> 2.0)
43
45
  sexp_processor (~> 3.0)
44
- rspec (2.8.0)
45
- rspec-core (~> 2.8.0)
46
- rspec-expectations (~> 2.8.0)
47
- rspec-mocks (~> 2.8.0)
48
- rspec-core (2.8.0)
49
- rspec-expectations (2.8.0)
50
- diff-lcs (~> 1.1.2)
51
- rspec-mocks (2.8.0)
46
+ rspec (2.9.0)
47
+ rspec-core (~> 2.9.0)
48
+ rspec-expectations (~> 2.9.0)
49
+ rspec-mocks (~> 2.9.0)
50
+ rspec-core (2.9.0)
51
+ rspec-expectations (2.9.1)
52
+ diff-lcs (~> 1.1.3)
53
+ rspec-mocks (2.9.0)
52
54
  ruby2ruby (1.3.1)
53
55
  ruby_parser (~> 2.0)
54
56
  sexp_processor (~> 3.0)
55
57
  ruby_parser (2.3.1)
56
58
  sexp_processor (~> 3.0)
57
- rubyzip (0.9.6.1)
58
- selenium-webdriver (2.20.0)
59
+ rubyzip (0.9.7)
60
+ selenium-webdriver (2.21.0)
59
61
  childprocess (>= 0.2.5)
60
62
  ffi (~> 1.0)
63
+ libwebsocket (~> 0.1.3)
61
64
  multi_json (~> 1.0)
62
65
  rubyzip
63
66
  sexp_processor (3.1.0)
@@ -79,7 +82,6 @@ DEPENDENCIES
79
82
  i18n
80
83
  jeweler
81
84
  patron
82
- rcov
83
85
  redcarpet (~> 1.0)
84
86
  reek
85
87
  rspec
data/README.markdown CHANGED
@@ -28,27 +28,58 @@ as well as which driver to use for running the tests (currently only tested with
28
28
  Kookaburra is designed to run tests agains a remote web server (although that
29
29
  server could be running on the same machine, it doesn't need to be), and it is
30
30
  the responsibility of the test implementation to ensure that the server is
31
- running. Take a look at Kookaburra's own integration specs for one example of
32
- how to achieve this for a [Rack-based] [Rack] application. (Note that you cannot
33
- easily start the application server in a separate thread. Because Ruby uses
34
- green threads, the HTTP library used in the APIDriver will block while making
35
- its requests and prevent the application server thread from responding.)
31
+ running.
36
32
 
37
33
  The fact that Kookaburra runs against a remote server means that *it is not
38
34
  limited to testing only Ruby web applications*. As long as your application
39
35
  exposes a web-service API for use by the GivenDriver and an HTML user interface
40
36
  for use by the UIDriver, you can use Kookaburra to test it. Also, as long as
41
37
  you're careful with both your application and test designs, you're not limited
42
- to running your tests only in an isolated testing environment; you could run the
43
- same test suite you use for development against your production systems and even
44
- repurpose your Kookaburra-based tests for load-testing and similar applications.
38
+ to running your tests only in an isolated testing environment; you could run
39
+ the same test suite you use for development against your staging or production
40
+ systems.
41
+
42
+ ### Testing an Application Running Locally ###
43
+
44
+ The fact that Kookaburra is designed to support running tests against a remote
45
+ server does not, of course, mean that the application cannot be running locally.
46
+ It is possible to have your test suite manage the process of starting and
47
+ stopping your server for you. Examples of how to do so with a Rack application
48
+ are presented below, but you should be able to take the same basic approach with
49
+ other types of application servers.
50
+
51
+ Although Capybara is capable of starting a Rack application server on its own,
52
+ the default setup only starts the server up on-demand when you call a method
53
+ that requires the browser to interact with the web application. Because the
54
+ APIDriver layer does not use Capybara, it is necessary to manage the server
55
+ process on your own. Otherwise the server would not be guaranteed to be running
56
+ when you call the APIDriver methods (particularly as these often appear in
57
+ "Given" statements that are run before you start interacting with the web
58
+ browser.)
59
+
60
+ Keep in mind that, even if your server is capable of being started up in another
61
+ thread within the same Ruby process that is executing your test suite, you will
62
+ want to avoid doing so unless you are using a Ruby interpreter that supports
63
+ native threads. Otherwise, when the APIDriver makes an HTTP call to your
64
+ application's API, it will block while waiting for a response, thus preventing
65
+ your application from being able to respond to that request and resulting in a
66
+ timeout error in your tests.
45
67
 
46
68
  ### RSpec ###
47
69
 
48
- For [RSpec] [RSpec] integration tests, just add the following to
49
- `spec/support/kookaburra_setup.rb`:
70
+ The following examples depict how you might configure RSpec to run tests against
71
+ an already running application server (e.g. a remote staging site) and a Rack
72
+ application server that is managed by the test suite.
73
+
74
+ #### Testing an already running server ####
75
+
76
+ If you are running your tests against an already running server, you can simply
77
+ add the following to `spec/support/kookaburra_setup.rb`:
50
78
 
51
79
  require 'kookaburra/test_helpers'
80
+
81
+ # Change these to the files that define your custom GivenDriver and UIDriver
82
+ # implementations.
52
83
  require 'my_app/kookaburra/given_driver'
53
84
  require 'my_app/kookaburra/ui_driver'
54
85
 
@@ -58,21 +89,95 @@ For [RSpec] [RSpec] integration tests, just add the following to
58
89
  c.given_driver_class = MyApp::Kookaburra::GivenDriver
59
90
  c.ui_driver_class = MyApp::Kookaburra::UIDriver
60
91
  c.app_host = 'http://my_app.example.com:1234'
61
- c.browser = Capybara
92
+ c.browser = Capybara::Session.new(:selenium)
62
93
  c.server_error_detection { |browser|
63
94
  browser.has_css?('head title', :text => 'Internal Server Error')
64
95
  }
65
96
  end
66
97
 
67
98
  RSpec.configure do |c|
99
+ # Makes the #k, #given and #ui methods available to your specs
100
+ # (See section on test implementation below)
68
101
  c.include(Kookaburra::TestHelpers, :type => :request)
69
102
  end
70
103
 
104
+ #### Managing startup and shutdown of a Rack application server ####
105
+
106
+ While developing, it can be helpful to run your integration specs against a
107
+ locally-running server that is managed by your test suite. The setup is similar
108
+ to that in the previous section, but it adds before and after hooks to launch
109
+ and shut down a Rack application server. Just add the following to
110
+ `spec/support/kookaburra_setup.rb`:
111
+
112
+ require 'kookaburra/test_helpers'
113
+ require 'thwait'
114
+
115
+ # Change these to the files that define your custom GivenDriver and UIDriver
116
+ # implementations.
117
+ require 'my_app/kookaburra/given_driver'
118
+ require 'my_app/kookaburra/ui_driver'
119
+
120
+ APP_PORT = ENV['APP_PORT'] || 3009
121
+
122
+ # c.app_host below should be set to whatever the root URL of your running
123
+ # application is.
124
+ Kookaburra.configure do |c|
125
+ c.given_driver_class = MyApp::Kookaburra::GivenDriver
126
+ c.ui_driver_class = MyApp::Kookaburra::UIDriver
127
+ c.app_host = 'http://localhost:%d' % APP_PORT
128
+ c.browser = Capybara::Session.new(:selenium)
129
+ c.server_error_detection { |browser|
130
+ browser.has_css?('head title', :text => 'Internal Server Error')
131
+ }
132
+ end
133
+
134
+ RSpec.configure do |c|
135
+ c.include(Kookaburra::TestHelpers, :type => :request)
136
+
137
+ # Start the application server prior to running a group of integration
138
+ # specs. `MyApplication` below should be replaced with the object that
139
+ # implements the Rack `#call` interface for your application. For a Rails
140
+ # app, this would be along the lines of `MyAppName::Application`.
141
+ c.before(:all, :type => :request) do
142
+ # Run the server process in a forked process, and get a handle on that
143
+ # process, so that it can be shut down after the tests run.
144
+ @rack_server_pid = fork do
145
+ Capybara.server_port = APP_PORT
146
+ Capybara::Server.new(MyApplication).boot
147
+
148
+ # This ensures that this forked process keeps running, because the
149
+ # actual server is started in a thread by Capybara.
150
+ ThreadsWait.all_waits(Thread.list)
151
+ end
152
+
153
+ # Give the server a chance to start up in the forked process. You may
154
+ # need to adjust this depending on how long your application takes to
155
+ # start up.
156
+ sleep 1
157
+ end
158
+
159
+ # After the tests run, kill the server process.
160
+ c.after(:all, :type => :request) do
161
+ Process.kill(9, @rack_server_pid)
162
+ Process.wait
163
+ end
164
+ end
165
+
71
166
  ### Cucumber ###
72
167
 
73
- For [Cucumber] [Cucumber], add the following to `features/support/kookaburra_setup.rb`:
168
+ The following examples depict how you might configure [Cucumber] [Cucumber] to
169
+ run tests against an already running application server (e.g. a remote staging
170
+ site) and a Rack application server that is managed by the test suite.
171
+
172
+ #### Testing an already running server ####
173
+
174
+ If you are running your tests against an already running server, you can simply
175
+ add the following to `features/support/kookaburra_setup.rb`:
74
176
 
75
177
  require 'kookaburra/test_helpers'
178
+
179
+ # Change these to the files that define your custom GivenDriver and UIDriver
180
+ # implementations.
76
181
  require 'my_app/kookaburra/given_driver'
77
182
  require 'my_app/kookaburra/ui_driver'
78
183
 
@@ -82,7 +187,7 @@ For [Cucumber] [Cucumber], add the following to `features/support/kookaburra_set
82
187
  c.given_driver_class = MyApp::Kookaburra::GivenDriver
83
188
  c.ui_driver_class = MyApp::Kookaburra::UIDriver
84
189
  c.app_host = 'http://my_app.example.com:1234'
85
- c.browser = Capybara
190
+ c.browser = Capybara::Session.new(:selenium)
86
191
  c.server_error_detection { |browser|
87
192
  browser.has_css?('head title', :text => 'Internal Server Error')
88
193
  }
@@ -90,8 +195,63 @@ For [Cucumber] [Cucumber], add the following to `features/support/kookaburra_set
90
195
 
91
196
  World(Kookaburra::TestHelpers)
92
197
 
93
- This will cause the #k, #given and #ui methods will be available in your
94
- Cucumber step definitions.
198
+ #### Managing startup and shutdown of a Rack application server ####
199
+
200
+ While developing, it can be helpful to run your acceptance tests against a
201
+ locally-running server that is managed by your test suite. The setup is similar
202
+ to that in the previous section, but it adds before and after hooks to launch
203
+ and shut down a Rack application server. Just add the following to
204
+ `features/support/kookaburra_setup.rb`:
205
+
206
+ require 'kookaburra/test_helpers'
207
+ require 'thwait'
208
+
209
+ # Change these to the files that define your custom GivenDriver and UIDriver
210
+ # implementations.
211
+ require 'my_app/kookaburra/given_driver'
212
+ require 'my_app/kookaburra/ui_driver'
213
+
214
+ APP_PORT = ENV['APP_PORT'] || 3009
215
+
216
+ # c.app_host below should be set to whatever the root URL of your running
217
+ # application is.
218
+ Kookaburra.configure do |c|
219
+ c.given_driver_class = MyApp::Kookaburra::GivenDriver
220
+ c.ui_driver_class = MyApp::Kookaburra::UIDriver
221
+ c.app_host = 'http://localhost:%d' % APP_PORT
222
+ c.browser = Capybara::Session.new(:selenium)
223
+ c.server_error_detection { |browser|
224
+ browser.has_css?('head title', :text => 'Internal Server Error')
225
+ }
226
+ end
227
+
228
+ World(Kookaburra::TestHelpers)
229
+
230
+ # Start the application server prior to running a group of integration
231
+ # specs. `MyApplication` below should be replaced with the object that
232
+ # implements the Rack `#call` interface for your application. For a Rails
233
+ # app, this would be along the lines of `MyAppName::Application`.
234
+ # Runs the server process in a forked process, and get a handle on that
235
+ # process, so that it can be shut down after the tests run.
236
+ @rack_server_pid = fork do
237
+ Capybara.server_port = APP_PORT
238
+ Capybara::Server.new(MyApplication).boot
239
+
240
+ # This ensures that this forked process keeps running, because the
241
+ # actual server is started in a thread by Capybara.
242
+ ThreadsWait.all_waits(Thread.list)
243
+ end
244
+
245
+ # Give the server a chance to start up in the forked process. You may
246
+ # need to adjust this depending on how long your application takes to
247
+ # start up.
248
+ sleep 1
249
+
250
+ # After the tests run, kill the server process.
251
+ at_exit do
252
+ Process.kill(9, @rack_server_pid)
253
+ Process.wait
254
+ end
95
255
 
96
256
  ## Defining Your Testing DSL ##
97
257
 
data/Rakefile CHANGED
@@ -32,12 +32,6 @@ task :default => :spec
32
32
  desc 'Run specs'
33
33
  RSpec::Core::RakeTask.new
34
34
 
35
- desc "Generate code coverage"
36
- RSpec::Core::RakeTask.new(:coverage) do |t|
37
- t.rcov = true
38
- t.rcov_opts = ['--exclude', 'spec']
39
- end
40
-
41
35
  require 'reek/rake/task'
42
36
  Reek::Rake::Task.new do |t|
43
37
  t.fail_on_error = true
@@ -47,3 +41,13 @@ end
47
41
 
48
42
  require 'yard'
49
43
  YARD::Rake::YardocTask.new
44
+
45
+ desc "Run rake on all supported rubies"
46
+ task :all_rubies do
47
+ rubies = %w[ruby-1.9.3 ruby-1.9.2 ree-1.8.7 ruby-1.8.7]
48
+ rubies.each do |ruby_version|
49
+ puts "Testing with #{ruby_version}"
50
+ system "rvm #{ruby_version}@kookaburra do rake" \
51
+ or raise "Failed to run rake with #{ruby_version}!"
52
+ end
53
+ end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.23.0
1
+ 0.23.1
data/kookaburra.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "kookaburra"
8
- s.version = "0.23.0"
8
+ s.version = "0.23.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["John Wilger", "Sam Livingston-Gray", "Ravi Gadad"]
12
- s.date = "2012-04-02"
12
+ s.date = "2012-04-13"
13
13
  s.description = "Cucumber + Capybara = Kookaburra? It made sense at the time."
14
14
  s.email = "johnwilger@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -59,7 +59,7 @@ Gem::Specification.new do |s|
59
59
  s.homepage = "http://github.com/projectdx/kookaburra"
60
60
  s.licenses = ["MIT"]
61
61
  s.require_paths = ["lib"]
62
- s.rubygems_version = "1.8.17"
62
+ s.rubygems_version = "1.8.21"
63
63
  s.summary = "WindowDriver testing pattern for Ruby apps"
64
64
 
65
65
  if s.respond_to? :specification_version then
@@ -74,7 +74,6 @@ Gem::Specification.new do |s|
74
74
  s.add_development_dependency(%q<yard>, [">= 0"])
75
75
  s.add_development_dependency(%q<redcarpet>, ["~> 1.0"])
76
76
  s.add_development_dependency(%q<jeweler>, [">= 0"])
77
- s.add_development_dependency(%q<rcov>, [">= 0"])
78
77
  s.add_development_dependency(%q<reek>, [">= 0"])
79
78
  s.add_development_dependency(%q<sinatra>, [">= 0"])
80
79
  else
@@ -86,7 +85,6 @@ Gem::Specification.new do |s|
86
85
  s.add_dependency(%q<yard>, [">= 0"])
87
86
  s.add_dependency(%q<redcarpet>, ["~> 1.0"])
88
87
  s.add_dependency(%q<jeweler>, [">= 0"])
89
- s.add_dependency(%q<rcov>, [">= 0"])
90
88
  s.add_dependency(%q<reek>, [">= 0"])
91
89
  s.add_dependency(%q<sinatra>, [">= 0"])
92
90
  end
@@ -99,7 +97,6 @@ Gem::Specification.new do |s|
99
97
  s.add_dependency(%q<yard>, [">= 0"])
100
98
  s.add_dependency(%q<redcarpet>, ["~> 1.0"])
101
99
  s.add_dependency(%q<jeweler>, [">= 0"])
102
- s.add_dependency(%q<rcov>, [">= 0"])
103
100
  s.add_dependency(%q<reek>, [">= 0"])
104
101
  s.add_dependency(%q<sinatra>, [">= 0"])
105
102
  end
@@ -1,12 +1,16 @@
1
1
  require 'kookaburra/test_helpers'
2
2
  require 'kookaburra/json_api_driver'
3
3
  require 'capybara'
4
+ require 'thwait'
4
5
 
5
6
  # These are required for the Rack app used for testing
6
7
  require 'sinatra/base'
7
8
  require 'active_support/json'
8
9
  require 'active_support/hash_with_indifferent_access'
9
10
 
11
+ # The server port that the application server will attach to
12
+ APP_PORT = ENV['APP_PORT'] || 3009
13
+
10
14
  describe "testing a Rack application with Kookaburra" do
11
15
  describe "with an HTML interface" do
12
16
  describe "with a JSON API" do
@@ -299,15 +303,10 @@ describe "testing a Rack application with Kookaburra" do
299
303
  end
300
304
 
301
305
  before(:all) do
302
- @rack_server_port = 3339
303
306
  @rack_server_pid = fork do
304
- Rack::Server.start(
305
- :app => JsonApiApp.new,
306
- :server => :webrick,
307
- :Host => '127.0.0.1',
308
- :Port => @rack_server_port,
309
- :environment => 'production'
310
- )
307
+ Capybara.server_port = APP_PORT
308
+ Capybara::Server.new(JsonApiApp.new).boot
309
+ ThreadsWait.all_waits(Thread.list)
311
310
  end
312
311
  sleep 1 # Give the server a chance to start up.
313
312
  end
@@ -321,7 +320,7 @@ describe "testing a Rack application with Kookaburra" do
321
320
  Kookaburra.configure do |c|
322
321
  c.ui_driver_class = MyUIDriver
323
322
  c.given_driver_class = MyGivenDriver
324
- c.app_host = 'http://127.0.0.1:%d' % @rack_server_port
323
+ c.app_host = 'http://127.0.0.1:%d' % APP_PORT
325
324
  c.browser = Capybara::Session.new(:selenium)
326
325
  c.server_error_detection do |browser|
327
326
  browser.has_css?('head title', :text => 'Internal Server Error')
@@ -26,7 +26,10 @@ module MentalModelMatcherMacros
26
26
  end
27
27
 
28
28
  def from_line
29
- '(line %d)' % caller(2).first.split(':').last
29
+ #puts '#' * 80
30
+ #puts "it is: '#{caller(2).first.split(':').inspect}'"
31
+ #puts '#' * 81
32
+ '(line %d)' % caller(2).first.split(':')[1]
30
33
  end
31
34
 
32
35
  def it_complains_about_missing(missing, options)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kookaburra
3
3
  version: !ruby/object:Gem::Version
4
- hash: 67
4
+ hash: 65
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 23
9
- - 0
10
- version: 0.23.0
9
+ - 1
10
+ version: 0.23.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - John Wilger
@@ -17,10 +17,9 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2012-04-02 00:00:00 Z
20
+ date: 2012-04-13 00:00:00 Z
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
- prerelease: false
24
23
  type: :runtime
25
24
  requirement: &id001 !ruby/object:Gem::Requirement
26
25
  none: false
@@ -33,8 +32,8 @@ dependencies:
33
32
  version: "0"
34
33
  version_requirements: *id001
35
34
  name: i18n
36
- - !ruby/object:Gem::Dependency
37
35
  prerelease: false
36
+ - !ruby/object:Gem::Dependency
38
37
  type: :runtime
39
38
  requirement: &id002 !ruby/object:Gem::Requirement
40
39
  none: false
@@ -48,8 +47,8 @@ dependencies:
48
47
  version: "3.0"
49
48
  version_requirements: *id002
50
49
  name: activesupport
51
- - !ruby/object:Gem::Dependency
52
50
  prerelease: false
51
+ - !ruby/object:Gem::Dependency
53
52
  type: :runtime
54
53
  requirement: &id003 !ruby/object:Gem::Requirement
55
54
  none: false
@@ -62,8 +61,8 @@ dependencies:
62
61
  version: "0"
63
62
  version_requirements: *id003
64
63
  name: patron
65
- - !ruby/object:Gem::Dependency
66
64
  prerelease: false
65
+ - !ruby/object:Gem::Dependency
67
66
  type: :development
68
67
  requirement: &id004 !ruby/object:Gem::Requirement
69
68
  none: false
@@ -76,8 +75,8 @@ dependencies:
76
75
  version: "0"
77
76
  version_requirements: *id004
78
77
  name: rspec
79
- - !ruby/object:Gem::Dependency
80
78
  prerelease: false
79
+ - !ruby/object:Gem::Dependency
81
80
  type: :development
82
81
  requirement: &id005 !ruby/object:Gem::Requirement
83
82
  none: false
@@ -90,8 +89,8 @@ dependencies:
90
89
  version: "0"
91
90
  version_requirements: *id005
92
91
  name: capybara
93
- - !ruby/object:Gem::Dependency
94
92
  prerelease: false
93
+ - !ruby/object:Gem::Dependency
95
94
  type: :development
96
95
  requirement: &id006 !ruby/object:Gem::Requirement
97
96
  none: false
@@ -104,8 +103,8 @@ dependencies:
104
103
  version: "0"
105
104
  version_requirements: *id006
106
105
  name: yard
107
- - !ruby/object:Gem::Dependency
108
106
  prerelease: false
107
+ - !ruby/object:Gem::Dependency
109
108
  type: :development
110
109
  requirement: &id007 !ruby/object:Gem::Requirement
111
110
  none: false
@@ -119,8 +118,8 @@ dependencies:
119
118
  version: "1.0"
120
119
  version_requirements: *id007
121
120
  name: redcarpet
122
- - !ruby/object:Gem::Dependency
123
121
  prerelease: false
122
+ - !ruby/object:Gem::Dependency
124
123
  type: :development
125
124
  requirement: &id008 !ruby/object:Gem::Requirement
126
125
  none: false
@@ -133,8 +132,8 @@ dependencies:
133
132
  version: "0"
134
133
  version_requirements: *id008
135
134
  name: jeweler
136
- - !ruby/object:Gem::Dependency
137
135
  prerelease: false
136
+ - !ruby/object:Gem::Dependency
138
137
  type: :development
139
138
  requirement: &id009 !ruby/object:Gem::Requirement
140
139
  none: false
@@ -146,9 +145,9 @@ dependencies:
146
145
  - 0
147
146
  version: "0"
148
147
  version_requirements: *id009
149
- name: rcov
150
- - !ruby/object:Gem::Dependency
148
+ name: reek
151
149
  prerelease: false
150
+ - !ruby/object:Gem::Dependency
152
151
  type: :development
153
152
  requirement: &id010 !ruby/object:Gem::Requirement
154
153
  none: false
@@ -160,21 +159,8 @@ dependencies:
160
159
  - 0
161
160
  version: "0"
162
161
  version_requirements: *id010
163
- name: reek
164
- - !ruby/object:Gem::Dependency
165
- prerelease: false
166
- type: :development
167
- requirement: &id011 !ruby/object:Gem::Requirement
168
- none: false
169
- requirements:
170
- - - ">="
171
- - !ruby/object:Gem::Version
172
- hash: 3
173
- segments:
174
- - 0
175
- version: "0"
176
- version_requirements: *id011
177
162
  name: sinatra
163
+ prerelease: false
178
164
  description: Cucumber + Capybara = Kookaburra? It made sense at the time.
179
165
  email: johnwilger@gmail.com
180
166
  executables: []
@@ -252,7 +238,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
252
238
  requirements: []
253
239
 
254
240
  rubyforge_project:
255
- rubygems_version: 1.8.17
241
+ rubygems_version: 1.8.21
256
242
  signing_key:
257
243
  specification_version: 3
258
244
  summary: WindowDriver testing pattern for Ruby apps