jeweler 1.2.1 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/README.markdown +28 -40
- data/Rakefile +25 -31
- data/VERSION.yml +3 -2
- data/bin/jeweler +1 -4
- data/features/generator/cucumber.feature +3 -3
- data/features/generator/directory_layout.feature +6 -6
- data/features/generator/git.feature +6 -6
- data/features/generator/rakefile.feature +17 -17
- data/features/generator/test.feature +10 -3
- data/features/generator/test_helper.feature +16 -9
- data/features/step_definitions/filesystem_steps.rb +2 -2
- data/features/step_definitions/generator_steps.rb +11 -4
- data/features/support/env.rb +1 -1
- data/features/tasks/version.feature +7 -0
- data/features/tasks/version_bumping.feature +16 -0
- data/jeweler.gemspec +60 -34
- data/lib/jeweler.rb +49 -27
- data/lib/jeweler/commands.rb +22 -14
- data/lib/jeweler/commands/build_gem.rb +6 -1
- data/lib/jeweler/commands/install_gem.rb +1 -1
- data/lib/jeweler/commands/release_to_git.rb +57 -0
- data/lib/jeweler/commands/{release.rb → release_to_github.rb} +2 -22
- data/lib/jeweler/commands/release_to_rubyforge.rb +4 -3
- data/lib/jeweler/commands/setup_rubyforge.rb +7 -1
- data/lib/jeweler/commands/version/write.rb +2 -2
- data/lib/jeweler/commands/write_gemspec.rb +5 -3
- data/lib/jeweler/gemcutter_tasks.rb +2 -1
- data/lib/jeweler/gemspec_helper.rb +27 -14
- data/lib/jeweler/generator.rb +60 -82
- data/lib/jeweler/generator/application.rb +5 -7
- data/lib/jeweler/generator/bacon_mixin.rb +1 -1
- data/lib/jeweler/generator/github_mixin.rb +29 -0
- data/lib/jeweler/generator/micronaut_mixin.rb +1 -1
- data/lib/jeweler/generator/minitest_mixin.rb +6 -6
- data/lib/jeweler/generator/options.rb +67 -11
- data/lib/jeweler/generator/riot_mixin.rb +42 -0
- data/lib/jeweler/generator/rspec_mixin.rb +1 -1
- data/lib/jeweler/generator/shoulda_mixin.rb +4 -4
- data/lib/jeweler/generator/testspec_mixin.rb +42 -0
- data/lib/jeweler/generator/testunit_mixin.rb +3 -3
- data/lib/jeweler/generator/yard_mixin.rb +1 -1
- data/lib/jeweler/rubyforge_tasks.rb +42 -24
- data/lib/jeweler/specification.rb +11 -5
- data/lib/jeweler/tasks.rb +78 -41
- data/lib/jeweler/templates/.gitignore +17 -1
- data/lib/jeweler/templates/Rakefile +4 -8
- data/lib/jeweler/templates/minitest/flunking.rb +2 -2
- data/lib/jeweler/templates/minitest/helper.rb +3 -3
- data/lib/jeweler/templates/riot/flunking.rb +11 -0
- data/lib/jeweler/templates/riot/helper.rb +3 -0
- data/lib/jeweler/templates/rspec/spec.opts +1 -0
- data/lib/jeweler/templates/shoulda/flunking.rb +2 -2
- data/lib/jeweler/templates/testspec/flunking.rb +7 -0
- data/lib/jeweler/templates/testspec/helper.rb +7 -0
- data/lib/jeweler/templates/testunit/flunking.rb +2 -2
- data/lib/jeweler/version_helper.rb +14 -5
- data/test/fixtures/existing-project-with-version-constant/.document +5 -0
- data/test/fixtures/existing-project-with-version-constant/.gitignore +5 -0
- data/test/fixtures/existing-project-with-version-constant/LICENSE +20 -0
- data/test/fixtures/existing-project-with-version-constant/README.rdoc +7 -0
- data/test/fixtures/existing-project-with-version-constant/Rakefile +83 -0
- data/test/fixtures/existing-project-with-version-constant/existing-project-with-version.gemspec +29 -0
- data/test/fixtures/existing-project-with-version-constant/lib/existing_project_with_version.rb +0 -0
- data/test/fixtures/existing-project-with-version-constant/test/existing_project_with_version_test.rb +7 -0
- data/test/fixtures/existing-project-with-version-constant/test/test_helper.rb +10 -0
- data/test/jeweler/commands/test_build_gem.rb +54 -23
- data/test/jeweler/commands/test_install_gem.rb +4 -4
- data/test/jeweler/commands/test_release_to_git.rb +201 -0
- data/test/jeweler/commands/{test_release.rb → test_release_to_github.rb} +10 -49
- data/test/jeweler/commands/test_release_to_rubyforge.rb +0 -4
- data/test/jeweler/commands/test_setup_rubyforge.rb +0 -4
- data/test/jeweler/commands/test_write_gemspec.rb +11 -2
- data/test/jeweler/commands/version/test_write.rb +1 -2
- data/test/{test_application.rb → jeweler/generator/test_application.rb} +23 -50
- data/test/{test_options.rb → jeweler/generator/test_options.rb} +72 -8
- data/test/{test_gemspec_helper.rb → jeweler/test_gemspec_helper.rb} +5 -1
- data/test/{test_generator.rb → jeweler/test_generator.rb} +32 -76
- data/test/{test_generator_initialization.rb → jeweler/test_generator_initialization.rb} +43 -35
- data/test/{test_generator_mixins.rb → jeweler/test_generator_mixins.rb} +8 -3
- data/test/{test_specification.rb → jeweler/test_specification.rb} +0 -0
- data/test/jeweler/test_tasks.rb +50 -0
- data/test/{test_version_helper.rb → jeweler/test_version_helper.rb} +66 -5
- data/test/test_helper.rb +20 -2
- data/test/test_jeweler.rb +21 -8
- metadata +58 -26
- data/ROADMAP +0 -12
- data/test/test_tasks.rb +0 -35
data/.gitignore
CHANGED
data/README.markdown
CHANGED
@@ -39,7 +39,7 @@ The yield object here, `gemspec`, is a `Gem::Specification` object. See the [Cus
|
|
39
39
|
|
40
40
|
## Using to start a new project
|
41
41
|
|
42
|
-
Jeweler provides a generator. It requires you to [setup your name and email for git](http://github.com/
|
42
|
+
Jeweler provides a generator. It requires you to [setup your name and email for git](http://help.github.com/git-email-settings/) and [your username and token for GitHub](http://github.com/guides/local-github-config).
|
43
43
|
|
44
44
|
jeweler the-perfect-gem
|
45
45
|
|
@@ -105,7 +105,22 @@ Jeweler can also handle releasing to [Gemcutter](http://gemcutter.org). There ar
|
|
105
105
|
|
106
106
|
* [Create an account on Gemcutter](http://gemcutter.org/sign_up)
|
107
107
|
* Install the Gemcutter gem: sudo gem install gemcutter
|
108
|
-
* Run 'gemcutter tumble' to set up gemcutter
|
108
|
+
* Run 'gemcutter tumble' to set up RubyGems to use gemcutter as the default source
|
109
|
+
* Update your Rakefile to make an instance of `Jeweler::GemcutterTasks`
|
110
|
+
|
111
|
+
|
112
|
+
A Rakefile setup for gemcutter would include something like this:
|
113
|
+
|
114
|
+
begin
|
115
|
+
require 'jeweler'
|
116
|
+
Jeweler::Tasks.new do |gem|
|
117
|
+
# ommitted for brevity
|
118
|
+
end
|
119
|
+
Jeweler::GemcutterTasks.new
|
120
|
+
rescue LoadError
|
121
|
+
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
122
|
+
end
|
123
|
+
|
109
124
|
|
110
125
|
With all that setup out of the way, you can now release to Gemcutter with impunity. This would release the current version of your gem.
|
111
126
|
|
@@ -116,59 +131,32 @@ With all that setup out of the way, you can now release to Gemcutter with impuni
|
|
116
131
|
Jeweler can also handle releasing to [RubyForge](http://rubyforge.org). There are a few steps you need to do before doing any RubyForge releases with Jeweler:
|
117
132
|
|
118
133
|
* [Create an account on RubyForge](http://rubyforge.org/account/register.php)
|
119
|
-
* Request a project on RubyForge.
|
120
|
-
* You might want to create an umbrella project where you can publish your gems, instead of one project per gem
|
134
|
+
* Request a project on RubyForge.
|
121
135
|
* Install the RubyForge gem: sudo gem install rubyforge
|
122
136
|
* Run 'rubyforge setup' and fill in your username and password for RubyForge
|
123
137
|
* Run 'rubyforge config' to pull down information about your projects
|
124
138
|
* Run 'rubyforge login' to make sure you are able to login
|
139
|
+
* In Jeweler::Tasks, you must set `rubyforge_project` to the project you just created
|
140
|
+
* Add Jeweler::RubyforgeTasks to bring in the appropriate tasks.
|
141
|
+
* Note, using `jeweler --rubyforge` when generating the project does this for you automatically.
|
125
142
|
|
126
|
-
|
143
|
+
A Rakefile setup for rubyforge would include something like this:
|
127
144
|
|
128
145
|
begin
|
129
146
|
require 'jeweler'
|
130
147
|
Jeweler::Tasks.new do |s|
|
131
|
-
|
132
|
-
s.summary = "TODO"
|
133
|
-
s.description = "TODO"
|
134
|
-
s.email = "josh@technicalpickles.com"
|
135
|
-
s.homepage = "http://github.com/technicalpickles/the-perfect-gem"
|
136
|
-
s.description = "TODO"
|
137
|
-
s.authors = ["Josh Nichols"]
|
148
|
+
# ommitted for brevity
|
138
149
|
s.rubyforge_project = 'the-perfect-gem' # This line would be new
|
139
150
|
end
|
140
|
-
rescue LoadError
|
141
|
-
puts "Jeweler not available. Install it with: sudo gem install jeweler"
|
142
|
-
end
|
143
151
|
|
144
|
-
|
145
|
-
|
146
|
-
require 'rake/contrib/sshpublisher'
|
147
|
-
namespace :rubyforge do
|
148
|
-
|
149
|
-
desc "Release gem and RDoc documentation to RubyForge"
|
150
|
-
task :release => ["rubyforge:release:gem", "rubyforge:release:docs"]
|
151
|
-
|
152
|
-
namespace :release do
|
153
|
-
desc "Publish RDoc to RubyForge."
|
154
|
-
task :docs => [:rdoc] do
|
155
|
-
config = YAML.load(
|
156
|
-
File.read(File.expand_path('~/.rubyforge/user-config.yml'))
|
157
|
-
)
|
158
|
-
|
159
|
-
host = "#{config['username']}@rubyforge.org"
|
160
|
-
remote_dir = "/var/www/gforge-projects/the-perfect-gem/"
|
161
|
-
local_dir = 'rdoc'
|
162
|
-
|
163
|
-
Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
|
164
|
-
end
|
165
|
-
end
|
152
|
+
Jeweler::RubyforgeTasks.new do |rubyforge|
|
153
|
+
rubyforge.doc_task = "rdoc"
|
166
154
|
end
|
167
155
|
rescue LoadError
|
168
|
-
puts "
|
156
|
+
puts "Jeweler, or a dependency, not available. Install it with: sudo gem install jeweler"
|
169
157
|
end
|
170
158
|
|
171
|
-
Now you must initially create a 'package' for your gem in your 'project':
|
159
|
+
Now you must initially create a 'package' for your gem in your RubyForge 'project':
|
172
160
|
|
173
161
|
$ rake rubyforge:setup
|
174
162
|
|
@@ -176,7 +164,7 @@ With all that setup out of the way, you can now release to RubyForge with impuni
|
|
176
164
|
|
177
165
|
$ rake rubyforge:release
|
178
166
|
|
179
|
-
## Workflow
|
167
|
+
## Release Workflow
|
180
168
|
|
181
169
|
* Hack, commit, hack, commit, etc, etc
|
182
170
|
* `rake version:bump:patch release` to do the actual version bump and release
|
data/Rakefile
CHANGED
@@ -2,39 +2,33 @@ require 'rake'
|
|
2
2
|
|
3
3
|
$LOAD_PATH.unshift('lib')
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
gem.add_development_dependency "mocha"
|
28
|
-
gem.add_development_dependency "redgreen"
|
29
|
-
end
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = "jeweler"
|
8
|
+
gem.summary = "Simple and opinionated helper for creating Rubygem projects on GitHub"
|
9
|
+
gem.email = "josh@technicalpickles.com"
|
10
|
+
gem.homepage = "http://github.com/technicalpickles/jeweler"
|
11
|
+
gem.description = "Simple and opinionated helper for creating Rubygem projects on GitHub"
|
12
|
+
gem.authors = ["Josh Nichols"]
|
13
|
+
gem.files.include %w(lib/jeweler/templates/.document lib/jeweler/templates/.gitignore)
|
14
|
+
|
15
|
+
gem.add_dependency "git", ">= 1.2.5"
|
16
|
+
gem.add_dependency "rubyforge", ">= 2.0.0"
|
17
|
+
gem.add_dependency "gemcutter", ">= 0.1.0"
|
18
|
+
|
19
|
+
gem.rubyforge_project = "pickles"
|
20
|
+
|
21
|
+
gem.add_development_dependency "thoughtbot-shoulda"
|
22
|
+
gem.add_development_dependency "mhennemeyer-output_catcher"
|
23
|
+
gem.add_development_dependency "rr"
|
24
|
+
gem.add_development_dependency "mocha"
|
25
|
+
gem.add_development_dependency "redgreen"
|
26
|
+
end
|
30
27
|
|
31
|
-
|
28
|
+
Jeweler::GemcutterTasks.new
|
32
29
|
|
33
|
-
|
34
|
-
|
35
|
-
end
|
36
|
-
rescue LoadError
|
37
|
-
puts "Jeweler, or one of its dependencies, is not available. Install it with: sudo gem install jeweler"
|
30
|
+
Jeweler::RubyforgeTasks.new do |t|
|
31
|
+
t.doc_task = :yardoc
|
38
32
|
end
|
39
33
|
|
40
34
|
|
data/VERSION.yml
CHANGED
data/bin/jeweler
CHANGED
@@ -12,7 +12,7 @@ Feature: generating cucumber stories
|
|
12
12
|
And a file named 'the-perfect-gem/features/the-perfect-gem.feature' is not created
|
13
13
|
And a file named 'the-perfect-gem/features/support/env.rb' is not created
|
14
14
|
And a file named 'the-perfect-gem/features/steps/the-perfect-gem_steps.rb' is not created
|
15
|
-
|
15
|
+
|
16
16
|
Scenario: basic cucumber setup
|
17
17
|
Given a working directory
|
18
18
|
And I have configured git sanely
|
@@ -60,8 +60,8 @@ Feature: generating cucumber stories
|
|
60
60
|
And I want cucumber stories
|
61
61
|
When I generate a minitest project named 'the-perfect-gem' that is 'zomg, so good'
|
62
62
|
|
63
|
-
Then 'features/support/env.rb' requires '
|
64
|
-
And cucumber world extends "
|
63
|
+
Then 'features/support/env.rb' requires 'minitest/unit'
|
64
|
+
And cucumber world extends "MiniTest::Assertions"
|
65
65
|
|
66
66
|
Scenario: cucumber setup for rspec
|
67
67
|
Given a working directory
|
@@ -32,8 +32,8 @@ Feature: generated directory layout
|
|
32
32
|
|
33
33
|
Then a directory named 'the-perfect-gem/test' is created
|
34
34
|
|
35
|
-
And a file named 'the-perfect-gem/test/
|
36
|
-
And a file named 'the-perfect-gem/test/
|
35
|
+
And a file named 'the-perfect-gem/test/helper.rb' is created
|
36
|
+
And a file named 'the-perfect-gem/test/test_the-perfect-gem.rb' is created
|
37
37
|
|
38
38
|
Scenario: rspec
|
39
39
|
Given a working directory
|
@@ -52,8 +52,8 @@ Feature: generated directory layout
|
|
52
52
|
|
53
53
|
Then a directory named 'the-perfect-gem/test' is created
|
54
54
|
|
55
|
-
And a file named 'the-perfect-gem/test/
|
56
|
-
And a file named 'the-perfect-gem/test/
|
55
|
+
And a file named 'the-perfect-gem/test/helper.rb' is created
|
56
|
+
And a file named 'the-perfect-gem/test/test_the-perfect-gem.rb' is created
|
57
57
|
|
58
58
|
Scenario: testunit
|
59
59
|
Given a working directory
|
@@ -62,8 +62,8 @@ Feature: generated directory layout
|
|
62
62
|
|
63
63
|
Then a directory named 'the-perfect-gem/test' is created
|
64
64
|
|
65
|
-
And a file named 'the-perfect-gem/test/
|
66
|
-
And a file named 'the-perfect-gem/test/
|
65
|
+
And a file named 'the-perfect-gem/test/helper.rb' is created
|
66
|
+
And a file named 'the-perfect-gem/test/test_the-perfect-gem.rb' is created
|
67
67
|
|
68
68
|
Scenario: micronaut
|
69
69
|
Given a working directory
|
@@ -48,8 +48,8 @@ Feature: git support
|
|
48
48
|
And I have configured git sanely
|
49
49
|
When I generate a minitest project named 'the-perfect-gem' that is 'zomg, so good'
|
50
50
|
|
51
|
-
Then 'test/
|
52
|
-
And 'test/
|
51
|
+
Then 'test/helper.rb' was checked in
|
52
|
+
And 'test/test_the-perfect-gem.rb' was checked in
|
53
53
|
|
54
54
|
Scenario: rspec
|
55
55
|
Given a working directory
|
@@ -64,16 +64,16 @@ Feature: git support
|
|
64
64
|
And I have configured git sanely
|
65
65
|
When I generate a shoulda project named 'the-perfect-gem' that is 'zomg, so good'
|
66
66
|
|
67
|
-
Then 'test/
|
68
|
-
And 'test/
|
67
|
+
Then 'test/helper.rb' was checked in
|
68
|
+
And 'test/test_the-perfect-gem.rb' was checked in
|
69
69
|
|
70
70
|
Scenario: testunit
|
71
71
|
Given a working directory
|
72
72
|
And I have configured git sanely
|
73
73
|
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
74
74
|
|
75
|
-
Then 'test/
|
76
|
-
And 'test/
|
75
|
+
Then 'test/helper.rb' was checked in
|
76
|
+
And 'test/test_the-perfect-gem.rb' was checked in
|
77
77
|
|
78
78
|
Scenario: micronaut
|
79
79
|
Given a working directory
|
@@ -22,7 +22,7 @@ Feature: generated Rakefile
|
|
22
22
|
Scenario: bacon
|
23
23
|
When I generate a bacon project named 'the-perfect-gem' that is 'zomg, so good'
|
24
24
|
|
25
|
-
|
25
|
+
|
26
26
|
Then 'Rakefile' requires 'rcov/rcovtask'
|
27
27
|
And Rakefile has 'spec/**/*_spec.rb' for the Rake::TestTask pattern
|
28
28
|
And Rakefile has 'spec/**/*_spec.rb' for the Rcov::RcovTask pattern
|
@@ -33,8 +33,8 @@ Feature: generated Rakefile
|
|
33
33
|
When I generate a minitest project named 'the-perfect-gem' that is 'zomg, so good'
|
34
34
|
|
35
35
|
Then 'Rakefile' requires 'rcov/rcovtask'
|
36
|
-
And Rakefile has 'test
|
37
|
-
And Rakefile has 'test
|
36
|
+
And Rakefile has 'test/**/test_*.rb' for the Rake::TestTask pattern
|
37
|
+
And Rakefile has 'test/**/test_*.rb' for the Rcov::RcovTask pattern
|
38
38
|
And Rakefile has 'test' in the Rcov::RcovTask libs
|
39
39
|
And Rakefile has "test" as the default task
|
40
40
|
|
@@ -49,8 +49,8 @@ Feature: generated Rakefile
|
|
49
49
|
When I generate a shoulda project named 'the-perfect-gem' that is 'zomg, so good'
|
50
50
|
|
51
51
|
Then 'Rakefile' requires 'rcov/rcovtask'
|
52
|
-
And Rakefile has 'test
|
53
|
-
And Rakefile has 'test
|
52
|
+
And Rakefile has 'test/**/test_*.rb' for the Rake::TestTask pattern
|
53
|
+
And Rakefile has 'test/**/test_*.rb' for the Rcov::RcovTask pattern
|
54
54
|
And Rakefile has 'test' in the Rcov::RcovTask libs
|
55
55
|
And Rakefile has "test" as the default task
|
56
56
|
|
@@ -65,47 +65,47 @@ Feature: generated Rakefile
|
|
65
65
|
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
66
66
|
|
67
67
|
Then 'Rakefile' requires 'rcov/rcovtask'
|
68
|
-
Then Rakefile has 'test
|
69
|
-
And Rakefile has 'test
|
68
|
+
Then Rakefile has 'test/**/test_*.rb' for the Rake::TestTask pattern
|
69
|
+
And Rakefile has 'test/**/test_*.rb' for the Rcov::RcovTask pattern
|
70
70
|
And Rakefile has 'test' in the Rcov::RcovTask libs
|
71
71
|
And Rakefile has "test" as the default task
|
72
72
|
|
73
73
|
Scenario: no cucumber
|
74
74
|
Given I do not want cucumber stories
|
75
75
|
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
76
|
-
Then Rakefile does not require 'cucumber/rake/task'
|
76
|
+
Then Rakefile does not require 'cucumber/rake/task'
|
77
77
|
And Rakefile does not instantiate a Cucumber::Rake::Task
|
78
78
|
|
79
79
|
Scenario: cucumber
|
80
80
|
Given I want cucumber stories
|
81
81
|
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
82
|
-
Then Rakefile requires 'cucumber/rake/task'
|
82
|
+
Then Rakefile requires 'cucumber/rake/task'
|
83
83
|
And Rakefile instantiates a Cucumber::Rake::Task
|
84
84
|
|
85
85
|
Scenario: no reek
|
86
86
|
Given I do not want reek
|
87
87
|
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
88
|
-
Then Rakefile does not require 'reek/rake_task'
|
88
|
+
Then Rakefile does not require 'reek/rake_task'
|
89
89
|
And Rakefile does not instantiate a Reek::RakeTask
|
90
90
|
|
91
91
|
Scenario: reek
|
92
92
|
Given I want reek
|
93
93
|
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
94
|
-
Then Rakefile requires 'reek/rake_task'
|
94
|
+
Then Rakefile requires 'reek/rake_task'
|
95
95
|
And Rakefile instantiates a Reek::RakeTask
|
96
96
|
|
97
97
|
Scenario: no roodi
|
98
98
|
Given I do not want roodi
|
99
99
|
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
100
|
-
Then Rakefile does not require 'roodi'
|
101
|
-
And Rakefile does not require 'roodi_task'
|
100
|
+
Then Rakefile does not require 'roodi'
|
101
|
+
And Rakefile does not require 'roodi_task'
|
102
102
|
And Rakefile does not instantiate a RoodiTask
|
103
103
|
|
104
104
|
Scenario: roodi
|
105
105
|
Given I want roodi
|
106
106
|
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
107
|
-
Then Rakefile requires 'roodi'
|
108
|
-
And Rakefile requires 'roodi_task'
|
107
|
+
Then Rakefile requires 'roodi'
|
108
|
+
And Rakefile requires 'roodi_task'
|
109
109
|
And Rakefile instantiates a RoodiTask
|
110
110
|
|
111
111
|
Scenario: no rubyforge
|
@@ -121,7 +121,7 @@ Feature: generated Rakefile
|
|
121
121
|
Scenario: yard
|
122
122
|
Given I want to use yard instead of rdoc
|
123
123
|
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
124
|
-
|
124
|
+
|
125
125
|
Then 'Rakefile' does not require 'rake/rdoctask'
|
126
126
|
And 'Rakefile' requires 'yard'
|
127
127
|
And Rakefile instantiates a YARD::Rake::YardocTask
|
@@ -129,7 +129,7 @@ Feature: generated Rakefile
|
|
129
129
|
Scenario: rdoc
|
130
130
|
Given I want to use rdoc instead of yard
|
131
131
|
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
132
|
-
|
132
|
+
|
133
133
|
Then 'Rakefile' does not require 'yard'
|
134
134
|
And 'Rakefile' requires 'rake/rdoctask'
|
135
135
|
And Rakefile does not instantiate a YARD::Rake::YardocTask
|
@@ -13,7 +13,7 @@ Feature: generated test or spec
|
|
13
13
|
Given a working directory
|
14
14
|
And I have configured git sanely
|
15
15
|
When I generate a minitest project named 'the-perfect-gem' that is 'zomg, so good'
|
16
|
-
Then 'test/
|
16
|
+
Then 'test/test_the-perfect-gem.rb' should define 'TestThePerfectGem' as a subclass of 'MiniTest::Unit::TestCase'
|
17
17
|
|
18
18
|
Scenario: rspec
|
19
19
|
Given a working directory
|
@@ -26,16 +26,23 @@ Feature: generated test or spec
|
|
26
26
|
And I have configured git sanely
|
27
27
|
And I intend to test with shoulda
|
28
28
|
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
29
|
-
Then 'test/
|
29
|
+
Then 'test/test_the-perfect-gem.rb' should define 'TestThePerfectGem' as a subclass of 'Test::Unit::TestCase'
|
30
30
|
|
31
31
|
Scenario: testunit
|
32
32
|
Given a working directory
|
33
33
|
And I have configured git sanely
|
34
34
|
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
35
|
-
Then 'test/
|
35
|
+
Then 'test/test_the-perfect-gem.rb' should define 'TestThePerfectGem' as a subclass of 'Test::Unit::TestCase'
|
36
36
|
|
37
37
|
Scenario: micronaut
|
38
38
|
Given a working directory
|
39
39
|
And I have configured git sanely
|
40
40
|
When I generate a micronaut project named 'the-perfect-gem' that is 'zomg, so good'
|
41
41
|
Then 'examples/the-perfect-gem_example.rb' should describe 'ThePerfectGem'
|
42
|
+
|
43
|
+
Scenario: riot
|
44
|
+
Given a working directory
|
45
|
+
And I have configured git sanely
|
46
|
+
When I generate a riot project named 'the-perfect-gem' that is 'zomg, so good'
|
47
|
+
Then 'test/the-perfect-gem_test.rb' should contextualize 'the-perfect-gem'
|
48
|
+
And 'test/the-perfect-gem_test.rb' requires 'teststrap'
|
@@ -14,9 +14,9 @@ Feature: generated test or spec
|
|
14
14
|
Given a working directory
|
15
15
|
And I have configured git sanely
|
16
16
|
When I generate a minitest project named 'the-perfect-gem' that is 'zomg, so good'
|
17
|
-
Then 'test/
|
18
|
-
And 'test/
|
19
|
-
And 'test/
|
17
|
+
Then 'test/helper.rb' requires 'minitest/unit'
|
18
|
+
And 'test/helper.rb' requires 'the-perfect-gem'
|
19
|
+
And 'test/helper.rb' should autorun tests
|
20
20
|
|
21
21
|
Scenario: rspec
|
22
22
|
Given a working directory
|
@@ -29,17 +29,17 @@ Feature: generated test or spec
|
|
29
29
|
Given a working directory
|
30
30
|
And I have configured git sanely
|
31
31
|
When I generate a shoulda project named 'the-perfect-gem' that is 'zomg, so good'
|
32
|
-
Then 'test/
|
33
|
-
And 'test/
|
34
|
-
And 'test/
|
32
|
+
Then 'test/helper.rb' requires 'test/unit'
|
33
|
+
And 'test/helper.rb' requires 'shoulda'
|
34
|
+
And 'test/helper.rb' requires 'the-perfect-gem'
|
35
35
|
|
36
36
|
Scenario: testunit
|
37
37
|
Given a working directory
|
38
38
|
And I have configured git sanely
|
39
39
|
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
40
|
-
Then 'test/
|
41
|
-
And 'test/
|
42
|
-
|
40
|
+
Then 'test/helper.rb' requires 'test/unit'
|
41
|
+
And 'test/helper.rb' requires 'the-perfect-gem'
|
42
|
+
|
43
43
|
Scenario: micronaut
|
44
44
|
Given a working directory
|
45
45
|
And I have configured git sanely
|
@@ -47,3 +47,10 @@ Feature: generated test or spec
|
|
47
47
|
Then 'examples/example_helper.rb' requires 'rubygems'
|
48
48
|
Then 'examples/example_helper.rb' requires 'micronaut'
|
49
49
|
Then 'examples/example_helper.rb' requires 'the-perfect-gem'
|
50
|
+
|
51
|
+
Scenario: riot
|
52
|
+
Given a working directory
|
53
|
+
And I have configured git sanely
|
54
|
+
When I generate a riot project named 'the-perfect-gem' that is 'zomg, so good'
|
55
|
+
Then 'test/teststrap.rb' requires 'riot'
|
56
|
+
And 'test/teststrap.rb' requires 'the-perfect-gem'
|