pickle 0.3.0 → 0.3.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.txt +6 -0
- data/README.rdoc +59 -43
- data/VERSION +1 -1
- data/lib/generators/pickle_generator.rb +69 -0
- data/pickle.gemspec +3 -2
- metadata +5 -4
data/History.txt
CHANGED
data/README.rdoc
CHANGED
@@ -10,76 +10,66 @@ References to the models are stored in the current world, not necessarily for th
|
|
10
10
|
(although you could use it for that), but for enabling easy reference to urls, and for
|
11
11
|
building complex givens which require a bunch of models collaborating
|
12
12
|
|
13
|
-
==
|
14
|
-
|
15
|
-
<b>Github</b> for code: http://github.com/ianwhite/pickle
|
13
|
+
== Quickstart
|
16
14
|
|
17
|
-
|
15
|
+
This is a quickstart guide for rails apps. Firstly, install {cucumber-rails}[http://github.com/aslakhellesoy/cucumber-rails], and its dependencies.
|
16
|
+
Then do the following:
|
18
17
|
|
19
|
-
|
18
|
+
=== Rails 3:
|
20
19
|
|
21
|
-
|
20
|
+
Add the gem to your Gemfile:
|
22
21
|
|
23
|
-
|
22
|
+
gem 'pickle'
|
23
|
+
|
24
|
+
Then install with:
|
24
25
|
|
25
|
-
|
26
|
+
bundle install
|
27
|
+
|
28
|
+
Discover the options for the generator:
|
26
29
|
|
27
|
-
|
30
|
+
rails g pickle --help
|
28
31
|
|
29
|
-
|
32
|
+
Run the generator, e.g:
|
30
33
|
|
31
|
-
|
34
|
+
rails g pickle --paths --email
|
35
|
+
|
36
|
+
=== For Rails 2:
|
32
37
|
|
33
|
-
|
34
|
-
sudo gem install pickle
|
38
|
+
Add the following to config/environments/cucumber:
|
35
39
|
|
36
|
-
# gem dependency (in config/environments/cucumber.rb)
|
37
40
|
config.gem 'pickle'
|
38
41
|
|
39
|
-
|
40
|
-
script/plugin install git://github.com/ianwhite/pickle.git
|
42
|
+
Install the gem with
|
41
43
|
|
42
|
-
|
43
|
-
|
44
|
+
rake gems:install RAILS_ENV=cucumber
|
45
|
+
|
46
|
+
Run the generator with:
|
44
47
|
|
45
|
-
|
46
|
-
|
47
|
-
It's tested against all stable branches of 2.x rails, and edge, with the latest versions of rspec, cucumber, factory_girl, machinist.
|
48
|
-
|
49
|
-
== Run the tests
|
48
|
+
script/generate pickle [paths] [email]
|
50
49
|
|
51
|
-
|
50
|
+
== Resources
|
52
51
|
|
53
|
-
|
52
|
+
<b>Github</b> for code: http://github.com/ianwhite/pickle
|
54
53
|
|
55
|
-
|
54
|
+
<b>Gemcutter</b> for the gem: http://gemcutter.org/gems/pickle
|
56
55
|
|
57
|
-
|
56
|
+
<b>Rdoc.info</b> for docs: http://rdoc.info/projects/ianwhite/pickle
|
58
57
|
|
59
|
-
|
58
|
+
<b>Google group</b> for questions: http://groups.google.com/group/pickle-cucumber
|
60
59
|
|
61
|
-
|
60
|
+
<b>Lighthouse</b> for bugs: http://ianwhite.lighthouseapp.com/projects/25941-pickle
|
62
61
|
|
63
|
-
|
64
|
-
* {Josh Bassett}[http://github.com/nullobject]
|
65
|
-
* {Nick Rutherford}[http://github.com/nruth]
|
66
|
-
* {Tobi Knaup}[http://github.com/guenter]
|
67
|
-
* {Michael MacDonald}[http://github.com/schlick]
|
68
|
-
* {Michael Moen}[http://github.com/UnderpantsGnome]
|
69
|
-
* {Myron Marston}[http://github.com/myronmarston]
|
70
|
-
* {Stephan Hagemann}[http://github.com/xing]
|
71
|
-
* {Chris Flipse}[http://github.com/cflipse]
|
62
|
+
<b>Railscast</b> presentation: http://railscasts.com/episodes/186-pickle-with-cucumber
|
72
63
|
|
73
|
-
|
64
|
+
<b>Blog articles</b>: {dynamic50: Integration testing with cucumber and pickle}[http://blog.dynamic50.com/index.php/2009/04/integration-testing-with-cucumber-and-pickle/], {rubyflare: pickle my cucumber}[http://rubyflare.com/2009/10/28/pickle-my-cucumber/]
|
74
65
|
|
75
|
-
(you'd better install cucumber)
|
76
66
|
|
77
|
-
|
67
|
+
== Using Pickle
|
78
68
|
|
79
69
|
Now have a look at <tt>features/step_definitions/pickle_steps.rb</tt>
|
80
70
|
|
81
|
-
If you want path steps and email steps then just add 'paths' and/or 'email'
|
82
|
-
written to <tt>features/env/paths.rb</tt> and
|
71
|
+
If you want path steps and email steps then just add the 'paths' and/or 'email' options to the generator.
|
72
|
+
The code/steps will be written to <tt>features/env/paths.rb</tt> and
|
83
73
|
<tt>features/step_definitions/email_steps.rb</tt> respectively.
|
84
74
|
|
85
75
|
=== Using with plain ole Active Record or DataMapper
|
@@ -297,3 +287,29 @@ can build up composite objects with ease
|
|
297
287
|
# example of use
|
298
288
|
Given a user exists
|
299
289
|
And a post exists with author: the user # this step will assign the above user as :author on the post
|
290
|
+
|
291
|
+
== Run the tests
|
292
|
+
|
293
|
+
To run the specs do:
|
294
|
+
|
295
|
+
rake spec
|
296
|
+
|
297
|
+
To run the features (rails 2.3 only ATM):
|
298
|
+
|
299
|
+
rake cucumber
|
300
|
+
|
301
|
+
== Contributors
|
302
|
+
|
303
|
+
The following people have made Pickle better:
|
304
|
+
|
305
|
+
* {Szymon Nowak}[http://github.com/szimek]
|
306
|
+
* {H.J. Blok}[http://github.com/hjblok]
|
307
|
+
* {Daniel Neighman}[http://github.com/hassox]
|
308
|
+
* {Josh Bassett}[http://github.com/nullobject]
|
309
|
+
* {Nick Rutherford}[http://github.com/nruth]
|
310
|
+
* {Tobi Knaup}[http://github.com/guenter]
|
311
|
+
* {Michael MacDonald}[http://github.com/schlick]
|
312
|
+
* {Michael Moen}[http://github.com/UnderpantsGnome]
|
313
|
+
* {Myron Marston}[http://github.com/myronmarston]
|
314
|
+
* {Stephan Hagemann}[http://github.com/xing]
|
315
|
+
* {Chris Flipse}[http://github.com/cflipse]
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.1
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
class PickleGenerator < Rails::Generators::Base
|
4
|
+
desc "Generates Pickle step files."
|
5
|
+
|
6
|
+
# Use the same templates as Rails 2 generator
|
7
|
+
source_root File.expand_path("../../../rails_generators/pickle/templates", __FILE__)
|
8
|
+
|
9
|
+
class_option :paths, :desc => "Generate features/support/paths.rb file.", :type => :boolean
|
10
|
+
class_option :email, :desc => "Generate features/step_definitions/email_steps.rb file", :type => :boolean
|
11
|
+
|
12
|
+
def initialize(args = [], options = {}, config = {})
|
13
|
+
super
|
14
|
+
|
15
|
+
if self.options.paths? && !File.exists?("features/support/paths.rb")
|
16
|
+
say "features/support/paths.rb not found, is your cucumber up to date?", :red
|
17
|
+
exit
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def create_directories
|
22
|
+
empty_directory "features/step_definitions"
|
23
|
+
empty_directory "features/support"
|
24
|
+
end
|
25
|
+
|
26
|
+
def copy_pickle_steps_file
|
27
|
+
template "pickle_steps.rb", "features/step_definitions/pickle_steps.rb"
|
28
|
+
template "pickle.rb", "features/support/pickle.rb"
|
29
|
+
end
|
30
|
+
|
31
|
+
def copy_paths_file
|
32
|
+
return unless options.paths?
|
33
|
+
|
34
|
+
current_paths = File.read("features/support/paths.rb")
|
35
|
+
unless current_paths.include?('#{capture_model}')
|
36
|
+
if current_paths =~ /^(.*)(\n\s+else\n\s+raise "Can't find.*".*$)/m
|
37
|
+
@current_paths_header = $1
|
38
|
+
@current_paths_footer = $2
|
39
|
+
end
|
40
|
+
template "paths.rb", "features/support/paths.rb"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def copy_email_steps_file
|
45
|
+
return unless options.email?
|
46
|
+
template "email_steps.rb", "features/step_definitions/email_steps.rb"
|
47
|
+
template "email.rb", "features/support/email.rb"
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
private
|
52
|
+
|
53
|
+
# Compatibility methods for Rails 2 templates
|
54
|
+
def pickle_path
|
55
|
+
options.paths?
|
56
|
+
end
|
57
|
+
|
58
|
+
def pickle_email
|
59
|
+
options.email?
|
60
|
+
end
|
61
|
+
|
62
|
+
def current_paths_header
|
63
|
+
@current_paths_header
|
64
|
+
end
|
65
|
+
|
66
|
+
def current_paths_footer
|
67
|
+
@current_paths_footer
|
68
|
+
end
|
69
|
+
end
|
data/pickle.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{pickle}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ian White"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-07-31}
|
13
13
|
s.description = %q{Easy model creation and reference in your cucumber features}
|
14
14
|
s.email = %q{ian.w.white@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -52,6 +52,7 @@ Gem::Specification.new do |s|
|
|
52
52
|
"features/support/pickle.rb",
|
53
53
|
"features/support/pickle_app.rb",
|
54
54
|
"init.rb",
|
55
|
+
"lib/generators/pickle_generator.rb",
|
55
56
|
"lib/pickle.rb",
|
56
57
|
"lib/pickle/adapter.rb",
|
57
58
|
"lib/pickle/adapters/active_record.rb",
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pickle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 1
|
10
|
+
version: 0.3.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ian White
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-07-31 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|
@@ -64,6 +64,7 @@ files:
|
|
64
64
|
- features/support/pickle.rb
|
65
65
|
- features/support/pickle_app.rb
|
66
66
|
- init.rb
|
67
|
+
- lib/generators/pickle_generator.rb
|
67
68
|
- lib/pickle.rb
|
68
69
|
- lib/pickle/adapter.rb
|
69
70
|
- lib/pickle/adapters/active_record.rb
|