jeweler 1.4.0 → 1.5.0.pre2
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +14 -0
- data/.gitignore +13 -2
- data/ChangeLog.markdown +8 -8
- data/Gemfile +21 -0
- data/Gemfile.lock +57 -0
- data/README.markdown +6 -6
- data/Rakefile +32 -46
- data/features/generator/cucumber.feature +20 -0
- data/features/generator/directory_layout.feature +10 -0
- data/features/generator/gemfile.feature +71 -0
- data/features/generator/git.feature +8 -0
- data/features/generator/license.feature +11 -2
- data/features/generator/rakefile.feature +25 -23
- data/features/generator/test.feature +6 -0
- data/features/generator/test_helper.feature +107 -11
- data/features/step_definitions/filesystem_steps.rb +5 -3
- data/features/step_definitions/generator_steps.rb +68 -4
- data/features/support/env.rb +26 -13
- data/jeweler.gemspec +222 -207
- data/lib/jeweler.rb +7 -5
- data/lib/jeweler/commands.rb +1 -3
- data/lib/jeweler/commands/check_dependencies.rb +3 -5
- data/lib/jeweler/commands/install_gem.rb +1 -2
- data/lib/jeweler/commands/release_to_git.rb +5 -3
- data/lib/jeweler/commands/release_to_github.rb +24 -8
- data/lib/jeweler/commands/{release_to_gemcutter.rb → release_to_rubygems.rb} +1 -2
- data/lib/jeweler/commands/version/base.rb +16 -2
- data/lib/jeweler/commands/write_gemspec.rb +0 -1
- data/lib/jeweler/errors.rb +4 -16
- data/lib/jeweler/gemcutter_tasks.rb +4 -32
- data/lib/jeweler/gemspec_helper.rb +3 -6
- data/lib/jeweler/generator.rb +23 -6
- data/lib/jeweler/generator/options.rb +17 -14
- data/lib/jeweler/generator/rspec_mixin.rb +1 -1
- data/lib/jeweler/generator/shindo_mixin.rb +44 -0
- data/lib/jeweler/generator/shoulda_mixin.rb +1 -1
- data/lib/jeweler/rubyforge_tasks.rb +5 -29
- data/lib/jeweler/rubygems_dot_org_tasks.rb +38 -0
- data/lib/jeweler/rubygems_tasks.rb +38 -0
- data/lib/jeweler/specification.rb +36 -12
- data/lib/jeweler/tasks.rb +49 -13
- data/lib/jeweler/templates/.document +6 -0
- data/lib/jeweler/templates/.gitignore +34 -16
- data/lib/jeweler/templates/Gemfile +12 -0
- data/lib/jeweler/templates/LICENSE +1 -1
- data/lib/jeweler/templates/Rakefile +1 -0
- data/lib/jeweler/templates/bacon/helper.rb +1 -0
- data/lib/jeweler/templates/bundler_setup.erb +10 -0
- data/lib/jeweler/templates/features/support/env.rb +2 -0
- data/lib/jeweler/templates/jeweler_tasks.erb +20 -23
- data/lib/jeweler/templates/micronaut/helper.rb +1 -0
- data/lib/jeweler/templates/minitest/helper.rb +1 -0
- data/lib/jeweler/templates/other_tasks.erb +27 -59
- data/lib/jeweler/templates/riot/helper.rb +1 -0
- data/lib/jeweler/templates/rspec/{spec.opts → .rspec} +0 -0
- data/lib/jeweler/templates/rspec/helper.rb +7 -3
- data/lib/jeweler/templates/shindo/flunking.rb +8 -0
- data/lib/jeweler/templates/shindo/helper.rb +6 -0
- data/lib/jeweler/templates/shoulda/helper.rb +1 -0
- data/lib/jeweler/templates/testunit/helper.rb +1 -0
- data/lib/jeweler/version.rb +10 -0
- data/lib/jeweler/version_helper.rb +1 -2
- data/test/fixtures/existing-project-with-version-constant/Rakefile +4 -2
- data/test/fixtures/existing-project-with-version-plaintext/Rakefile +4 -2
- data/test/fixtures/existing-project-with-version-yaml/Rakefile +4 -2
- data/test/jeweler/commands/test_install_gem.rb +2 -2
- data/test/jeweler/commands/test_release_to_gemcutter.rb +4 -4
- data/test/jeweler/commands/test_release_to_git.rb +32 -25
- data/test/jeweler/commands/test_release_to_github.rb +108 -25
- data/test/jeweler/generator/test_options.rb +16 -22
- data/test/jeweler/test_generator.rb +5 -0
- data/test/jeweler/test_specification.rb +18 -7
- data/test/jeweler/test_tasks.rb +1 -1
- data/test/test_helper.rb +12 -14
- data/test/test_jeweler.rb +0 -12
- metadata +159 -66
- data/VERSION.yml +0 -5
- data/lib/jeweler/commands/release_to_rubyforge.rb +0 -52
- data/lib/jeweler/commands/setup_rubyforge.rb +0 -63
- data/test/jeweler/commands/test_release_to_rubyforge.rb +0 -153
- data/test/jeweler/commands/test_setup_rubyforge.rb +0 -178
data/.document
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# .document is used by rdoc and yard to know how to generate documentation
|
2
|
+
# for example, it can be used to control how rdoc gets built when you do `gem install foo`
|
3
|
+
|
4
|
+
lib/jeweler.rb
|
5
|
+
lib/jeweler/*.rb
|
6
|
+
lib/jeweler/commands/*.rb
|
7
|
+
lib/jeweler/generator/*.rb
|
8
|
+
bin/*
|
9
|
+
|
10
|
+
# Files below the line with - are treated as 'extra files', and aren't parsed for ruby code
|
11
|
+
-
|
12
|
+
README.markdown
|
13
|
+
features/**/*.feature
|
14
|
+
LICENSE
|
data/.gitignore
CHANGED
@@ -1,10 +1,21 @@
|
|
1
|
+
# bundler
|
2
|
+
.bundle
|
3
|
+
|
4
|
+
# rcov generated
|
1
5
|
coverage
|
6
|
+
|
7
|
+
# jeweler generated
|
2
8
|
pkg
|
9
|
+
|
10
|
+
# yard generated
|
3
11
|
doc
|
4
|
-
|
12
|
+
.yardoc
|
13
|
+
|
14
|
+
# ctags generated
|
5
15
|
tags
|
16
|
+
|
17
|
+
# tmp directories used during testing
|
6
18
|
test/tmp
|
7
19
|
test/jeweler/version_tmp
|
8
20
|
test/version_tmp
|
9
21
|
tmp
|
10
|
-
.yardoc
|
data/ChangeLog.markdown
CHANGED
@@ -8,12 +8,12 @@
|
|
8
8
|
* `rake install` should correctly figure out which `gem` binary to invoke now
|
9
9
|
* `rake build` now will regenerate the gemspec as well
|
10
10
|
* `rake gemspec` now eliminates duplicates for gemspec.files, gemspec.rdoc_files, etc
|
11
|
-
* `rake gemspec` now
|
11
|
+
* `rake gemspec` now automatically populates gemspec.extensions with any extconf.rb files you have in `ext`
|
12
12
|
* Releasing to Rubyforge is now deprecated in favor of Gemcutter.
|
13
13
|
|
14
14
|
# jeweler 1.3.0
|
15
15
|
|
16
|
-
* Now supports an
|
16
|
+
* Now supports an additional version type, build. This can be used to add a fourth segment of the version that's arbitrary. One example use is having prereleases.
|
17
17
|
* Jeweler now lazily loads, to avoid causing side-effects when running other rake tasks
|
18
18
|
* Version can now be set explicitly on the gemspec, rather than relying on a VERSION file
|
19
19
|
* Rubyforge and Gemcutter support now hooks into `rake release`
|
@@ -21,7 +21,7 @@
|
|
21
21
|
* Rubyforge support no longer forces the uploading of documentation
|
22
22
|
* Generator:
|
23
23
|
* Allow arbitrary homepage and git remotes, to decouple a bit from GitHub
|
24
|
-
* Support for the riot testing framework: http://github.com/thumblemonks/riot/
|
24
|
+
* Support for the riot testing framework: http://github.com/thumblemonks/riot/
|
25
25
|
* Support for test/spec
|
26
26
|
* .gitignore now ignores emacs temporary files
|
27
27
|
* rspec support now creates a spec.opts with support for color and other stuff
|
@@ -76,7 +76,7 @@
|
|
76
76
|
* 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.
|
77
77
|
|
78
78
|
# jeweler 0.10.2 2009-03-26
|
79
|
-
|
79
|
+
|
80
80
|
* 'rake install' now will 'rake build' first
|
81
81
|
* Support for releasing to RubyForge, thanks to jtrupiano
|
82
82
|
* Steps towards Ruby 1.9 support, thanks to rsanheim
|
@@ -85,19 +85,19 @@
|
|
85
85
|
|
86
86
|
* Tasks:
|
87
87
|
* Fixed populating default spec's extra_rdoc_files
|
88
|
-
* Removed
|
88
|
+
* Removed redundant gem building/installing tasks. Use rake build and rake install
|
89
89
|
* Generator:
|
90
90
|
* Added support for micronaut
|
91
91
|
* Generate nicer block variable names in Rakefile
|
92
92
|
* Cucumber generation now places steps in features/step_features, to follow cucumber standards
|
93
93
|
|
94
|
-
* shoulda and test/unit test_helpers no
|
94
|
+
* shoulda and test/unit test_helpers no longer require mocha
|
95
95
|
* Rakefile uses more readable block variable names
|
96
96
|
* .gitignore now includes pkg and coverage directories
|
97
97
|
* Avoid puts'ing in Rakefile when LoadError occurs. Instead, define a task that aborts with instructions to install.
|
98
98
|
* Cucumber is now optional. Generate stories using --cucumber
|
99
99
|
* Bacon's 'test' task is now 'spec'
|
100
|
-
* Generate README.rdoc instead of just a plain text README
|
100
|
+
* Generate README.rdoc instead of just a plain text README
|
101
101
|
* Updated year in README.rdoc and COPYRIGHT to be based on the current year instead of hardcoded
|
102
102
|
|
103
103
|
# jeweler 0.8.1 2009-02-03
|
@@ -114,7 +114,7 @@
|
|
114
114
|
* Added support for cucumber
|
115
115
|
* Creating a new gem is now more verbose, and will show files/directories created
|
116
116
|
* Binaries will now be automatically detected in 'bin'
|
117
|
-
|
117
|
+
|
118
118
|
# jeweler 0.7.2 2009-01-29
|
119
119
|
|
120
120
|
* Added rake task 'version:bump' which is shorthand for 'version:bump:patch'
|
data/Gemfile
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
source 'http://gemcutter.org'
|
2
|
+
source 'http://gems.github.com'
|
3
|
+
|
4
|
+
gem "rake"
|
5
|
+
gem "git", ">= 1.2.5"
|
6
|
+
gem "bundler", ">= 1.0.0.rc.5"
|
7
|
+
|
8
|
+
group :development do
|
9
|
+
gem "shoulda"
|
10
|
+
gem "mhennemeyer-output_catcher"
|
11
|
+
gem "rr"
|
12
|
+
gem "mocha"
|
13
|
+
gem "redgreen"
|
14
|
+
gem "test-construct"
|
15
|
+
gem "yard"
|
16
|
+
gem "cucumber"
|
17
|
+
gem "rcov"
|
18
|
+
gem "timecop"
|
19
|
+
gem "activesupport", "~> 2.3.5"
|
20
|
+
gem "ruby-debug"
|
21
|
+
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://gemcutter.org/
|
3
|
+
remote: http://gems.github.com/
|
4
|
+
specs:
|
5
|
+
activesupport (2.3.8)
|
6
|
+
builder (2.1.2)
|
7
|
+
columnize (0.3.1)
|
8
|
+
cucumber (0.8.5)
|
9
|
+
builder (~> 2.1.2)
|
10
|
+
diff-lcs (~> 1.1.2)
|
11
|
+
gherkin (~> 2.1.4)
|
12
|
+
json_pure (~> 1.4.3)
|
13
|
+
term-ansicolor (~> 1.0.4)
|
14
|
+
diff-lcs (1.1.2)
|
15
|
+
gherkin (2.1.5)
|
16
|
+
trollop (~> 1.16.2)
|
17
|
+
git (1.2.5)
|
18
|
+
json_pure (1.4.6)
|
19
|
+
linecache (0.43)
|
20
|
+
mhennemeyer-output_catcher (1.0.1)
|
21
|
+
mocha (0.9.8)
|
22
|
+
rake
|
23
|
+
rake (0.8.7)
|
24
|
+
rcov (0.9.8)
|
25
|
+
redgreen (1.2.2)
|
26
|
+
rr (0.10.11)
|
27
|
+
ruby-debug (0.10.3)
|
28
|
+
columnize (>= 0.1)
|
29
|
+
ruby-debug-base (~> 0.10.3.0)
|
30
|
+
ruby-debug-base (0.10.3)
|
31
|
+
linecache (>= 0.3)
|
32
|
+
shoulda (2.11.3)
|
33
|
+
term-ansicolor (1.0.5)
|
34
|
+
test-construct (1.2.0)
|
35
|
+
timecop (0.3.5)
|
36
|
+
trollop (1.16.2)
|
37
|
+
yard (0.5.8)
|
38
|
+
|
39
|
+
PLATFORMS
|
40
|
+
ruby
|
41
|
+
|
42
|
+
DEPENDENCIES
|
43
|
+
activesupport (~> 2.3.5)
|
44
|
+
bundler (>= 1.0.0.rc.5)
|
45
|
+
cucumber
|
46
|
+
git (>= 1.2.5)
|
47
|
+
mhennemeyer-output_catcher
|
48
|
+
mocha
|
49
|
+
rake
|
50
|
+
rcov
|
51
|
+
redgreen
|
52
|
+
rr
|
53
|
+
ruby-debug
|
54
|
+
shoulda
|
55
|
+
test-construct
|
56
|
+
timecop
|
57
|
+
yard
|
data/README.markdown
CHANGED
@@ -14,8 +14,8 @@ Jeweler provides two things:
|
|
14
14
|
|
15
15
|
## Installing
|
16
16
|
|
17
|
-
|
18
|
-
|
17
|
+
# Install the gem:
|
18
|
+
gem install jeweler
|
19
19
|
|
20
20
|
## Using in an existing project
|
21
21
|
|
@@ -32,7 +32,7 @@ It's easy to get up and running. Update your Rakefile to instantiate a `Jeweler:
|
|
32
32
|
gemspec.authors = ["Josh Nichols"]
|
33
33
|
end
|
34
34
|
rescue LoadError
|
35
|
-
puts "Jeweler not available. Install it with:
|
35
|
+
puts "Jeweler not available. Install it with: gem install jeweler"
|
36
36
|
end
|
37
37
|
|
38
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.
|
@@ -151,7 +151,7 @@ A Rakefile setup for gemcutter would include something like this:
|
|
151
151
|
end
|
152
152
|
Jeweler::GemcutterTasks.new
|
153
153
|
rescue LoadError
|
154
|
-
puts "Jeweler (or a dependency) not available. Install it with:
|
154
|
+
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
155
155
|
end
|
156
156
|
|
157
157
|
|
@@ -167,7 +167,7 @@ Jeweler can also handle releasing to [RubyForge](http://rubyforge.org). There ar
|
|
167
167
|
|
168
168
|
* [Create an account on RubyForge](http://rubyforge.org/account/register.php)
|
169
169
|
* Request a project on RubyForge.
|
170
|
-
* Install the RubyForge gem:
|
170
|
+
* Install the RubyForge gem: gem install rubyforge
|
171
171
|
* Run 'rubyforge setup' and fill in your username and password for RubyForge
|
172
172
|
* Run 'rubyforge config' to pull down information about your projects
|
173
173
|
* Run 'rubyforge login' to make sure you are able to login
|
@@ -188,7 +188,7 @@ A Rakefile setup for rubyforge would include something like this:
|
|
188
188
|
rubyforge.doc_task = "rdoc"
|
189
189
|
end
|
190
190
|
rescue LoadError
|
191
|
-
puts "Jeweler, or a dependency, not available. Install it with:
|
191
|
+
puts "Jeweler, or a dependency, not available. Install it with: gem install jeweler"
|
192
192
|
end
|
193
193
|
|
194
194
|
Now you must initially create a 'package' for your gem in your RubyForge 'project':
|
data/Rakefile
CHANGED
@@ -1,32 +1,27 @@
|
|
1
1
|
require 'rake'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
2
10
|
|
3
11
|
$LOAD_PATH.unshift('lib')
|
4
12
|
|
5
13
|
require 'jeweler'
|
6
14
|
Jeweler::Tasks.new do |gem|
|
7
15
|
gem.name = "jeweler"
|
8
|
-
gem.
|
16
|
+
gem.version = Jeweler::Version::STRING
|
17
|
+
gem.summary = "Opinionated tool for creating and managing RubyGem projects"
|
9
18
|
gem.email = "josh@technicalpickles.com"
|
10
19
|
gem.homepage = "http://github.com/technicalpickles/jeweler"
|
11
20
|
gem.description = "Simple and opinionated helper for creating Rubygem projects on GitHub"
|
12
21
|
gem.authors = ["Josh Nichols"]
|
13
22
|
gem.files.include %w(lib/jeweler/templates/.document lib/jeweler/templates/.gitignore)
|
14
23
|
|
15
|
-
|
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
|
-
gem.add_development_dependency "devver-construct"
|
27
|
-
|
28
|
-
gem.add_development_dependency "yard"
|
29
|
-
gem.add_development_dependency "cucumber"
|
24
|
+
# dependencies defined in Gemfile
|
30
25
|
end
|
31
26
|
|
32
27
|
Jeweler::GemcutterTasks.new
|
@@ -45,41 +40,35 @@ Rake::TestTask.new(:test) do |test|
|
|
45
40
|
test.verbose = true
|
46
41
|
end
|
47
42
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
43
|
+
namespace :test do
|
44
|
+
task :gemspec_dup do
|
45
|
+
gemspec = Rake.application.jeweler.gemspec
|
46
|
+
dupped_gemspec = gemspec.dup
|
47
|
+
cloned_gemspec = gemspec.clone
|
48
|
+
puts gemspec.to_ruby
|
49
|
+
puts dupped_gemspec.to_ruby
|
52
50
|
end
|
53
|
-
rescue LoadError
|
54
|
-
task :yardoc => :check_dependencies
|
55
51
|
end
|
56
52
|
|
53
|
+
require 'yard'
|
54
|
+
YARD::Rake::YardocTask.new(:yardoc) do |t|
|
55
|
+
t.files = FileList['lib/**/*.rb'].exclude('lib/jeweler/templates/**/*.rb')
|
56
|
+
end
|
57
57
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
rcov.pattern = 'test/**/test_*.rb'
|
63
|
-
end
|
64
|
-
rescue
|
65
|
-
task :rcov => :check_dependencies
|
58
|
+
require 'rcov/rcovtask'
|
59
|
+
Rcov::RcovTask.new(:rcov => :check_dependencies) do |rcov|
|
60
|
+
rcov.libs << 'test'
|
61
|
+
rcov.pattern = 'test/**/test_*.rb'
|
66
62
|
end
|
67
63
|
|
68
|
-
|
69
|
-
|
70
|
-
|
64
|
+
require 'cucumber/rake/task'
|
65
|
+
Cucumber::Rake::Task.new(:features) do |features|
|
66
|
+
features.cucumber_opts = "features --format progress"
|
67
|
+
end
|
68
|
+
namespace :features do
|
69
|
+
Cucumber::Rake::Task.new(:pretty) do |features|
|
71
70
|
features.cucumber_opts = "features --format progress"
|
72
71
|
end
|
73
|
-
namespace :features do
|
74
|
-
Cucumber::Rake::Task.new(:pretty) do |features|
|
75
|
-
features.cucumber_opts = "features --format progress"
|
76
|
-
end
|
77
|
-
end
|
78
|
-
rescue LoadError
|
79
|
-
task :features => :check_dependencies
|
80
|
-
namespace :features do
|
81
|
-
task :pretty => :check_dependencies
|
82
|
-
end
|
83
72
|
end
|
84
73
|
|
85
74
|
if ENV["RUN_CODE_RUN"] == "true"
|
@@ -88,6 +77,3 @@ else
|
|
88
77
|
task :default => :test
|
89
78
|
end
|
90
79
|
|
91
|
-
|
92
|
-
task :test => :check_dependencies
|
93
|
-
task :features => :check_dependencies
|
@@ -25,8 +25,28 @@ Feature: generating cucumber stories
|
|
25
25
|
And a file named 'the-perfect-gem/features/support/env.rb' is created
|
26
26
|
And a file named 'the-perfect-gem/features/step_definitions/the-perfect-gem_steps.rb' is created
|
27
27
|
|
28
|
+
And 'features/support/env.rb' requires 'bundler'
|
29
|
+
And 'features/support/env.rb' sets up bundler using the default and development groups
|
28
30
|
And 'features/support/env.rb' requires 'the-perfect-gem'
|
29
31
|
|
32
|
+
Scenario: bundler
|
33
|
+
Given a working directory
|
34
|
+
And I want bundler
|
35
|
+
And I have configured git sanely
|
36
|
+
And I want cucumber stories
|
37
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
38
|
+
And 'features/support/env.rb' requires 'bundler'
|
39
|
+
And 'features/support/env.rb' sets up bundler using the default and development groups
|
40
|
+
|
41
|
+
Scenario: no bundler
|
42
|
+
Given a working directory
|
43
|
+
And I have configured git sanely
|
44
|
+
And I do not want bundler
|
45
|
+
And I want cucumber stories
|
46
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
47
|
+
And 'features/support/env.rb' does not require 'bundler'
|
48
|
+
And 'features/support/env.rb' does not setup bundler
|
49
|
+
|
30
50
|
Scenario: cucumber setup for bacon
|
31
51
|
Given a working directory
|
32
52
|
And I have configured git sanely
|
@@ -74,3 +74,13 @@ Feature: generated directory layout
|
|
74
74
|
|
75
75
|
And a file named 'the-perfect-gem/examples/example_helper.rb' is created
|
76
76
|
And a file named 'the-perfect-gem/examples/the-perfect-gem_example.rb' is created
|
77
|
+
|
78
|
+
Scenario: shindo
|
79
|
+
Given a working directory
|
80
|
+
And I have configured git sanely
|
81
|
+
When I generate a shindo project named 'the-perfect-gem' that is 'zomg, so good'
|
82
|
+
|
83
|
+
Then a directory named 'the-perfect-gem/tests' is created
|
84
|
+
|
85
|
+
And a file named 'the-perfect-gem/tests/tests_helper.rb' is created
|
86
|
+
And a file named 'the-perfect-gem/tests/the-perfect-gem_tests.rb' is created
|
@@ -0,0 +1,71 @@
|
|
1
|
+
Feature: generated Gemfiel
|
2
|
+
In order to start a new gem
|
3
|
+
A user should be able to
|
4
|
+
generate a Gemfile
|
5
|
+
|
6
|
+
Background:
|
7
|
+
Given a working directory
|
8
|
+
And I have configured git sanely
|
9
|
+
|
10
|
+
Scenario: disabled
|
11
|
+
Given I do not want bundler
|
12
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
13
|
+
Then a file named 'the-perfect-gemGemfile' is not created
|
14
|
+
|
15
|
+
Scenario: enabled
|
16
|
+
Given I want bundler
|
17
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
18
|
+
Then a file named 'the-perfect-gem/Gemfile' is created
|
19
|
+
|
20
|
+
Scenario: default
|
21
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
22
|
+
Then a file named 'the-perfect-gem/Gemfile' is created
|
23
|
+
And 'Gemfile' uses the gemcutter source
|
24
|
+
And 'Gemfile' has a development dependency on 'bundler'
|
25
|
+
And 'Gemfile' has a development dependency on the current version of jeweler
|
26
|
+
And 'Gemfile' has a development dependency on 'rcov'
|
27
|
+
|
28
|
+
Scenario: bacon
|
29
|
+
When I generate a bacon project named 'the-perfect-gem' that is 'zomg, so good'
|
30
|
+
Then 'Gemfile' has a development dependency on 'bacon'
|
31
|
+
|
32
|
+
Scenario: minitest
|
33
|
+
When I generate a minitest project named 'the-perfect-gem' that is 'zomg, so good'
|
34
|
+
Then 'Gemfile' has a development dependency on 'minitest'
|
35
|
+
|
36
|
+
Scenario: rspec
|
37
|
+
When I generate a rspec project named 'the-perfect-gem' that is 'zomg, so good'
|
38
|
+
|
39
|
+
Then 'Gemfile' has a development dependency on 'rspec'
|
40
|
+
|
41
|
+
Scenario: shoulda
|
42
|
+
When I generate a shoulda project named 'the-perfect-gem' that is 'zomg, so good'
|
43
|
+
Then 'Gemfile' has a development dependency on 'shoulda'
|
44
|
+
|
45
|
+
Scenario: micronaut
|
46
|
+
When I generate a micronaut project named 'the-perfect-gem' that is 'zomg, so good'
|
47
|
+
Then 'Gemfile' has a development dependency on 'micronaut'
|
48
|
+
|
49
|
+
Scenario: cucumber
|
50
|
+
Given I want cucumber stories
|
51
|
+
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
52
|
+
Then 'Gemfile' has a development dependency on 'cucumber'
|
53
|
+
|
54
|
+
Scenario: reek
|
55
|
+
Given I want reek
|
56
|
+
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
57
|
+
Then 'Gemfile' has a development dependency on 'reek'
|
58
|
+
|
59
|
+
Scenario: roodi
|
60
|
+
Given I want roodi
|
61
|
+
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
62
|
+
Then 'Gemfile' has a development dependency on 'roodi'
|
63
|
+
|
64
|
+
Scenario: yard
|
65
|
+
Given I want to use yard instead of rdoc
|
66
|
+
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
67
|
+
Then 'Gemfile' has a development dependency on 'yard'
|
68
|
+
|
69
|
+
Scenario: shindo
|
70
|
+
When I generate a shindo project named 'the-perfect-gem' that is 'zomg, so good'
|
71
|
+
Then 'Gemfile' has a development dependency on 'shindo'
|