dima-jeweler 0.9.2 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +9 -0
- data/ChangeLog.markdown +54 -1
- data/README.markdown +89 -20
- data/ROADMAP +12 -0
- data/Rakefile +52 -12
- data/VERSION.yml +3 -3
- data/features/generator/cucumber.feature +83 -0
- data/features/generator/directory_layout.feature +76 -0
- data/features/generator/dotdocument.feature +14 -0
- data/features/generator/env_options.feature +9 -0
- data/features/generator/git.feature +94 -0
- data/features/generator/license.feature +11 -0
- data/features/generator/rakefile.feature +151 -0
- data/features/generator/readme.feature +12 -0
- data/features/generator/test.feature +41 -0
- data/features/generator/test_helper.feature +49 -0
- data/features/placeholder.feature +5 -0
- data/features/step_definitions/debug_steps.rb +6 -0
- data/features/step_definitions/filesystem_steps.rb +68 -0
- data/features/step_definitions/generator_steps.rb +284 -0
- data/features/step_definitions/task_steps.rb +6 -0
- data/features/support/env.rb +29 -0
- data/features/tasks/build_gem.feature +9 -0
- data/features/tasks/version.feature +24 -0
- data/features/tasks/version_bumping.feature +33 -0
- data/jeweler.gemspec +225 -0
- data/lib/jeweler.rb +39 -52
- data/lib/jeweler/commands.rb +2 -0
- data/lib/jeweler/commands/build_gem.rb +9 -0
- data/lib/jeweler/commands/check_dependencies.rb +52 -0
- data/lib/jeweler/commands/install_gem.rb +23 -2
- data/lib/jeweler/commands/release.rb +52 -12
- data/lib/jeweler/commands/release_to_rubyforge.rb +32 -9
- data/lib/jeweler/commands/setup_rubyforge.rb +57 -0
- data/lib/jeweler/commands/validate_gemspec.rb +9 -0
- data/lib/jeweler/commands/version/base.rb +13 -2
- data/lib/jeweler/commands/write_gemspec.rb +13 -0
- data/lib/jeweler/errors.rb +13 -1
- data/lib/jeweler/gemspec_helper.rb +31 -3
- data/lib/jeweler/generator.rb +80 -120
- data/lib/jeweler/generator/application.rb +12 -3
- data/lib/jeweler/generator/bacon_mixin.rb +43 -0
- data/lib/jeweler/generator/micronaut_mixin.rb +41 -0
- data/lib/jeweler/generator/minitest_mixin.rb +42 -0
- data/lib/jeweler/generator/options.rb +37 -3
- data/lib/jeweler/generator/rdoc_mixin.rb +9 -0
- data/lib/jeweler/generator/rspec_mixin.rb +42 -0
- data/lib/jeweler/generator/shoulda_mixin.rb +42 -0
- data/lib/jeweler/generator/testunit_mixin.rb +39 -0
- data/lib/jeweler/generator/yard_mixin.rb +14 -0
- data/lib/jeweler/rubyforge_tasks.rb +98 -0
- data/lib/jeweler/specification.rb +66 -0
- data/lib/jeweler/tasks.rb +72 -39
- data/lib/jeweler/templates/.document +5 -0
- data/lib/jeweler/templates/README.rdoc +12 -1
- data/lib/jeweler/templates/Rakefile +83 -49
- data/lib/jeweler/templates/bacon/helper.rb +1 -1
- data/lib/jeweler/templates/features/support/env.rb +4 -7
- data/lib/jeweler/templates/micronaut/helper.rb +1 -1
- data/lib/jeweler/templates/minitest/helper.rb +1 -1
- data/lib/jeweler/templates/rspec/flunking.rb +1 -1
- data/lib/jeweler/templates/rspec/helper.rb +4 -3
- data/lib/jeweler/templates/shoulda/helper.rb +1 -1
- data/lib/jeweler/templates/testunit/helper.rb +1 -1
- data/lib/jeweler/version_helper.rb +78 -33
- data/test/fixtures/bar/bin/foo_the_ultimate_bin +1 -0
- data/test/fixtures/bar/hey_include_me_in_gemspec +0 -0
- data/test/fixtures/bar/lib/foo_the_ultimate_lib.rb +1 -0
- data/test/fixtures/existing-project-with-version-plaintext/.document +5 -0
- data/test/fixtures/existing-project-with-version-plaintext/.gitignore +5 -0
- data/test/fixtures/existing-project-with-version-plaintext/LICENSE +20 -0
- data/test/fixtures/existing-project-with-version-plaintext/README.rdoc +7 -0
- data/test/fixtures/existing-project-with-version-plaintext/Rakefile +82 -0
- data/test/fixtures/existing-project-with-version-plaintext/VERSION +1 -0
- data/test/fixtures/existing-project-with-version-plaintext/existing-project-with-version.gemspec +29 -0
- data/test/fixtures/existing-project-with-version-plaintext/lib/existing_project_with_version.rb +0 -0
- data/test/fixtures/existing-project-with-version-plaintext/test/existing_project_with_version_test.rb +7 -0
- data/test/fixtures/existing-project-with-version-plaintext/test/test_helper.rb +10 -0
- data/test/fixtures/existing-project-with-version-yaml/.document +5 -0
- data/test/fixtures/existing-project-with-version-yaml/.gitignore +5 -0
- data/test/fixtures/existing-project-with-version-yaml/LICENSE +20 -0
- data/test/fixtures/existing-project-with-version-yaml/README.rdoc +7 -0
- data/test/fixtures/existing-project-with-version-yaml/Rakefile +82 -0
- data/test/fixtures/existing-project-with-version-yaml/VERSION.yml +4 -0
- data/test/fixtures/existing-project-with-version-yaml/bin/foo_the_ultimate_bin +0 -0
- data/test/fixtures/existing-project-with-version-yaml/existing-project-with-version.gemspec +29 -0
- data/test/fixtures/existing-project-with-version-yaml/lib/existing_project_with_version.rb +0 -0
- data/test/fixtures/existing-project-with-version-yaml/test/existing_project_with_version_test.rb +7 -0
- data/test/fixtures/existing-project-with-version-yaml/test/test_helper.rb +10 -0
- data/test/jeweler/commands/test_build_gem.rb +20 -1
- data/test/jeweler/commands/test_install_gem.rb +74 -0
- data/test/jeweler/commands/test_release.rb +289 -77
- data/test/jeweler/commands/test_release_to_rubyforge.rb +66 -50
- data/test/jeweler/commands/test_setup_rubyforge.rb +182 -0
- data/test/jeweler/commands/test_validate_gemspec.rb +27 -0
- data/test/jeweler/commands/test_write_gemspec.rb +34 -0
- data/test/jeweler/commands/version/test_base.rb +32 -0
- data/test/jeweler/commands/version/test_bump_major.rb +1 -0
- data/test/test_application.rb +31 -1
- data/test/test_gemspec_helper.rb +4 -0
- data/test/test_generator.rb +101 -114
- data/test/test_generator_initialization.rb +156 -0
- data/test/test_generator_mixins.rb +18 -0
- data/test/test_helper.rb +104 -16
- data/test/test_jeweler.rb +134 -96
- data/test/test_options.rb +59 -0
- data/test/test_specification.rb +61 -0
- data/test/test_tasks.rb +13 -18
- data/test/test_version_helper.rb +47 -9
- metadata +174 -43
- data/TODO +0 -11
- data/test/generators/initialization_test.rb +0 -146
data/.gitignore
ADDED
data/ChangeLog.markdown
CHANGED
@@ -1,4 +1,57 @@
|
|
1
|
-
# jeweler
|
1
|
+
# jeweler 1.2.0 2009-08-06
|
2
|
+
* Generator now adds development dependencies appropriate to your testing framework
|
3
|
+
* Added check_dependencies tasks for verifying gem dependencies are installed
|
4
|
+
* Fixed typo in generated yard task
|
5
|
+
* Fixed generator from having a lot of extra newlines
|
6
|
+
|
7
|
+
# jeweler 1.1.0 2009-08-05
|
8
|
+
|
9
|
+
* Support for generating a project that uses yard instead of rdoc
|
10
|
+
* Generated gemspec now includes comments about it being generated by jeweler
|
11
|
+
* Only use sudo for installing on non-windows platforms [#1]
|
12
|
+
* Fixed rake release to be repeatable on the same version [#16]
|
13
|
+
* Fixed rake rubyforge:setup to not create duplicate packages
|
14
|
+
* Use a more recent version of ruby-git
|
15
|
+
* Fixes various issues with reading values out of ~/.gitconfig [#26] [#21] [#19]
|
16
|
+
* Experimenting with a rake task to check development time dependencies [#22]
|
17
|
+
* Fixed generated rdoc task to load from VERSION instead of VERSION.yml
|
18
|
+
|
19
|
+
# jeweler 1.0.2 2009-07-29
|
20
|
+
|
21
|
+
* Don't include git ignored files for default gemspec's files and test_files
|
22
|
+
* Fixed rspec generator to allow specs to be run directly
|
23
|
+
* Removed misleading docstring for version_required rake task [#17]
|
24
|
+
* Includes some notes about contributed in generated README
|
25
|
+
* Added support for generating a project to use reek and roodi
|
26
|
+
|
27
|
+
# jeweler 1.0.1 2009-05-15
|
28
|
+
|
29
|
+
# jeweler 0.11.1
|
30
|
+
|
31
|
+
* Lots of internal refactorings to how project generation happens
|
32
|
+
* Fixed missing dependency on rubyforge
|
33
|
+
* Depend on a recent version of schacon-git which works on ruby 1.9
|
34
|
+
* Updated cucumber support for 0.3.x
|
35
|
+
* Tested on Ruby 1.9
|
36
|
+
|
37
|
+
# jeweler 0.11.0 2009-04-05
|
38
|
+
|
39
|
+
* generator will respect JEWELER_OPTS, as a way to provide default options
|
40
|
+
(pat-maddox)
|
41
|
+
* Include 'examples' and 'rails' directories by default in gemspec files
|
42
|
+
* generated gemspec now will only include files (not directories). also, they are listed one per line, and sorted.
|
43
|
+
* Jeweler::Tasks's intializer has been improved:
|
44
|
+
* You can now pass it an existing gemspec (othewise a new one will be created)
|
45
|
+
* Jeweler sets its defaults before yielding the gemspec to you. This allows you to append to its defaults, so you aren't forced to entirely overwrite them just to add one value.
|
46
|
+
* Managing a gemspec's files, test_files, and extra_rdoc_files is now more flexible. They are now wrapped in a FileList, so you can easily 'include' or 'exclude' patterns.
|
47
|
+
|
48
|
+
# jeweler 0.10.2 2009-03-26
|
49
|
+
|
50
|
+
* 'rake install' now will 'rake build' first
|
51
|
+
* Support for releasing to RubyForge, thanks to jtrupiano
|
52
|
+
* Steps towards Ruby 1.9 support, thanks to rsanheim
|
53
|
+
|
54
|
+
# jeweler 0.9.1 2009-03-05
|
2
55
|
|
3
56
|
* Tasks:
|
4
57
|
* Fixed populating default spec's extra_rdoc_files
|
data/README.markdown
CHANGED
@@ -5,32 +5,37 @@ Jeweler provides two things:
|
|
5
5
|
* Rake tasks for managing gems and versioning of a <a href="http://github.com">GitHub</a> project
|
6
6
|
* A generator for creating kickstarting a new project
|
7
7
|
|
8
|
+
## Quick Links
|
9
|
+
|
10
|
+
* [Wiki](http://wiki.github.com/technicalpickles/jeweler)
|
11
|
+
* [Bugs](http://github.com/technicalpickles/jeweler/issues)
|
12
|
+
* [Donate](http://pledgie.org/campaigns/2604)
|
13
|
+
|
8
14
|
## Installing
|
9
15
|
|
10
|
-
# Run the following if you haven't done so before:
|
11
|
-
gem sources -a http://gems.github.com
|
12
16
|
# Install the gem:
|
13
|
-
sudo gem install
|
17
|
+
sudo gem install jeweler
|
14
18
|
|
15
19
|
## Using in an existing project
|
16
20
|
|
17
|
-
It's easy to get up and running. Update your instantiate a `Jeweler::Tasks`, and give it a block with details about your project.
|
21
|
+
It's easy to get up and running. Update your Rakefile to instantiate a `Jeweler::Tasks`, and give it a block with details about your project.
|
18
22
|
|
19
23
|
begin
|
20
24
|
require 'jeweler'
|
21
|
-
Jeweler::Tasks.new do |
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
Jeweler::Tasks.new do |gemspec|
|
26
|
+
gemspec.name = "the-perfect-gem"
|
27
|
+
gemspec.summary = "Summarize your gem"
|
28
|
+
gemspec.description = "Describe your gem"
|
29
|
+
gemspec.email = "josh@technicalpickles.com"
|
30
|
+
gemspec.homepage = "http://github.com/technicalpickles/the-perfect-gem"
|
31
|
+
gemspec.description = "TODO"
|
32
|
+
gemspec.authors = ["Josh Nichols"]
|
28
33
|
end
|
29
34
|
rescue LoadError
|
30
35
|
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
31
36
|
end
|
32
37
|
|
33
|
-
|
38
|
+
The yield object here, `gemspec`, is a `Gem::Specification` object. See the [Customizing your project's gem specification](http://wiki.github.com/technicalpickles/jeweler/customizing-your-projects-gem-specification) for more details about how you can customize your gemspec.
|
34
39
|
|
35
40
|
## Using to start a new project
|
36
41
|
|
@@ -48,6 +53,13 @@ It supports a number of options:
|
|
48
53
|
* --shoulda: generate test_helper.rb and test ready for shoulda (this is the default)
|
49
54
|
* --rspec: generate spec_helper.rb and spec ready for rspec
|
50
55
|
* --bacon: generate spec_helper.rb and spec ready for bacon
|
56
|
+
* --rubyforge: setup releasing to rubyforge
|
57
|
+
|
58
|
+
### Default options
|
59
|
+
|
60
|
+
Jeweler respects the JEWELER_OPTS environment variable. Want to always use RSpec, and you're using bash? Add this to ~/.bashrc:
|
61
|
+
|
62
|
+
export JEWELER_OPTS="--rspec"
|
51
63
|
|
52
64
|
## Gemspec
|
53
65
|
|
@@ -74,7 +86,7 @@ Initially, your project starts out at 0.0.0. Jeweler provides Rake tasks for bum
|
|
74
86
|
rake version:bump:minor
|
75
87
|
rake version:bump:patch
|
76
88
|
|
77
|
-
## Releasing
|
89
|
+
## Releasing to GitHub
|
78
90
|
|
79
91
|
Jeweler handles releasing your gem into the wild:
|
80
92
|
|
@@ -86,18 +98,75 @@ It does the following for you:
|
|
86
98
|
* Push to GitHub (which results in a gem being build)
|
87
99
|
* Tag the version and push to GitHub
|
88
100
|
|
89
|
-
|
101
|
+
## Releasing to RubyForge
|
102
|
+
|
103
|
+
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:
|
104
|
+
|
105
|
+
* [Create an account on RubyForge](http://rubyforge.org/account/register.php)
|
106
|
+
* Request a project on RubyForge. This involves waiting for a project approval, which can take any amount of time from a few hours to a week
|
107
|
+
* You might want to create an umbrella project where you can publish your gems, instead of one project per gem
|
108
|
+
* Install the RubyForge gem: sudo gem install rubyforge
|
109
|
+
* Run 'rubyforge setup' and fill in your username and password for RubyForge
|
110
|
+
* Run 'rubyforge config' to pull down information about your projects
|
111
|
+
* Run 'rubyforge login' to make sure you are able to login
|
112
|
+
|
113
|
+
With this in place, you now update your Jeweler::Tasks to setup `rubyforge_project` with the RubyForge project you've just created. (Note, using `jeweler --rubyforge` when generating the project does this for you automatically.)
|
114
|
+
|
115
|
+
begin
|
116
|
+
require 'jeweler'
|
117
|
+
Jeweler::Tasks.new do |s|
|
118
|
+
s.name = "the-perfect-gem"
|
119
|
+
s.summary = "TODO"
|
120
|
+
s.description = "TODO"
|
121
|
+
s.email = "josh@technicalpickles.com"
|
122
|
+
s.homepage = "http://github.com/technicalpickles/the-perfect-gem"
|
123
|
+
s.description = "TODO"
|
124
|
+
s.authors = ["Josh Nichols"]
|
125
|
+
s.rubyforge_project = 'the-perfect-gem' # This line would be new
|
126
|
+
end
|
127
|
+
rescue LoadError
|
128
|
+
puts "Jeweler not available. Install it with: sudo gem install jeweler"
|
129
|
+
end
|
130
|
+
|
131
|
+
# These are new tasks
|
132
|
+
begin
|
133
|
+
require 'rake/contrib/sshpublisher'
|
134
|
+
namespace :rubyforge do
|
135
|
+
|
136
|
+
desc "Release gem and RDoc documentation to RubyForge"
|
137
|
+
task :release => ["rubyforge:release:gem", "rubyforge:release:docs"]
|
138
|
+
|
139
|
+
namespace :release do
|
140
|
+
desc "Publish RDoc to RubyForge."
|
141
|
+
task :docs => [:rdoc] do
|
142
|
+
config = YAML.load(
|
143
|
+
File.read(File.expand_path('~/.rubyforge/user-config.yml'))
|
144
|
+
)
|
145
|
+
|
146
|
+
host = "#{config['username']}@rubyforge.org"
|
147
|
+
remote_dir = "/var/www/gforge-projects/the-perfect-gem/"
|
148
|
+
local_dir = 'rdoc'
|
149
|
+
|
150
|
+
Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
rescue LoadError
|
155
|
+
puts "Rake SshDirPublisher is unavailable or your rubyforge environment is not configured."
|
156
|
+
end
|
90
157
|
|
91
|
-
|
158
|
+
Now you must initially create a 'package' for your gem in your 'project':
|
159
|
+
|
160
|
+
$ rake rubyforge:setup
|
161
|
+
|
162
|
+
With all that setup out of the way, you can now release to RubyForge with impunity. This would release the current version of your gem, and upload the rdoc as your project's webpage.
|
163
|
+
|
164
|
+
$ rake rubyforge:release
|
92
165
|
|
93
166
|
## Workflow
|
94
167
|
|
95
168
|
* Hack, commit, hack, commit, etc, etc
|
96
169
|
* `rake version:bump:patch release` to do the actual version bump and release
|
97
170
|
* Have a delicious scotch
|
98
|
-
*
|
171
|
+
* Install [gemstalker](http://github.com/technicalpickles/gemstalker), and use it to know when gem is built. It typically builds in a few minutes, but won't be installable for another 15 minutes.
|
99
172
|
|
100
|
-
## Links
|
101
|
-
|
102
|
-
* [Bugs](http://technicalpickles.lighthouseapp.com/projects/23560-jeweler/overview)
|
103
|
-
* [Donate](http://pledgie.org/campaigns/2604)
|
data/ROADMAP
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
= 1.0
|
2
|
+
|
3
|
+
* Improve documentation on wiki/readme
|
4
|
+
|
5
|
+
= Unscheduled, or waiting for contributions
|
6
|
+
|
7
|
+
* Add command to output the Jeweler::Tasks to help with upgrading/migrating
|
8
|
+
* Support github user/token on generator command line
|
9
|
+
* Support C extensions
|
10
|
+
* Support JRuby gems
|
11
|
+
* Support thor
|
12
|
+
* Dealing with version bumps in other remotes
|
data/Rakefile
CHANGED
@@ -2,6 +2,9 @@ require 'rake'
|
|
2
2
|
|
3
3
|
$LOAD_PATH.unshift('lib')
|
4
4
|
|
5
|
+
gem 'git'
|
6
|
+
require 'git'
|
7
|
+
|
5
8
|
begin
|
6
9
|
require 'jeweler'
|
7
10
|
Jeweler::Tasks.new do |gem|
|
@@ -11,28 +14,49 @@ begin
|
|
11
14
|
gem.homepage = "http://github.com/technicalpickles/jeweler"
|
12
15
|
gem.description = "Simple and opinionated helper for creating Rubygem projects on GitHub"
|
13
16
|
gem.authors = ["Josh Nichols"]
|
14
|
-
gem.files
|
15
|
-
|
17
|
+
gem.files.include %w(lib/jeweler/templates/.document lib/jeweler/templates/.gitignore)
|
18
|
+
|
19
|
+
gem.add_dependency "git", ">= 1.2.1"
|
20
|
+
gem.add_dependency "rubyforge"
|
21
|
+
|
22
|
+
gem.rubyforge_project = "pickles"
|
23
|
+
|
24
|
+
gem.add_development_dependency "thoughtbot-shoulda"
|
25
|
+
gem.add_development_dependency "mhennemeyer-output_catcher"
|
26
|
+
gem.add_development_dependency "rr"
|
27
|
+
gem.add_development_dependency "mocha"
|
28
|
+
gem.add_development_dependency "redgreen"
|
29
|
+
end
|
30
|
+
|
31
|
+
Jeweler::RubyforgeTasks.new do |t|
|
32
|
+
t.doc_task = :yardoc
|
16
33
|
end
|
17
34
|
rescue LoadError
|
18
|
-
puts "Jeweler, or one of its dependencies, is not available. Install it with: sudo gem install
|
35
|
+
puts "Jeweler, or one of its dependencies, is not available. Install it with: sudo gem install jeweler"
|
19
36
|
end
|
20
37
|
|
38
|
+
|
21
39
|
require 'rake/testtask'
|
22
40
|
Rake::TestTask.new(:test) do |test|
|
23
|
-
test.
|
41
|
+
test.test_files = FileList.new('test/**/test_*.rb') do |list|
|
42
|
+
list.exclude 'test/test_helper.rb'
|
43
|
+
end
|
24
44
|
test.libs << 'test'
|
45
|
+
test.verbose = true
|
25
46
|
end
|
26
47
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
48
|
+
begin
|
49
|
+
require 'yard'
|
50
|
+
YARD::Rake::YardocTask.new(:yardoc) do |t|
|
51
|
+
t.files = FileList['lib/**/*.rb'].exclude('lib/jeweler/templates/**/*.rb')
|
52
|
+
end
|
53
|
+
rescue LoadError
|
54
|
+
task :yardoc do
|
55
|
+
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
56
|
+
end
|
34
57
|
end
|
35
58
|
|
59
|
+
|
36
60
|
begin
|
37
61
|
require 'rcov/rcovtask'
|
38
62
|
Rcov::RcovTask.new(:rcov) do |rcov|
|
@@ -47,11 +71,23 @@ end
|
|
47
71
|
|
48
72
|
begin
|
49
73
|
require 'cucumber/rake/task'
|
50
|
-
Cucumber::Rake::Task.new(:features)
|
74
|
+
Cucumber::Rake::Task.new(:features) do |features|
|
75
|
+
features.cucumber_opts = "features --format progress"
|
76
|
+
end
|
77
|
+
namespace :features do
|
78
|
+
Cucumber::Rake::Task.new(:pretty) do |features|
|
79
|
+
features.cucumber_opts = "features --format progress"
|
80
|
+
end
|
81
|
+
end
|
51
82
|
rescue LoadError
|
52
83
|
task :features do
|
53
84
|
abort "Cucumber is not available. In order to run features, you must: sudo gem install cucumber"
|
54
85
|
end
|
86
|
+
namespace :features do
|
87
|
+
task :pretty do
|
88
|
+
abort "Cucumber is not available. In order to run features, you must: sudo gem install cucumber"
|
89
|
+
end
|
90
|
+
end
|
55
91
|
end
|
56
92
|
|
57
93
|
if ENV["RUN_CODE_RUN"] == "true"
|
@@ -59,3 +95,7 @@ if ENV["RUN_CODE_RUN"] == "true"
|
|
59
95
|
else
|
60
96
|
task :default => :test
|
61
97
|
end
|
98
|
+
|
99
|
+
|
100
|
+
task :test => :check_dependencies
|
101
|
+
task :features => :check_dependencies
|
data/VERSION.yml
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
---
|
2
|
-
:
|
3
|
-
:
|
4
|
-
:
|
2
|
+
:patch: 0
|
3
|
+
:major: 1
|
4
|
+
:minor: 2
|
@@ -0,0 +1,83 @@
|
|
1
|
+
Feature: generating cucumber stories
|
2
|
+
In order to get started using cucumber in a project
|
3
|
+
A user should be able to
|
4
|
+
generate a project setup for their testing framework of choice
|
5
|
+
|
6
|
+
Scenario: sans cucumber setup
|
7
|
+
Given a working directory
|
8
|
+
And I have configured git sanely
|
9
|
+
And I do not want cucumber stories
|
10
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
11
|
+
|
12
|
+
And a file named 'the-perfect-gem/features/the-perfect-gem.feature' is not created
|
13
|
+
And a file named 'the-perfect-gem/features/support/env.rb' is not created
|
14
|
+
And a file named 'the-perfect-gem/features/steps/the-perfect-gem_steps.rb' is not created
|
15
|
+
|
16
|
+
Scenario: basic cucumber setup
|
17
|
+
Given a working directory
|
18
|
+
And I have configured git sanely
|
19
|
+
And I want cucumber stories
|
20
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
21
|
+
|
22
|
+
Then cucumber directories are created
|
23
|
+
|
24
|
+
And a file named 'the-perfect-gem/features/the-perfect-gem.feature' is created
|
25
|
+
And a file named 'the-perfect-gem/features/support/env.rb' is created
|
26
|
+
And a file named 'the-perfect-gem/features/step_definitions/the-perfect-gem_steps.rb' is created
|
27
|
+
|
28
|
+
And 'features/support/env.rb' requires 'the-perfect-gem'
|
29
|
+
|
30
|
+
Scenario: cucumber setup for bacon
|
31
|
+
Given a working directory
|
32
|
+
And I have configured git sanely
|
33
|
+
And I want cucumber stories
|
34
|
+
When I generate a bacon project named 'the-perfect-gem' that is 'zomg, so good'
|
35
|
+
|
36
|
+
Then 'features/support/env.rb' requires 'test/unit/assertions'
|
37
|
+
And cucumber world extends "Test::Unit::Assertions"
|
38
|
+
|
39
|
+
Scenario: cucumber setup for shoulda
|
40
|
+
Given a working directory
|
41
|
+
And I have configured git sanely
|
42
|
+
And I want cucumber stories
|
43
|
+
When I generate a shoulda project named 'the-perfect-gem' that is 'zomg, so good'
|
44
|
+
|
45
|
+
Then 'features/support/env.rb' requires 'test/unit/assertions'
|
46
|
+
And cucumber world extends "Test::Unit::Assertions"
|
47
|
+
|
48
|
+
Scenario: cucumber setup for testunit
|
49
|
+
Given a working directory
|
50
|
+
And I have configured git sanely
|
51
|
+
And I want cucumber stories
|
52
|
+
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
53
|
+
|
54
|
+
Then 'features/support/env.rb' requires 'test/unit/assertions'
|
55
|
+
And cucumber world extends "Test::Unit::Assertions"
|
56
|
+
|
57
|
+
Scenario: cucumber setup for minitest
|
58
|
+
Given a working directory
|
59
|
+
And I have configured git sanely
|
60
|
+
And I want cucumber stories
|
61
|
+
When I generate a minitest project named 'the-perfect-gem' that is 'zomg, so good'
|
62
|
+
|
63
|
+
Then 'features/support/env.rb' requires 'mini/test'
|
64
|
+
And cucumber world extends "Mini::Test::Assertions"
|
65
|
+
|
66
|
+
Scenario: cucumber setup for rspec
|
67
|
+
Given a working directory
|
68
|
+
And I have configured git sanely
|
69
|
+
And I want cucumber stories
|
70
|
+
When I generate a rspec project named 'the-perfect-gem' that is 'zomg, so good'
|
71
|
+
|
72
|
+
Then 'features/support/env.rb' requires 'the-perfect-gem'
|
73
|
+
And 'features/support/env.rb' requires 'spec/expectations'
|
74
|
+
|
75
|
+
Scenario: cucumber setup for mirconaut
|
76
|
+
Given a working directory
|
77
|
+
And I have configured git sanely
|
78
|
+
And I want cucumber stories
|
79
|
+
When I generate a micronaut project named 'the-perfect-gem' that is 'zomg, so good'
|
80
|
+
|
81
|
+
Then 'features/support/env.rb' requires 'the-perfect-gem'
|
82
|
+
And 'features/support/env.rb' requires 'micronaut/expectations'
|
83
|
+
And cucumber world extends "Micronaut::Matchers"
|
@@ -0,0 +1,76 @@
|
|
1
|
+
Feature: generated directory layout
|
2
|
+
In order to start a new gem
|
3
|
+
A user should be able to
|
4
|
+
generate a directory layout
|
5
|
+
|
6
|
+
Scenario: shared
|
7
|
+
Given a working directory
|
8
|
+
And I have configured git sanely
|
9
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
10
|
+
|
11
|
+
Then a directory named 'the-perfect-gem' is created
|
12
|
+
And a directory named 'the-perfect-gem/lib' is created
|
13
|
+
|
14
|
+
And a file named 'the-perfect-gem/README.rdoc' is created
|
15
|
+
And a file named 'the-perfect-gem/.document' is created
|
16
|
+
And a file named 'the-perfect-gem/lib/the-perfect-gem.rb' is created
|
17
|
+
|
18
|
+
Scenario: bacon
|
19
|
+
Given a working directory
|
20
|
+
And I have configured git sanely
|
21
|
+
When I generate a bacon project named 'the-perfect-gem' that is 'zomg, so good'
|
22
|
+
|
23
|
+
Then a directory named 'the-perfect-gem/spec' is created
|
24
|
+
|
25
|
+
And a file named 'the-perfect-gem/spec/spec_helper.rb' is created
|
26
|
+
And a file named 'the-perfect-gem/spec/the-perfect-gem_spec.rb' is created
|
27
|
+
|
28
|
+
Scenario: minitest
|
29
|
+
Given a working directory
|
30
|
+
And I have configured git sanely
|
31
|
+
When I generate a minitest project named 'the-perfect-gem' that is 'zomg, so good'
|
32
|
+
|
33
|
+
Then a directory named 'the-perfect-gem/test' is created
|
34
|
+
|
35
|
+
And a file named 'the-perfect-gem/test/test_helper.rb' is created
|
36
|
+
And a file named 'the-perfect-gem/test/the-perfect-gem_test.rb' is created
|
37
|
+
|
38
|
+
Scenario: rspec
|
39
|
+
Given a working directory
|
40
|
+
And I have configured git sanely
|
41
|
+
When I generate a rspec project named 'the-perfect-gem' that is 'zomg, so good'
|
42
|
+
|
43
|
+
Then a directory named 'the-perfect-gem/spec' is created
|
44
|
+
|
45
|
+
And a file named 'the-perfect-gem/spec/spec_helper.rb' is created
|
46
|
+
And a file named 'the-perfect-gem/spec/the-perfect-gem_spec.rb' is created
|
47
|
+
|
48
|
+
Scenario: shoulda
|
49
|
+
Given a working directory
|
50
|
+
And I have configured git sanely
|
51
|
+
When I generate a shoulda project named 'the-perfect-gem' that is 'zomg, so good'
|
52
|
+
|
53
|
+
Then a directory named 'the-perfect-gem/test' is created
|
54
|
+
|
55
|
+
And a file named 'the-perfect-gem/test/test_helper.rb' is created
|
56
|
+
And a file named 'the-perfect-gem/test/the-perfect-gem_test.rb' is created
|
57
|
+
|
58
|
+
Scenario: testunit
|
59
|
+
Given a working directory
|
60
|
+
And I have configured git sanely
|
61
|
+
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
62
|
+
|
63
|
+
Then a directory named 'the-perfect-gem/test' is created
|
64
|
+
|
65
|
+
And a file named 'the-perfect-gem/test/test_helper.rb' is created
|
66
|
+
And a file named 'the-perfect-gem/test/the-perfect-gem_test.rb' is created
|
67
|
+
|
68
|
+
Scenario: micronaut
|
69
|
+
Given a working directory
|
70
|
+
And I have configured git sanely
|
71
|
+
When I generate a micronaut project named 'the-perfect-gem' that is 'zomg, so good'
|
72
|
+
|
73
|
+
Then a directory named 'the-perfect-gem/examples' is created
|
74
|
+
|
75
|
+
And a file named 'the-perfect-gem/examples/example_helper.rb' is created
|
76
|
+
And a file named 'the-perfect-gem/examples/the-perfect-gem_example.rb' is created
|