mcornick-jeweler 1.2.0

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.
Files changed (130) hide show
  1. data/.gitignore +9 -0
  2. data/ChangeLog.markdown +111 -0
  3. data/LICENSE +20 -0
  4. data/README.markdown +185 -0
  5. data/ROADMAP +12 -0
  6. data/Rakefile +103 -0
  7. data/VERSION.yml +4 -0
  8. data/bin/jeweler +8 -0
  9. data/features/generator/cucumber.feature +83 -0
  10. data/features/generator/directory_layout.feature +76 -0
  11. data/features/generator/dotdocument.feature +14 -0
  12. data/features/generator/env_options.feature +9 -0
  13. data/features/generator/git.feature +94 -0
  14. data/features/generator/license.feature +11 -0
  15. data/features/generator/rakefile.feature +151 -0
  16. data/features/generator/readme.feature +12 -0
  17. data/features/generator/test.feature +41 -0
  18. data/features/generator/test_helper.feature +49 -0
  19. data/features/placeholder.feature +5 -0
  20. data/features/step_definitions/debug_steps.rb +6 -0
  21. data/features/step_definitions/filesystem_steps.rb +68 -0
  22. data/features/step_definitions/generator_steps.rb +284 -0
  23. data/features/step_definitions/task_steps.rb +6 -0
  24. data/features/support/env.rb +29 -0
  25. data/features/tasks/build_gem.feature +9 -0
  26. data/features/tasks/version.feature +24 -0
  27. data/features/tasks/version_bumping.feature +33 -0
  28. data/jeweler.gemspec +225 -0
  29. data/lib/jeweler.rb +153 -0
  30. data/lib/jeweler/commands.rb +14 -0
  31. data/lib/jeweler/commands/build_gem.rb +31 -0
  32. data/lib/jeweler/commands/check_dependencies.rb +52 -0
  33. data/lib/jeweler/commands/install_gem.rb +40 -0
  34. data/lib/jeweler/commands/release.rb +86 -0
  35. data/lib/jeweler/commands/release_to_rubyforge.rb +51 -0
  36. data/lib/jeweler/commands/setup_rubyforge.rb +57 -0
  37. data/lib/jeweler/commands/validate_gemspec.rb +30 -0
  38. data/lib/jeweler/commands/version/base.rb +41 -0
  39. data/lib/jeweler/commands/version/bump_major.rb +13 -0
  40. data/lib/jeweler/commands/version/bump_minor.rb +12 -0
  41. data/lib/jeweler/commands/version/bump_patch.rb +14 -0
  42. data/lib/jeweler/commands/version/write.rb +12 -0
  43. data/lib/jeweler/commands/write_gemspec.rb +39 -0
  44. data/lib/jeweler/errors.rb +20 -0
  45. data/lib/jeweler/gemspec_helper.rb +79 -0
  46. data/lib/jeweler/generator.rb +306 -0
  47. data/lib/jeweler/generator/application.rb +54 -0
  48. data/lib/jeweler/generator/bacon_mixin.rb +43 -0
  49. data/lib/jeweler/generator/micronaut_mixin.rb +41 -0
  50. data/lib/jeweler/generator/minitest_mixin.rb +42 -0
  51. data/lib/jeweler/generator/options.rb +102 -0
  52. data/lib/jeweler/generator/rdoc_mixin.rb +9 -0
  53. data/lib/jeweler/generator/rspec_mixin.rb +42 -0
  54. data/lib/jeweler/generator/shoulda_mixin.rb +42 -0
  55. data/lib/jeweler/generator/testunit_mixin.rb +39 -0
  56. data/lib/jeweler/generator/yard_mixin.rb +14 -0
  57. data/lib/jeweler/rubyforge_tasks.rb +98 -0
  58. data/lib/jeweler/specification.rb +66 -0
  59. data/lib/jeweler/tasks.rb +135 -0
  60. data/lib/jeweler/templates/.document +5 -0
  61. data/lib/jeweler/templates/.gitignore +5 -0
  62. data/lib/jeweler/templates/LICENSE +20 -0
  63. data/lib/jeweler/templates/README.rdoc +18 -0
  64. data/lib/jeweler/templates/Rakefile +153 -0
  65. data/lib/jeweler/templates/bacon/flunking.rb +7 -0
  66. data/lib/jeweler/templates/bacon/helper.rb +8 -0
  67. data/lib/jeweler/templates/features/default.feature +9 -0
  68. data/lib/jeweler/templates/features/support/env.rb +8 -0
  69. data/lib/jeweler/templates/micronaut/flunking.rb +7 -0
  70. data/lib/jeweler/templates/micronaut/helper.rb +17 -0
  71. data/lib/jeweler/templates/minitest/flunking.rb +7 -0
  72. data/lib/jeweler/templates/minitest/helper.rb +11 -0
  73. data/lib/jeweler/templates/rspec/flunking.rb +7 -0
  74. data/lib/jeweler/templates/rspec/helper.rb +10 -0
  75. data/lib/jeweler/templates/shoulda/flunking.rb +7 -0
  76. data/lib/jeweler/templates/shoulda/helper.rb +10 -0
  77. data/lib/jeweler/templates/testunit/flunking.rb +7 -0
  78. data/lib/jeweler/templates/testunit/helper.rb +9 -0
  79. data/lib/jeweler/version_helper.rb +128 -0
  80. data/test/fixtures/bar/VERSION.yml +4 -0
  81. data/test/fixtures/bar/bin/foo_the_ultimate_bin +1 -0
  82. data/test/fixtures/bar/hey_include_me_in_gemspec +0 -0
  83. data/test/fixtures/bar/lib/foo_the_ultimate_lib.rb +1 -0
  84. data/test/fixtures/existing-project-with-version-plaintext/.document +5 -0
  85. data/test/fixtures/existing-project-with-version-plaintext/.gitignore +5 -0
  86. data/test/fixtures/existing-project-with-version-plaintext/LICENSE +20 -0
  87. data/test/fixtures/existing-project-with-version-plaintext/README.rdoc +7 -0
  88. data/test/fixtures/existing-project-with-version-plaintext/Rakefile +82 -0
  89. data/test/fixtures/existing-project-with-version-plaintext/VERSION +1 -0
  90. data/test/fixtures/existing-project-with-version-plaintext/existing-project-with-version.gemspec +29 -0
  91. data/test/fixtures/existing-project-with-version-plaintext/lib/existing_project_with_version.rb +0 -0
  92. data/test/fixtures/existing-project-with-version-plaintext/test/existing_project_with_version_test.rb +7 -0
  93. data/test/fixtures/existing-project-with-version-plaintext/test/test_helper.rb +10 -0
  94. data/test/fixtures/existing-project-with-version-yaml/.document +5 -0
  95. data/test/fixtures/existing-project-with-version-yaml/.gitignore +5 -0
  96. data/test/fixtures/existing-project-with-version-yaml/LICENSE +20 -0
  97. data/test/fixtures/existing-project-with-version-yaml/README.rdoc +7 -0
  98. data/test/fixtures/existing-project-with-version-yaml/Rakefile +82 -0
  99. data/test/fixtures/existing-project-with-version-yaml/VERSION.yml +4 -0
  100. data/test/fixtures/existing-project-with-version-yaml/bin/foo_the_ultimate_bin +0 -0
  101. data/test/fixtures/existing-project-with-version-yaml/existing-project-with-version.gemspec +29 -0
  102. data/test/fixtures/existing-project-with-version-yaml/lib/existing_project_with_version.rb +0 -0
  103. data/test/fixtures/existing-project-with-version-yaml/test/existing_project_with_version_test.rb +7 -0
  104. data/test/fixtures/existing-project-with-version-yaml/test/test_helper.rb +10 -0
  105. data/test/geminstaller.yml +12 -0
  106. data/test/jeweler/commands/test_build_gem.rb +72 -0
  107. data/test/jeweler/commands/test_install_gem.rb +74 -0
  108. data/test/jeweler/commands/test_release.rb +362 -0
  109. data/test/jeweler/commands/test_release_to_rubyforge.rb +157 -0
  110. data/test/jeweler/commands/test_setup_rubyforge.rb +182 -0
  111. data/test/jeweler/commands/test_validate_gemspec.rb +27 -0
  112. data/test/jeweler/commands/test_write_gemspec.rb +92 -0
  113. data/test/jeweler/commands/version/test_base.rb +32 -0
  114. data/test/jeweler/commands/version/test_bump_major.rb +22 -0
  115. data/test/jeweler/commands/version/test_bump_minor.rb +19 -0
  116. data/test/jeweler/commands/version/test_bump_patch.rb +20 -0
  117. data/test/jeweler/commands/version/test_write.rb +23 -0
  118. data/test/shoulda_macros/jeweler_macros.rb +35 -0
  119. data/test/test_application.rb +139 -0
  120. data/test/test_gemspec_helper.rb +40 -0
  121. data/test/test_generator.rb +166 -0
  122. data/test/test_generator_initialization.rb +156 -0
  123. data/test/test_generator_mixins.rb +18 -0
  124. data/test/test_helper.rb +159 -0
  125. data/test/test_jeweler.rb +174 -0
  126. data/test/test_options.rb +149 -0
  127. data/test/test_specification.rb +61 -0
  128. data/test/test_tasks.rb +35 -0
  129. data/test/test_version_helper.rb +153 -0
  130. metadata +283 -0
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'optparse'
4
+
5
+ $:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
6
+ require 'jeweler'
7
+
8
+ Jeweler::Generator::Application.run!(*ARGV)
@@ -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
@@ -0,0 +1,14 @@
1
+ Feature: generated .document
2
+ In order to easily generate RDoc
3
+ A user should be able to
4
+ generate reasonable .document file
5
+
6
+ Scenario: .document
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
+ Then '.document' contains 'README.rdoc'
11
+ And '.document' contains 'lib/**/*.rb'
12
+ And '.document' contains 'bin/*'
13
+ And '.document' contains 'features/**/*.feature'
14
+ And '.document' contains 'LICENSE'
@@ -0,0 +1,9 @@
1
+ Feature: Getting options from environment variable
2
+ In order to avoid having to type --rspec over and over
3
+ A user will need to set up a JEWELER_OPTS environment variable
4
+
5
+ Scenario: Environment variable set
6
+ Given a working directory
7
+ And I set JEWELER_OPTS env variable to "--rspec"
8
+ When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
9
+ Then 'spec/the-perfect-gem_spec.rb' should describe 'ThePerfectGem'
@@ -0,0 +1,94 @@
1
+ Feature: git support
2
+ In order to start a new gem for GitHub
3
+ A user should be able to
4
+ generate a project that is setup for git
5
+
6
+ Scenario: git remote configuration
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 git repository has 'origin' remote
12
+ And git repository 'origin' remote should be 'git@github.com:technicalpickles/the-perfect-gem.git'
13
+
14
+ Scenario: .gitignore
15
+ Given a working directory
16
+ And I have configured git sanely
17
+ When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
18
+
19
+ Then a sane '.gitignore' is created
20
+
21
+ Scenario: baseline repository
22
+ Given a working directory
23
+ And I have configured git sanely
24
+ When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
25
+
26
+ Then a commit with the message 'Initial commit to the-perfect-gem.' is made
27
+ And 'README.rdoc' was checked in
28
+ And 'Rakefile' was checked in
29
+ And 'LICENSE' was checked in
30
+ And 'lib/the-perfect-gem.rb' was checked in
31
+ And '.gitignore' was checked in
32
+
33
+ And no files are untracked
34
+ And no files are changed
35
+ And no files are added
36
+ And no files are deleted
37
+
38
+ Scenario: bacon
39
+ Given a working directory
40
+ And I have configured git sanely
41
+ When I generate a bacon project named 'the-perfect-gem' that is 'zomg, so good'
42
+
43
+ Then 'spec/spec_helper.rb' was checked in
44
+ And 'spec/the-perfect-gem_spec.rb' was checked in
45
+
46
+ Scenario: minitest
47
+ Given a working directory
48
+ And I have configured git sanely
49
+ When I generate a minitest project named 'the-perfect-gem' that is 'zomg, so good'
50
+
51
+ Then 'test/test_helper.rb' was checked in
52
+ And 'test/the-perfect-gem_test.rb' was checked in
53
+
54
+ Scenario: rspec
55
+ Given a working directory
56
+ And I have configured git sanely
57
+ When I generate a rspec project named 'the-perfect-gem' that is 'zomg, so good'
58
+
59
+ Then 'spec/spec_helper.rb' was checked in
60
+ And 'spec/the-perfect-gem_spec.rb' was checked in
61
+
62
+ Scenario: shoulda
63
+ Given a working directory
64
+ And I have configured git sanely
65
+ When I generate a shoulda project named 'the-perfect-gem' that is 'zomg, so good'
66
+
67
+ Then 'test/test_helper.rb' was checked in
68
+ And 'test/the-perfect-gem_test.rb' was checked in
69
+
70
+ Scenario: testunit
71
+ Given a working directory
72
+ And I have configured git sanely
73
+ When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
74
+
75
+ Then 'test/test_helper.rb' was checked in
76
+ And 'test/the-perfect-gem_test.rb' was checked in
77
+
78
+ Scenario: micronaut
79
+ Given a working directory
80
+ And I have configured git sanely
81
+ When I generate a micronaut project named 'the-perfect-gem' that is 'zomg, so good'
82
+
83
+ Then 'examples/example_helper.rb' was checked in
84
+ And 'examples/the-perfect-gem_example.rb' was checked in
85
+
86
+ Scenario: cucumber
87
+ Given a working directory
88
+ And I have configured git sanely
89
+ And I want cucumber stories
90
+ When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
91
+
92
+ Then 'features/the-perfect-gem.feature' was checked in
93
+ And 'features/support/env.rb' was checked in
94
+ And 'features/step_definitions/the-perfect-gem_steps.rb' was checked in
@@ -0,0 +1,11 @@
1
+ Feature: generated license
2
+ In order to start a new gem
3
+ A user should be able to
4
+ generate a default license
5
+
6
+ Scenario: copyright
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 LICENSE has the copyright as belonging to 'foo' in '2009'
@@ -0,0 +1,151 @@
1
+ Feature: generated Rakefile
2
+ In order to start a new gem
3
+ A user should be able to
4
+ generate a Rakefile
5
+
6
+ Background:
7
+ Given a working directory
8
+ And I have configured git sanely
9
+
10
+ Scenario: shared
11
+ When I generate a project named 'the-perfect-gem' that is 'zomg, so good' and described as 'Descriptive'
12
+
13
+ Then 'Rakefile' requires 'rubygems'
14
+ And 'Rakefile' requires 'rake'
15
+ And 'Rakefile' requires 'rake/rdoctask'
16
+ And Rakefile has 'the-perfect-gem' for the Jeweler::Tasks name
17
+ And Rakefile has 'bar@example.com' for the Jeweler::Tasks email
18
+ And Rakefile has 'zomg, so good' for the Jeweler::Tasks summary
19
+ And Rakefile has 'Descriptive' for the Jeweler::Tasks description
20
+ And Rakefile has 'http://github.com/technicalpickles/the-perfect-gem' for the Jeweler::Tasks homepage
21
+
22
+ Scenario: bacon
23
+ When I generate a bacon project named 'the-perfect-gem' that is 'zomg, so good'
24
+
25
+
26
+ Then 'Rakefile' requires 'rcov/rcovtask'
27
+ And Rakefile has 'spec/**/*_spec.rb' for the Rake::TestTask pattern
28
+ And Rakefile has 'spec/**/*_spec.rb' for the Rcov::RcovTask pattern
29
+ And Rakefile has 'spec' in the Rcov::RcovTask libs
30
+ And Rakefile has "spec" as the default task
31
+
32
+ Scenario: minitest
33
+ When I generate a minitest project named 'the-perfect-gem' that is 'zomg, so good'
34
+
35
+ Then 'Rakefile' requires 'rcov/rcovtask'
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
+ And Rakefile has 'test' in the Rcov::RcovTask libs
39
+ And Rakefile has "test" as the default task
40
+
41
+ Scenario: rspec
42
+ When I generate a rspec project named 'the-perfect-gem' that is 'zomg, so good'
43
+
44
+ Then 'Rakefile' requires 'spec/rake/spectask'
45
+ And Rakefile has 'spec/**/*_spec.rb' for the Spec::Rake::SpecTask pattern
46
+ And Rakefile has "spec" as the default task
47
+
48
+ Scenario: shoulda
49
+ When I generate a shoulda project named 'the-perfect-gem' that is 'zomg, so good'
50
+
51
+ Then 'Rakefile' requires 'rcov/rcovtask'
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
+ And Rakefile has 'test' in the Rcov::RcovTask libs
55
+ And Rakefile has "test" as the default task
56
+
57
+ Scenario: micronaut
58
+ When I generate a micronaut project named 'the-perfect-gem' that is 'zomg, so good'
59
+
60
+ Then 'Rakefile' requires 'micronaut/rake_task'
61
+ And Rakefile has 'examples/**/*_example.rb' for the Micronaut::RakeTask pattern
62
+ And Rakefile has "examples" as the default task
63
+
64
+ Scenario: testunit
65
+ When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
66
+
67
+ Then 'Rakefile' requires 'rcov/rcovtask'
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
+ And Rakefile has 'test' in the Rcov::RcovTask libs
71
+ And Rakefile has "test" as the default task
72
+
73
+ Scenario: no cucumber
74
+ Given I do not want cucumber stories
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'
77
+ And Rakefile does not instantiate a Cucumber::Rake::Task
78
+
79
+ Scenario: cucumber
80
+ Given I want cucumber stories
81
+ When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
82
+ Then Rakefile requires 'cucumber/rake/task'
83
+ And Rakefile instantiates a Cucumber::Rake::Task
84
+
85
+ Scenario: no reek
86
+ Given I do not want reek
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'
89
+ And Rakefile does not instantiate a Reek::RakeTask
90
+
91
+ Scenario: reek
92
+ Given I want reek
93
+ When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
94
+ Then Rakefile requires 'reek/rake_task'
95
+ And Rakefile instantiates a Reek::RakeTask
96
+
97
+ Scenario: no roodi
98
+ Given I do not want roodi
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'
102
+ And Rakefile does not instantiate a RoodiTask
103
+
104
+ Scenario: roodi
105
+ Given I want roodi
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'
109
+ And Rakefile instantiates a RoodiTask
110
+
111
+ Scenario: no rubyforge
112
+ Given I do not want rubyforge setup
113
+ When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
114
+ Then Rakefile does not instantiate a Jeweler::RubyforgeTasks
115
+
116
+ Scenario: rubyforge
117
+ Given I want rubyforge setup
118
+ When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
119
+ Then Rakefile instantiates a Jeweler::RubyforgeTasks
120
+
121
+ Scenario: yard
122
+ Given I want to use yard instead of rdoc
123
+ When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
124
+
125
+ Then 'Rakefile' does not require 'rake/rdoctask'
126
+ And 'Rakefile' requires 'yard'
127
+ And Rakefile instantiates a YARD::Rake::YardocTask
128
+
129
+ Scenario: rdoc
130
+ Given I want to use rdoc instead of yard
131
+ When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
132
+
133
+ Then 'Rakefile' does not require 'yard'
134
+ And 'Rakefile' requires 'rake/rdoctask'
135
+ And Rakefile does not instantiate a YARD::Rake::YardocTask
136
+ And Rakefile instantiates a Rake::RDocTask.new
137
+
138
+ Scenario: rubyforge and yard
139
+ Given I want to use yard instead of rdoc
140
+ And I want rubyforge setup
141
+ When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
142
+ Then Rakefile instantiates a Jeweler::RubyforgeTasks
143
+ And Rakefile has 'yardoc' for the Jeweler::RubyforgeTasks doc_task
144
+
145
+ Scenario: rubyfoge and doc
146
+ Given I want to use rdoc instead of yard
147
+ And I want rubyforge setup
148
+ And I want rubyforge setup
149
+ When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
150
+ Then Rakefile instantiates a Jeweler::RubyforgeTasks
151
+ And Rakefile has 'rdoc' for the Jeweler::RubyforgeTasks doc_task