newgem 1.3.0 → 1.4.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.
- data/History.txt +9 -0
- data/Manifest.txt +9 -1
- data/Rakefile +2 -1
- data/TODO.markdown +9 -3
- data/app_generators/newgem/newgem_generator.rb +5 -1
- data/app_generators/newgem/templates/README.rdoc +1 -1
- data/app_generators/newgem/templates/Rakefile +2 -1
- data/app_generators/newgem_simple/templates/Rakefile +1 -1
- data/bin/newgem +1 -1
- data/features/development.feature +5 -5
- data/features/executable_generator.feature +46 -29
- data/features/extconf.feature +27 -26
- data/features/install_cucumber.feature +29 -19
- data/features/install_website.feature +6 -6
- data/features/newgem_cli.feature +86 -42
- data/features/rubygem_tasks.feature +26 -18
- data/features/step_definitions/cli_steps.rb +22 -17
- data/features/step_definitions/common_steps.rb +45 -67
- data/features/step_definitions/rubygems_steps.rb +1 -1
- data/features/support/cli.rb +8 -0
- data/features/support/common.rb +29 -0
- data/features/support/env.rb +2 -7
- data/features/support/matchers.rb +11 -0
- data/lib/newgem.rb +1 -1
- data/lib/newgem/rubyforge-ext.rb +1 -1
- data/newgem_generators/install_website/install_website_generator.rb +1 -1
- data/newgem_generators/install_website/templates/features/website.feature +4 -4
- data/newgem_theme_generators/long_box_theme/long_box_theme_generator.rb +1 -1
- data/rubygems_generators/executable/executable_generator.rb +1 -1
- data/rubygems_generators/executable/templates/spec/cli_spec.rb.erb +2 -2
- data/rubygems_generators/executable/templates/test/test_cli.rb.erb +2 -2
- data/rubygems_generators/extconf/extconf_generator.rb +1 -1
- data/rubygems_generators/install_cucumber/install_cucumber_generator.rb +2 -0
- data/rubygems_generators/install_cucumber/templates/features/development.feature +5 -5
- data/rubygems_generators/install_cucumber/templates/features/step_definitions/common_steps.rb +45 -67
- data/rubygems_generators/install_cucumber/templates/features/support/common.rb +29 -0
- data/rubygems_generators/install_rspec/install_rspec_generator.rb +1 -1
- data/rubygems_generators/install_rspec/templates/spec.rb +1 -1
- data/rubygems_generators/install_rspec/templates/spec/spec_helper.rb +1 -1
- data/rubygems_generators/install_rspec/templates/tasks/rspec.rake +1 -1
- data/rubygems_generators/install_shoulda/USAGE +5 -0
- data/rubygems_generators/install_shoulda/install_shoulda_generator.rb +35 -0
- data/rubygems_generators/install_shoulda/templates/tasks/shoulda.rake +15 -0
- data/rubygems_generators/install_shoulda/templates/test/test.rb +13 -0
- data/rubygems_generators/install_shoulda/templates/test/test_helper.rb +9 -0
- data/rubygems_generators/install_test_unit/install_test_unit_generator.rb +1 -1
- data/script/destroy +1 -1
- data/script/generate +1 -1
- data/test/test_generator_helper.rb +1 -1
- data/website/index.html +2 -2
- data/website/rubyforge.html +2 -2
- metadata +21 -6
- data/features/expected_outputs/newgem.out +0 -27
data/History.txt
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
== 1.4.0 2009-05-02
|
2
|
+
|
3
|
+
* install_shoulda - use "newgem -T shoulda" to use shoulda for testing instead of test_unit or rspec
|
4
|
+
* common_steps.rb - When steps all started with 'I ...'
|
5
|
+
* common.rb - using module instead of creating methods against global namespace; no more kittens killed [thx Ben Mabey]
|
6
|
+
* all +require 'rubygems'+ are conditional unless ENV['NO_RUBYGEMS'] [thx David Chelimsky + Ryan Tomayko]
|
7
|
+
* module_name supports hyphens throughout all generators (they are treated as underscores for camelize method)
|
8
|
+
* common_steps.rb - using "(.*)" for placeholders which is now cucumber defacto standard
|
9
|
+
|
1
10
|
== 1.3.0 2009-03-17
|
2
11
|
|
3
12
|
* install_cucumber: using layout like Rails' cucumber generator: features/support/env.rb + features/step_definitions/common_steps.rb
|
data/Manifest.txt
CHANGED
@@ -34,7 +34,6 @@ cucumber_generators/feature/templates/feature.erb
|
|
34
34
|
cucumber_generators/feature/templates/steps.erb
|
35
35
|
features/development.feature
|
36
36
|
features/executable_generator.feature
|
37
|
-
features/expected_outputs/newgem.out
|
38
37
|
features/extconf.feature
|
39
38
|
features/install_cucumber.feature
|
40
39
|
features/install_website.feature
|
@@ -43,7 +42,10 @@ features/rubygem_tasks.feature
|
|
43
42
|
features/step_definitions/cli_steps.rb
|
44
43
|
features/step_definitions/common_steps.rb
|
45
44
|
features/step_definitions/rubygems_steps.rb
|
45
|
+
features/support/cli.rb
|
46
|
+
features/support/common.rb
|
46
47
|
features/support/env.rb
|
48
|
+
features/support/matchers.rb
|
47
49
|
lib/hoe-patched.rb
|
48
50
|
lib/newgem.rb
|
49
51
|
lib/newgem/quick_template.rb
|
@@ -91,6 +93,7 @@ rubygems_generators/install_cucumber/USAGE
|
|
91
93
|
rubygems_generators/install_cucumber/install_cucumber_generator.rb
|
92
94
|
rubygems_generators/install_cucumber/templates/features/development.feature
|
93
95
|
rubygems_generators/install_cucumber/templates/features/step_definitions/common_steps.rb
|
96
|
+
rubygems_generators/install_cucumber/templates/features/support/common.rb
|
94
97
|
rubygems_generators/install_cucumber/templates/features/support/env.rb.erb
|
95
98
|
rubygems_generators/install_jruby/USAGE
|
96
99
|
rubygems_generators/install_jruby/install_jruby_generator.rb
|
@@ -101,6 +104,11 @@ rubygems_generators/install_rspec/templates/spec.rb
|
|
101
104
|
rubygems_generators/install_rspec/templates/spec/spec.opts
|
102
105
|
rubygems_generators/install_rspec/templates/spec/spec_helper.rb
|
103
106
|
rubygems_generators/install_rspec/templates/tasks/rspec.rake
|
107
|
+
rubygems_generators/install_shoulda/USAGE
|
108
|
+
rubygems_generators/install_shoulda/install_shoulda_generator.rb
|
109
|
+
rubygems_generators/install_shoulda/templates/tasks/shoulda.rake
|
110
|
+
rubygems_generators/install_shoulda/templates/test/test.rb
|
111
|
+
rubygems_generators/install_shoulda/templates/test/test_helper.rb
|
104
112
|
rubygems_generators/install_test_unit/USAGE
|
105
113
|
rubygems_generators/install_test_unit/install_test_unit_generator.rb
|
106
114
|
rubygems_generators/install_test_unit/templates/test/test.rb
|
data/Rakefile
CHANGED
data/TODO.markdown
CHANGED
@@ -1,5 +1,11 @@
|
|
1
|
-
##
|
1
|
+
## post_rubyflow
|
2
2
|
|
3
|
-
|
3
|
+
Code blocks:
|
4
|
+
* use <code>
|
5
|
+
* indent spaces must be
|
4
6
|
|
5
|
-
|
7
|
+
Need title + method description
|
8
|
+
|
9
|
+
Probably need to move away from current History.txt paragraph parsing
|
10
|
+
|
11
|
+
Store rubyflow login details in .hoerc or .rubyforge?
|
@@ -17,7 +17,7 @@ class NewgemGenerator < RubiGen::Base
|
|
17
17
|
|
18
18
|
|
19
19
|
attr_reader :gem_name, :module_name, :project_name
|
20
|
-
attr_reader :version, :version_str, :author, :email
|
20
|
+
attr_reader :version, :version_str, :author, :email, :project_url
|
21
21
|
|
22
22
|
# extensions/option
|
23
23
|
attr_reader :test_framework
|
@@ -33,6 +33,8 @@ class NewgemGenerator < RubiGen::Base
|
|
33
33
|
@gem_name = base_name
|
34
34
|
@module_name = gem_name.gsub('-','_').camelize
|
35
35
|
@project_name = @gem_name
|
36
|
+
@github_username = 'FIXME'
|
37
|
+
@project_url = 'http://github.com/#{github_username}/#{project_name}'
|
36
38
|
extract_options
|
37
39
|
end
|
38
40
|
|
@@ -60,6 +62,8 @@ class NewgemGenerator < RubiGen::Base
|
|
60
62
|
m.dependency "install_test_unit", [gem_name], :destination => destination_root, :collision => :force
|
61
63
|
when "rspec"
|
62
64
|
m.dependency "install_rspec", [gem_name], :destination => destination_root, :collision => :force
|
65
|
+
when "shoulda"
|
66
|
+
m.dependency "install_shoulda", [gem_name], :destination => destination_root, :collision => :force
|
63
67
|
end
|
64
68
|
|
65
69
|
# Website
|
@@ -1,4 +1,5 @@
|
|
1
|
-
|
1
|
+
require 'rubygems' unless ENV['NO_RUBYGEMS']
|
2
|
+
%w[rake rake/clean fileutils newgem rubigen].each { |f| require f }
|
2
3
|
require File.dirname(__FILE__) + '/lib/<%= gem_name %>'
|
3
4
|
|
4
5
|
# Generate all the Rake tasks
|
data/bin/newgem
CHANGED
@@ -6,8 +6,8 @@ Feature: Development processes of newgem itself (rake tasks)
|
|
6
6
|
|
7
7
|
Scenario: Generate RubyGem
|
8
8
|
Given this project is active project folder
|
9
|
-
And
|
10
|
-
When task
|
11
|
-
Then folder
|
12
|
-
And file with name matching
|
13
|
-
And gem spec key
|
9
|
+
And "pkg" folder is deleted
|
10
|
+
When I invoke task "rake gem"
|
11
|
+
Then folder "pkg" is created
|
12
|
+
And file with name matching "pkg/*.gem" is created else you should run "rake manifest" to fix this
|
13
|
+
And gem spec key "rdoc_options" contains /--mainREADME.rdoc/
|
@@ -5,42 +5,59 @@ Feature: Generate an executable/CLI scaffold
|
|
5
5
|
So that I know the structure for constructing CLIs and can create them quickly
|
6
6
|
|
7
7
|
Scenario: Run executable generator with name of executable
|
8
|
-
Given an existing newgem scaffold [called
|
9
|
-
When
|
10
|
-
Then folder
|
11
|
-
And file
|
12
|
-
And file
|
13
|
-
And file
|
8
|
+
Given an existing newgem scaffold [called "my_project"]
|
9
|
+
When I invoke "executable" generator with arguments "my_app"
|
10
|
+
Then folder "bin/my_app" is created
|
11
|
+
And file "bin/my_app" is created
|
12
|
+
And file "lib/my_app/cli.rb" is created
|
13
|
+
And file "test/test_my_app_cli.rb" is created
|
14
|
+
When I run unit tests for test file "test/test_my_app_cli.rb"
|
15
|
+
Then I should see all 1 tests pass
|
14
16
|
|
15
17
|
Scenario: Run executable generator with name of executable on rspec project
|
16
|
-
Given an existing newgem scaffold using options
|
17
|
-
When
|
18
|
-
Then folder
|
19
|
-
And file
|
20
|
-
And file
|
21
|
-
And file
|
18
|
+
Given an existing newgem scaffold using options "-T rspec" [called "my_project"]
|
19
|
+
When I invoke "executable" generator with arguments "my_app"
|
20
|
+
Then folder "bin/my_app" is created
|
21
|
+
And file "bin/my_app" is created
|
22
|
+
And file "lib/my_app/cli.rb" is created
|
23
|
+
And file "spec/my_app_cli_spec.rb" is created
|
24
|
+
When I enable rspec autorun
|
25
|
+
And I run unit tests for test file "spec/my_app_cli_spec.rb"
|
26
|
+
Then I should see all 1 examples pass
|
27
|
+
|
28
|
+
Scenario: Run executable generator with name of executable on shoulda project
|
29
|
+
Given an existing newgem scaffold using options "-T shoulda" [called "my_project"]
|
30
|
+
When I invoke "executable" generator with arguments "my_app"
|
31
|
+
Then folder "bin/my_app" is created
|
32
|
+
And file "bin/my_app" is created
|
33
|
+
And file "lib/my_app/cli.rb" is created
|
34
|
+
And file "test/test_my_app_cli.rb" is created
|
22
35
|
|
23
36
|
Scenario: Run CLI app from executable generator to show help
|
24
|
-
Given an existing newgem scaffold [called
|
25
|
-
Given
|
26
|
-
When run project executable
|
27
|
-
Then help options
|
28
|
-
Then help options
|
37
|
+
Given an existing newgem scaffold [called "my_project"]
|
38
|
+
Given I invoke "executable" generator with arguments "my_app"
|
39
|
+
When I run project executable "bin/my_app" with arguments "-h"
|
40
|
+
Then help options "-h" and "--help" are displayed
|
41
|
+
Then help options "-p" and "--path" are displayed
|
29
42
|
|
30
43
|
Scenario: Run CLI app from executable generator should not fail
|
31
|
-
Given an existing newgem scaffold [called
|
32
|
-
|
33
|
-
When run project executable
|
34
|
-
Then
|
44
|
+
Given an existing newgem scaffold [called "my_project"]
|
45
|
+
And I invoke "executable" generator with arguments "my_app"
|
46
|
+
When I run project executable "bin/my_app" with arguments ""
|
47
|
+
Then I should see
|
48
|
+
"""
|
49
|
+
lib/my_app/cli.rb
|
50
|
+
"""
|
35
51
|
|
36
52
|
Scenario: Run unit tests after executable generator should all pass for test/unit
|
37
|
-
Given an existing newgem scaffold [called
|
38
|
-
And
|
39
|
-
When run unit tests for test file
|
40
|
-
Then all 1 tests pass
|
53
|
+
Given an existing newgem scaffold [called "my_project"]
|
54
|
+
And I invoke "executable" generator with arguments "my_app"
|
55
|
+
When I run unit tests for test file "test/test_my_app_cli.rb"
|
56
|
+
Then I should see all 1 tests pass
|
41
57
|
|
42
58
|
Scenario: Run examples after executable generator should all pass for rspec
|
43
|
-
Given an existing newgem scaffold using options
|
44
|
-
And
|
45
|
-
When
|
46
|
-
|
59
|
+
Given an existing newgem scaffold using options "-T rspec" [called "my_project"]
|
60
|
+
And I invoke "executable" generator with arguments "my_app"
|
61
|
+
When I enable rspec autorun
|
62
|
+
And I run unit tests for test file "spec/my_app_cli_spec.rb"
|
63
|
+
Then I should see all 1 examples pass
|
data/features/extconf.feature
CHANGED
@@ -4,35 +4,36 @@ Feature: Write and test C-extensions
|
|
4
4
|
I want to generate a scaffold with test/spec support for writing Ruby C-extensions
|
5
5
|
|
6
6
|
Scenario: Run extconf generator with name of extension
|
7
|
-
Given an existing newgem scaffold [called
|
8
|
-
When
|
9
|
-
Then folder
|
10
|
-
And file
|
11
|
-
And file
|
12
|
-
And file
|
13
|
-
And file
|
14
|
-
And
|
7
|
+
Given an existing newgem scaffold [called "my_project"]
|
8
|
+
When I invoke "extconf" generator with arguments "my_ext"
|
9
|
+
Then folder "ext/my_ext" is created
|
10
|
+
And file "ext/my_ext/extconf.rb" is created
|
11
|
+
And file "ext/my_ext/my_ext.c" is created
|
12
|
+
And file "test/test_my_ext_extn.rb" is created
|
13
|
+
And file ".autotest" is created
|
14
|
+
And file ".autotest" contents does match /test\/test_.*_extn\.rb/
|
15
15
|
|
16
16
|
Scenario: Run extconf generator with name of extension on rspec project
|
17
|
-
Given an existing newgem scaffold using options
|
18
|
-
When
|
19
|
-
Then folder
|
20
|
-
And file
|
21
|
-
And file
|
22
|
-
And file
|
23
|
-
And file
|
24
|
-
And
|
17
|
+
Given an existing newgem scaffold using options "-T rspec" [called "my_project"]
|
18
|
+
When I invoke "extconf" generator with arguments "my_ext"
|
19
|
+
Then folder "ext/my_ext" is created
|
20
|
+
And file "ext/my_ext/extconf.rb" is created
|
21
|
+
And file "ext/my_ext/my_ext.c" is created
|
22
|
+
And file "spec/my_ext_extn_spec.rb" is created
|
23
|
+
And file ".autotest" is created
|
24
|
+
And file ".autotest" contents does match /spec\/.*_extn_spec\.rb/
|
25
25
|
|
26
26
|
Scenario: Run unit tests after executable generator should all pass for test/unit
|
27
|
-
Given an existing newgem scaffold [called
|
28
|
-
And
|
29
|
-
When task
|
30
|
-
And run unit tests for test file
|
31
|
-
Then all 1 tests pass
|
27
|
+
Given an existing newgem scaffold [called "my_project"]
|
28
|
+
And I invoke "extconf" generator with arguments "my_ext"
|
29
|
+
When I invoke task "rake compile"
|
30
|
+
And I run unit tests for test file "test/test_my_ext_extn.rb"
|
31
|
+
Then I should see all 1 tests pass
|
32
32
|
|
33
33
|
Scenario: Run examples after executable generator should all pass for rspec
|
34
|
-
Given an existing newgem scaffold using options
|
35
|
-
And
|
36
|
-
When task
|
37
|
-
And
|
38
|
-
|
34
|
+
Given an existing newgem scaffold using options "-T rspec" [called "my_project"]
|
35
|
+
And I invoke "extconf" generator with arguments "my_ext"
|
36
|
+
When I invoke task "rake compile"
|
37
|
+
And I enable rspec autorun
|
38
|
+
And I run unit tests for test file "spec/my_ext_extn_spec.rb"
|
39
|
+
Then I should see all 1 examples pass
|
@@ -1,29 +1,39 @@
|
|
1
1
|
Feature: RubyGems have features to be described and tested
|
2
2
|
|
3
3
|
As a RubyGem developer
|
4
|
-
I want to describe the project
|
4
|
+
I want to describe the project"s features using Cucumber
|
5
5
|
So that I can describe each feature of the project in readable text
|
6
6
|
|
7
7
|
Scenario: Install Cucumber into a RubyGem
|
8
|
-
Given
|
9
|
-
|
10
|
-
|
11
|
-
Then folder
|
12
|
-
|
13
|
-
And file
|
14
|
-
And file
|
15
|
-
And file
|
8
|
+
Given default env variables setup for name and email
|
9
|
+
And an existing newgem scaffold [called "my_project"]
|
10
|
+
When I invoke "install_cucumber" generator with arguments ""
|
11
|
+
Then folder "features/step_definitions" is created
|
12
|
+
Then folder "features/support" is created
|
13
|
+
And file "features/development.feature" is created
|
14
|
+
And file "features/support/env.rb" is created
|
15
|
+
And file "features/support/common.rb" is created
|
16
|
+
And file "features/support/matchers.rb" is created
|
17
|
+
And file "features/step_definitions/common_steps.rb" is created
|
18
|
+
And file "tasks/cucumber.rake" is not created as it is loaded via newgem itself
|
16
19
|
|
17
20
|
Scenario: NewGem and generated gems should share some common files
|
18
|
-
Given
|
19
|
-
|
20
|
-
|
21
|
-
Then gem file
|
21
|
+
Given default env variables setup for name and email
|
22
|
+
And an existing newgem scaffold [called "my_project"]
|
23
|
+
When I invoke "install_cucumber" generator with arguments ""
|
24
|
+
Then gem file "features/step_definitions/common_steps.rb" and generated file "features/step_definitions/common_steps.rb" should be the same
|
25
|
+
Then gem file "features/support/common.rb" and generated file "features/support/common.rb" should be the same
|
26
|
+
Then gem file "features/support/matchers.rb" and generated file "features/support/matchers.rb" should be the same
|
27
|
+
Then gem file "features/development.feature" and generated file "features/development.feature" should be the same
|
22
28
|
|
23
|
-
Scenario: Installed Cucumber includes a
|
24
|
-
Given an existing newgem scaffold [called
|
25
|
-
And
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
+
Scenario: Installed Cucumber includes a "rake features" task
|
30
|
+
Given an existing newgem scaffold [called "my_project"]
|
31
|
+
And I invoke "install_cucumber" generator with arguments ""
|
32
|
+
And I invoke task "rake manifest"
|
33
|
+
When I invoke task "rake features"
|
34
|
+
Then task "rake features" is executed successfully
|
35
|
+
And I should see
|
36
|
+
"""
|
37
|
+
......
|
38
|
+
"""
|
29
39
|
|
@@ -5,10 +5,10 @@ Feature: RubyGems can have a website to promote and teach
|
|
5
5
|
So that I can spend time on the tests and code, and not excessive time on maintenance processes
|
6
6
|
|
7
7
|
Scenario: Deploy project website via local rsync
|
8
|
-
Given an existing newgem scaffold [called
|
8
|
+
Given an existing newgem scaffold [called "my_project"]
|
9
9
|
And project website configuration for safe folder on local machine
|
10
|
-
When
|
11
|
-
And task
|
12
|
-
Then file
|
13
|
-
Then remote file
|
14
|
-
Then remote folder
|
10
|
+
When I invoke "install_website" generator with arguments ""
|
11
|
+
And I invoke task "rake website"
|
12
|
+
Then file "website/index.html" is created
|
13
|
+
Then remote file "index.html" is created after local rsync
|
14
|
+
Then remote folder "rdoc" is created after local rsync
|
data/features/newgem_cli.feature
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Feature: Can run
|
1
|
+
Feature: Can run "newgem" to create RubyGem scaffolds
|
2
2
|
|
3
3
|
As a developer of RubyGems
|
4
4
|
I want to create RubyGem scaffolds
|
@@ -6,80 +6,124 @@ Feature: Can run 'newgem' to create RubyGem scaffolds
|
|
6
6
|
|
7
7
|
Scenario: Run newgem without any arguments
|
8
8
|
Given a safe folder
|
9
|
-
Given env variable $RUBYFORGE_USERNAME set to
|
10
|
-
When newgem is executed for project
|
11
|
-
Then file
|
12
|
-
And does invoke generator
|
13
|
-
And does invoke generator
|
14
|
-
And does not invoke generator
|
15
|
-
And does not invoke generator
|
16
|
-
And does not invoke generator
|
17
|
-
And does not invoke generator
|
18
|
-
And file
|
19
|
-
And
|
9
|
+
Given env variable $RUBYFORGE_USERNAME set to ""
|
10
|
+
When newgem is executed for project "my_project" with no options
|
11
|
+
Then file "Rakefile" is created
|
12
|
+
And does invoke generator "install_test_unit"
|
13
|
+
And does invoke generator "install_rubigen_scripts"
|
14
|
+
And does not invoke generator "install_website"
|
15
|
+
And does not invoke generator "install_rspec"
|
16
|
+
And does not invoke generator "install_shoulda"
|
17
|
+
And does not invoke generator "install_cucumber"
|
18
|
+
And file "config/website.yml" is not created
|
19
|
+
And I should see
|
20
|
+
"""
|
21
|
+
create
|
22
|
+
create doc
|
23
|
+
create lib
|
24
|
+
create script
|
25
|
+
create tasks
|
26
|
+
create lib/my_project
|
27
|
+
create History.txt
|
28
|
+
create Rakefile
|
29
|
+
create README.rdoc
|
30
|
+
create PostInstall.txt
|
31
|
+
create lib/my_project.rb
|
32
|
+
dependency install_test_unit
|
33
|
+
create test
|
34
|
+
create test/test_helper.rb
|
35
|
+
create test/test_my_project.rb
|
36
|
+
dependency install_rubigen_scripts
|
37
|
+
exists script
|
38
|
+
create script/generate
|
39
|
+
create script/destroy
|
40
|
+
create script/console
|
41
|
+
create Manifest.txt
|
42
|
+
readme readme
|
43
|
+
Important
|
44
|
+
=========
|
45
|
+
|
46
|
+
* Open Rakefile
|
47
|
+
* Update missing details (gem description, dependent gems, etc.)
|
48
|
+
"""
|
20
49
|
And Rakefile can display tasks successfully
|
50
|
+
When I invoke task "rake test"
|
51
|
+
Then I should see all 1 tests pass
|
21
52
|
|
22
53
|
Scenario: Run newgem with project name containing hypens
|
23
54
|
Given a safe folder
|
24
|
-
Given env variable $RUBYFORGE_USERNAME set to
|
25
|
-
When newgem is executed for project
|
55
|
+
Given env variable $RUBYFORGE_USERNAME set to ""
|
56
|
+
When newgem is executed for project "my-project" with no options
|
26
57
|
Then Rakefile can display tasks successfully
|
27
58
|
|
28
59
|
Scenario: Run newgem to include rspec
|
29
60
|
Given a safe folder
|
30
|
-
When newgem is executed for project
|
31
|
-
Then does invoke generator
|
32
|
-
And does not invoke generator
|
33
|
-
And does not invoke generator
|
34
|
-
And does not invoke generator
|
61
|
+
When newgem is executed for project "my_rspec_project" with options "-T rspec"
|
62
|
+
Then does invoke generator "install_rspec"
|
63
|
+
And does not invoke generator "install_test_unit"
|
64
|
+
And does not invoke generator "install_shoulda"
|
65
|
+
And does not invoke generator "install_cucumber"
|
66
|
+
And Rakefile can display tasks successfully
|
67
|
+
When I invoke task "rake spec"
|
68
|
+
Then I should see all 1 examples pass
|
69
|
+
|
70
|
+
Scenario: Run newgem to include shoulda
|
71
|
+
Given a safe folder
|
72
|
+
When newgem is executed for project "my_shoulda_project" with options "-T shoulda"
|
73
|
+
Then does invoke generator "install_shoulda"
|
74
|
+
And does not invoke generator "install_test_unit"
|
75
|
+
And does not invoke generator "install_rspec"
|
76
|
+
And does not invoke generator "install_cucumber"
|
35
77
|
And Rakefile can display tasks successfully
|
78
|
+
When I invoke task "rake test"
|
79
|
+
Then I should see all 1 tests pass
|
36
80
|
|
37
81
|
Scenario: Run newgem to enable website
|
38
82
|
Given a safe folder
|
39
|
-
When newgem is executed for project
|
40
|
-
Then does invoke generator
|
41
|
-
And file
|
42
|
-
And yaml file
|
83
|
+
When newgem is executed for project "my_project" with options "-w"
|
84
|
+
Then does invoke generator "install_website"
|
85
|
+
And file "config/website.yml.sample" is created
|
86
|
+
And yaml file "config/website.yml.sample" contains {"host" => "unknown@rubyforge.org", "remote_dir" => "/var/www/gforge-projects/my_project"}
|
43
87
|
And Rakefile can display tasks successfully
|
44
88
|
|
45
89
|
Scenario: Run newgem to enable website, with env $RUBYFORGE_USERNAME set
|
46
90
|
Given a safe folder
|
47
|
-
Given env variable $RUBYFORGE_USERNAME set to
|
48
|
-
When newgem is executed for project
|
49
|
-
Then file
|
50
|
-
And yaml file
|
91
|
+
Given env variable $RUBYFORGE_USERNAME set to "nicwilliams"
|
92
|
+
When newgem is executed for project "my_project" with options "-w"
|
93
|
+
Then file "config/website.yml.sample" is created
|
94
|
+
And yaml file "config/website.yml.sample" contains {"host" => "nicwilliams@rubyforge.org", "remote_dir" => "/var/www/gforge-projects/my_project"}
|
51
95
|
And Rakefile can display tasks successfully
|
52
96
|
|
53
97
|
Scenario: Run newgem to install misc generators on top of unit test framework
|
54
98
|
Given a safe folder
|
55
|
-
When newgem is executed for project
|
56
|
-
Then does invoke generator
|
57
|
-
And does invoke generator
|
58
|
-
And does not invoke generator
|
99
|
+
When newgem is executed for project "my_project" with options "-i cucumber"
|
100
|
+
Then does invoke generator "install_test_unit"
|
101
|
+
And does invoke generator "install_cucumber"
|
102
|
+
And does not invoke generator "install_rspec"
|
59
103
|
And Rakefile can display tasks successfully
|
60
104
|
|
61
105
|
Scenario: Run newgem to pull in defaults from ~/.newgem.yml file and no argument options
|
62
106
|
Given a safe folder
|
63
107
|
And ~/.newgem.yml contains {"default" => "-T rspec -i cucumber"}
|
64
|
-
When newgem is executed for project
|
65
|
-
Then does invoke generator
|
66
|
-
And does invoke generator
|
67
|
-
And does not invoke generator
|
68
|
-
And does not invoke generator
|
108
|
+
When newgem is executed for project "my_project" with options ""
|
109
|
+
Then does invoke generator "install_rspec"
|
110
|
+
And does invoke generator "install_cucumber"
|
111
|
+
And does not invoke generator "install_website"
|
112
|
+
And does not invoke generator "install_test_unit"
|
69
113
|
And Rakefile can display tasks successfully
|
70
114
|
|
71
115
|
Scenario: Run newgem to pull in defaults from ~/.newgem.yml file and merge with runtime args
|
72
116
|
Given a safe folder
|
73
117
|
And ~/.newgem.yml contains {"default" => "-T rspec -i cucumber"}
|
74
|
-
When newgem is executed for project
|
75
|
-
Then does invoke generator
|
76
|
-
And does invoke generator
|
77
|
-
And does invoke generator
|
78
|
-
And does not invoke generator
|
118
|
+
When newgem is executed for project "my_project" with options "-i website"
|
119
|
+
Then does invoke generator "install_rspec"
|
120
|
+
And does invoke generator "install_cucumber"
|
121
|
+
And does invoke generator "install_website"
|
122
|
+
And does not invoke generator "install_test_unit"
|
79
123
|
And Rakefile can display tasks successfully
|
80
124
|
|
81
125
|
Scenario: Run newgem and show current version number
|
82
126
|
Given a safe folder
|
83
|
-
When newgem is executed only with options
|
127
|
+
When newgem is executed only with options "--version"
|
84
128
|
Then shows version number
|
85
129
|
|