newgem 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. data/History.txt +8 -0
  2. data/Manifest.txt +7 -2
  3. data/README.rdoc +8 -0
  4. data/Rakefile +4 -1
  5. data/TODO.markdown +5 -0
  6. data/app_generators/newgem/newgem_generator.rb +1 -1
  7. data/app_generators/newgem/templates/Rakefile +3 -0
  8. data/features/development.feature +2 -11
  9. data/features/executable_generator.feature +16 -3
  10. data/features/install_cucumber.feature +13 -1
  11. data/features/steps/cli.rb +12 -142
  12. data/features/steps/common.rb +154 -0
  13. data/lib/newgem.rb +1 -1
  14. data/newgem_generators/install_website/install_website_generator.rb +1 -1
  15. data/newgem_generators/install_website/templates/features/website.feature +14 -0
  16. data/rubygems_generators/executable/executable_generator.rb +9 -1
  17. data/rubygems_generators/executable/templates/bin/app.rb.erb +1 -1
  18. data/rubygems_generators/executable/templates/lib/app/cli.rb.erb +2 -2
  19. data/rubygems_generators/executable/templates/spec/cli_spec.rb.erb +8 -0
  20. data/rubygems_generators/install_cucumber/install_cucumber_generator.rb +3 -4
  21. data/rubygems_generators/install_cucumber/templates/features/development.feature +13 -0
  22. data/rubygems_generators/install_cucumber/templates/features/steps/common.rb +154 -0
  23. data/rubygems_generators/install_cucumber/templates/{env.rb → features/steps/env.rb.erb} +0 -0
  24. data/tasks/deployment.rake +1 -1
  25. data/test/test_install_cucumber_generator.rb +0 -2
  26. data/test/test_install_website_generator.rb +0 -1
  27. data/test/test_newgem_generator.rb +3 -3
  28. data/website/index.html +3 -3
  29. data/website/index.txt +1 -1
  30. data/website/rubyforge.html +1 -1
  31. metadata +10 -5
  32. data/rubygems_generators/install_cucumber/templates/cucumber.rake +0 -6
data/History.txt CHANGED
@@ -1,3 +1,11 @@
1
+ == 1.0.4 2008-11-01
2
+
3
+ * Hard-coded cucumber >= 0.1.8 dependency to avoid accidently requiring unreleased versions that are only in development
4
+ * local tasks/*.rake are loaded in generated gems
5
+ * install_cucumber: adds a development.feature to check that gem building can succeed
6
+ * cleaned up some require statements to explicitly load code from local src not an installed gem
7
+ * rake default => [:test, :features] - for continuous integration via runcoderun.com
8
+
1
9
  == 1.0.3 2008-10-31
2
10
 
3
11
  * GitHub RubyGem support. `rake gemspec` generates a clean `my_project.gemspec` file that will work with GitHub
data/Manifest.txt CHANGED
@@ -3,6 +3,7 @@ Manifest.txt
3
3
  PostInstall.txt
4
4
  README.rdoc
5
5
  Rakefile
6
+ TODO.markdown
6
7
  app_generators/newgem/newgem_generator.rb
7
8
  app_generators/newgem/templates/History.txt
8
9
  app_generators/newgem/templates/PostInstall.txt
@@ -39,6 +40,7 @@ features/install_website.feature
39
40
  features/newgem_cli.feature
40
41
  features/rubygem_tasks.feature
41
42
  features/steps/cli.rb
43
+ features/steps/common.rb
42
44
  features/steps/env.rb
43
45
  features/steps/rubygems.rb
44
46
  lib/hoe-patched.rb
@@ -50,6 +52,7 @@ lib/newgem/tasks.rb
50
52
  newgem_generators/install_website/USAGE
51
53
  newgem_generators/install_website/install_website_generator.rb
52
54
  newgem_generators/install_website/templates/config/website.yml.sample.erb
55
+ newgem_generators/install_website/templates/features/website.feature
53
56
  newgem_generators/install_website/templates/script/txt2html
54
57
  newgem_generators/install_website/templates/script/win_script.cmd
55
58
  newgem_generators/install_website/templates/tasks/website.rake
@@ -71,6 +74,7 @@ rubygems_generators/executable/USAGE
71
74
  rubygems_generators/executable/executable_generator.rb
72
75
  rubygems_generators/executable/templates/bin/app.rb.erb
73
76
  rubygems_generators/executable/templates/lib/app/cli.rb.erb
77
+ rubygems_generators/executable/templates/spec/cli_spec.rb.erb
74
78
  rubygems_generators/executable/templates/test/test_cli.rb.erb
75
79
  rubygems_generators/extconf/USAGE
76
80
  rubygems_generators/extconf/extconf_generator.rb
@@ -82,8 +86,9 @@ rubygems_generators/extconf/templates/tasks/extconf.rake
82
86
  rubygems_generators/extconf/templates/tasks/extconf_name.rake
83
87
  rubygems_generators/extconf/templates/test/test.rb.erb
84
88
  rubygems_generators/install_cucumber/install_cucumber_generator.rb
85
- rubygems_generators/install_cucumber/templates/cucumber.rake
86
- rubygems_generators/install_cucumber/templates/env.rb
89
+ rubygems_generators/install_cucumber/templates/features/development.feature
90
+ rubygems_generators/install_cucumber/templates/features/steps/common.rb
91
+ rubygems_generators/install_cucumber/templates/features/steps/env.rb.erb
87
92
  rubygems_generators/install_jruby/USAGE
88
93
  rubygems_generators/install_jruby/install_jruby_generator.rb
89
94
  rubygems_generators/install_jruby/templates/tasks/jruby.rake
data/README.rdoc CHANGED
@@ -83,6 +83,14 @@ Alternately, download the gem and install manually.
83
83
 
84
84
  Tickets or suggestions can be raised at http://drnic.lighthouseapp.com/projects/18881-newgem/overview
85
85
 
86
+ == DOES IT WORK?
87
+
88
+ Much of newgem's behaviour is covered by functional tests (see features at http://github.com/drnic/newgem/tree/master/features).
89
+
90
+ With each commit to the master branch of the git repository, these functional tests and the unit tests are run via a continuous integration server.
91
+
92
+ Current build status: http://runcoderun.com/drnic/newgem
93
+
86
94
  == TUTORIALS:
87
95
 
88
96
  * Home page is a full tutorial - http://newgem.rubyforge.org
data/Rakefile CHANGED
@@ -15,7 +15,7 @@ $hoe = Hoe.new('newgem', Newgem::VERSION) do |p|
15
15
  ['syntax','>= 1.0.0']
16
16
  ]
17
17
  p.extra_dev_deps = [
18
- ['cucumber', ">= #{::Cucumber::VERSION::STRING}"]
18
+ ['cucumber', ">= 1.1.8"]
19
19
  ]
20
20
  p.clean_globs |= %w[**/.DS_Store tmp *.log]
21
21
  path = (p.rubyforge_name == p.name) ? p.rubyforge_name : "\#{p.rubyforge_name}/\#{p.name}"
@@ -54,3 +54,6 @@ namespace :hoe do
54
54
  end
55
55
  end
56
56
  end
57
+
58
+ remove_task :default
59
+ task :default => :features
data/TODO.markdown ADDED
@@ -0,0 +1,5 @@
1
+ ## install_cucumber
2
+
3
+ * don't generate tasks/cucumber.rake since its already loaded from newgem
4
+
5
+ ## Rakefile
@@ -151,7 +151,7 @@ EOS
151
151
  @author = options[:author]
152
152
  @email = options[:email]
153
153
  unless @author && @email
154
- require 'newgem/rubyforge'
154
+ require File.dirname(__FILE__) + '/../../lib/newgem/rubyforge'
155
155
  rubyforge_config = Newgem::Rubyforge.new
156
156
  @author ||= rubyforge_config.full_name
157
157
  @email ||= rubyforge_config.email
@@ -24,4 +24,7 @@ $hoe = Hoe.new('<%= gem_name %>', <%= module_name %>::VERSION) do |p|
24
24
  end
25
25
 
26
26
  require 'newgem/tasks' # load /tasks/*.rake
27
+ Dir['tasks/**/*.rake'].each { |t| load t }
27
28
 
29
+ # TODO - want other tests/tasks run by default? Add them to the list
30
+ # task :default => [:spec, :features]
@@ -3,20 +3,11 @@ Feature: Development processes of newgem itself (rake tasks)
3
3
  As a Newgem maintainer or contributor
4
4
  I want rake tasks to maintain and release the gem
5
5
  So that I can spend time on the tests and code, and not excessive time on maintenance processes
6
-
7
- # Scenario: Deploy project website via local rsync
8
- # Given copy this project for test
9
- # Given a safe folder for dummy deployment
10
- # Given project website configuration for safe folder on local machine
11
- # When task 'rake website' is invoked
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
15
- #
6
+
16
7
  Scenario: Generate RubyGem
17
8
  Given this project is active project folder
18
9
  And 'pkg' folder is deleted
19
10
  When task 'rake gem' is invoked
20
11
  Then folder 'pkg' is created
21
- And file matching 'pkg/newgem-*.gem' is created
12
+ And file matching 'pkg/*.gem' is created else you should run "rake manifest:refresh" to fix this
22
13
  And gem spec key 'rdoc_options' contains /--mainREADME.rdoc/
@@ -11,6 +11,14 @@ Feature: Generate an executable/CLI scaffold
11
11
  And file 'bin/my_app' is created
12
12
  And file 'lib/my_app/cli.rb' is created
13
13
  And file 'test/test_my_app_cli.rb' is created
14
+
15
+ Scenario: Run executable generator with name of executable on rspec project
16
+ Given an existing newgem scaffold using options '-T rspec' [called 'my_project']
17
+ When 'executable' generator is invoked with arguments 'my_app'
18
+ Then folder 'bin/my_app' is created
19
+ And file 'bin/my_app' is created
20
+ And file 'lib/my_app/cli.rb' is created
21
+ And file 'spec/my_app_cli_spec.rb' is created
14
22
 
15
23
  Scenario: Run CLI app from executable generator to show help
16
24
  Given an existing newgem scaffold [called 'my_project']
@@ -25,9 +33,14 @@ Feature: Generate an executable/CLI scaffold
25
33
  When run executable 'bin/my_app' with arguments ''
26
34
  Then output does match /lib\/my_app\/cli.rb/
27
35
 
28
- Scenario: Run unit tests after executable generator should all pass
36
+ Scenario: Run unit tests after executable generator should all pass for test/unit
29
37
  Given an existing newgem scaffold [called 'my_project']
30
- Given 'executable' generator is invoked with arguments 'my_app'
38
+ And 'executable' generator is invoked with arguments 'my_app'
31
39
  When run unit tests for test file 'test/test_my_app_cli.rb'
32
40
  Then all 1 tests pass
33
-
41
+
42
+ Scenario: Run unit tests after executable generator should all pass for rspec
43
+ Given an existing newgem scaffold using options '-T rspec' [called 'my_project']
44
+ And 'executable' generator is invoked with arguments 'my_app'
45
+ When run unit tests for test file 'spec/my_app_cli_spec.rb'
46
+ Then all 1 examples pass
@@ -8,10 +8,22 @@ Feature: RubyGems have features to be described and tested
8
8
  Given an existing newgem scaffold [called 'my_project']
9
9
  When 'install_cucumber' generator is invoked with arguments ''
10
10
  Then folder 'features/steps' is created
11
- And file 'tasks/cucumber.rake' is created
11
+ And file 'features/development.feature' is created
12
+ And file 'features/steps/common.rb' is created
13
+ And file 'tasks/cucumber.rake' is not created as it is loaded via newgem itself
14
+
15
+ Scenario: NewGem and generated gems should share some common files
16
+ Given an existing newgem scaffold [called 'my_project']
17
+ When 'install_cucumber' generator is invoked with arguments ''
18
+ Then gem file 'features/steps/common.rb' and generated file 'features/steps/common.rb' should be the same
19
+ Then gem file 'features/development.feature' and generated file 'features/development.feature' should be the same
12
20
 
13
21
  Scenario: Installed Cucumber includes a 'rake features' task
14
22
  Given an existing newgem scaffold [called 'my_project']
15
23
  And 'install_cucumber' generator is invoked with arguments ''
16
24
  When task 'rake features' is invoked
17
25
  Then task 'rake features' is executed successfully
26
+ And output does match /Feature: Development processes of newgem itself \(rake tasks\)/
27
+ And output does match /And file matching 'pkg/\*\.gem' is created/
28
+ And output does not match /You can use these snippets to implement pending steps/
29
+
@@ -1,39 +1,22 @@
1
- Given %r{^a safe folder} do
2
- FileUtils.rm_rf @tmp_root = File.dirname(__FILE__) + "/../../tmp"
3
- FileUtils.mkdir_p @tmp_root
4
- @newgem_lib_path = File.expand_path(File.dirname(__FILE__) + '/../../lib')
5
- end
6
-
7
- Given /^this project is active project folder/ do
1
+ Given %r{^an existing newgem scaffold \[called '(.*)'\]} do |project_name|
8
2
  Given "a safe folder"
9
- @active_project_folder = File.expand_path(File.dirname(__FILE__) + "/../..")
10
- end
11
-
12
- Given /^env variable \$([\w_]+) set to '(.*)'/ do |env_var, value|
13
- ENV[env_var] = value
14
- end
15
-
16
- def force_local_newgem_priority(project_name = @project_name)
17
- rakefile = File.read(File.join(project_name, 'Rakefile'))
18
- File.open(File.join(project_name, 'Rakefile'), "w+") do |f|
19
- f << "$:.unshift('#{@newgem_lib_path}')\n"
20
- f << rakefile
3
+ newgem = File.expand_path(File.dirname(__FILE__) + "/../../bin/newgem")
4
+ setup_active_project_folder project_name
5
+ FileUtils.chdir @tmp_root do
6
+ @stdout = "newgem.out"
7
+ system "ruby #{newgem} #{project_name} > #{@stdout}"
8
+ force_local_lib_override
21
9
  end
22
10
  end
23
11
 
24
- def setup_active_project_folder project_name
25
- @active_project_folder = File.join(@tmp_root, project_name)
26
- @project_name = project_name
27
- end
28
-
29
- Given %r{^an existing newgem scaffold \[called '(.*)'\]} do |project_name|
12
+ Given %r{^an existing newgem scaffold using options '(.*)' \[called '(.*)'\]} do |arguments, project_name|
30
13
  Given "a safe folder"
31
14
  newgem = File.expand_path(File.dirname(__FILE__) + "/../../bin/newgem")
32
15
  setup_active_project_folder project_name
33
16
  FileUtils.chdir @tmp_root do
34
17
  @stdout = "newgem.out"
35
- system "ruby #{newgem} #{project_name} > #{@stdout}"
36
- force_local_newgem_priority
18
+ system "ruby #{newgem} #{arguments} #{project_name} > #{@stdout}"
19
+ force_local_lib_override
37
20
  end
38
21
  end
39
22
 
@@ -49,19 +32,13 @@ Given /^project website configuration for safe folder on local machine$/ do
49
32
  end
50
33
  end
51
34
 
52
- Given /^'(.*)' folder is deleted/ do |folder|
53
- FileUtils.chdir @active_project_folder do
54
- FileUtils.rm_rf folder
55
- end
56
- end
57
-
58
35
  When %r{^newgem is executed for project '(.*)' with no options$} do |project_name|
59
36
  newgem = File.expand_path(File.dirname(__FILE__) + "/../../bin/newgem")
60
37
  setup_active_project_folder project_name
61
38
  FileUtils.chdir @tmp_root do
62
39
  @stdout = "newgem.out"
63
40
  system "ruby #{newgem} #{project_name} > #{@stdout}"
64
- force_local_newgem_priority
41
+ force_local_lib_override
65
42
  end
66
43
  end
67
44
 
@@ -71,25 +48,7 @@ When %r{^newgem is executed for project '(.*)' with options '(.*)'$} do |project
71
48
  FileUtils.chdir @tmp_root do
72
49
  @stdout = "newgem.out"
73
50
  system "ruby #{newgem} #{arguments} #{project_name} > #{@stdout}"
74
- force_local_newgem_priority
75
- end
76
- end
77
-
78
- When %r{^'(.*)' generator is invoked with arguments '(.*)'$} do |generator, arguments|
79
- FileUtils.chdir(@active_project_folder) do
80
- if Object.const_defined?("APP_ROOT")
81
- APP_ROOT.replace(FileUtils.pwd)
82
- else
83
- APP_ROOT = FileUtils.pwd
84
- end
85
- run_generator(generator, arguments.split(' '), SOURCES)
86
- end
87
- end
88
-
89
- When /^run executable '(.*)' with arguments '(.*)'$/ do |executable, arguments|
90
- @stdout = File.expand_path(File.join(@tmp_root, "executable.out"))
91
- FileUtils.chdir(@active_project_folder) do
92
- system "ruby #{executable} #{arguments} > #{@stdout}"
51
+ force_local_lib_override
93
52
  end
94
53
  end
95
54
 
@@ -100,103 +59,14 @@ When /^run unit tests for test file '(.*)'$/ do |test_file|
100
59
  end
101
60
  end
102
61
 
103
- When /^task 'rake (.*)' is invoked$/ do |task|
104
- @stdout = File.expand_path(File.join(@tmp_root, "tests.out"))
105
- FileUtils.chdir(@active_project_folder) do
106
- system "rake #{task} --trace > #{@stdout} 2> #{@stdout}"
107
- end
108
- end
109
-
110
- Then %r{^folder '(.*)' is created} do |folder|
111
- FileUtils.chdir @active_project_folder do
112
- File.exists?(folder).should be_true
113
- end
114
- end
115
-
116
62
  Then %r{^remote folder '(.*)' is created} do |folder|
117
63
  FileUtils.chdir @remote_folder do
118
64
  File.exists?(folder).should be_true
119
65
  end
120
66
  end
121
67
 
122
- Then %r{^file '(.*)' (is|is not) created} do |file, is|
123
- FileUtils.chdir @active_project_folder do
124
- File.exists?(file).should(is == 'is' ? be_true : be_false)
125
- end
126
- end
127
-
128
68
  Then %r{^remote file '(.*)' (is|is not) created} do |file, is|
129
69
  FileUtils.chdir @remote_folder do
130
70
  File.exists?(file).should(is == 'is' ? be_true : be_false)
131
71
  end
132
72
  end
133
-
134
- Then /^file matching '(.*)' is created$/ do |pattern|
135
- FileUtils.chdir @active_project_folder do
136
- Dir[pattern].should_not be_empty
137
- end
138
- end
139
-
140
- Then %r{^output same as contents of '(.*)'$} do |file|
141
- expected_output = File.read(File.join(File.dirname(__FILE__) + "/../expected_outputs", file))
142
- actual_output = File.read(File.dirname(__FILE__) + "/../../tmp/#{@stdout}")
143
- actual_output.should == expected_output
144
- end
145
-
146
- Then %r{^(does|does not) invoke generator '(.*)'$} do |does_invoke, generator|
147
- actual_output = File.read(File.dirname(__FILE__) + "/../../tmp/#{@stdout}")
148
- does_invoke == "does" ?
149
- actual_output.should(match(/dependency\s+#{generator}/)) :
150
- actual_output.should_not(match(/dependency\s+#{generator}/))
151
- end
152
-
153
- Then /^help options '(.*)' and '(.*)' are displayed$/ do |opt1, opt2|
154
- actual_output = File.read(@stdout)
155
- actual_output.should match(/#{opt1}/)
156
- actual_output.should match(/#{opt2}/)
157
- end
158
-
159
- Then /^output (does|does not) match \/(.*)\/$/ do |does, regex|
160
- actual_output = File.read(@stdout)
161
- (does == 'does') ?
162
- actual_output.should(match(/#{regex}/)) :
163
- actual_output.should_not(match(/#{regex}/))
164
- end
165
-
166
- Then /^all (\d+) tests pass$/ do |expected_test_count|
167
- expected = %r{^#{expected_test_count} tests, \d+ assertions, 0 failures, 0 errors}
168
- actual_output = File.read(@stdout)
169
- actual_output.should match(expected)
170
- end
171
-
172
- Then /^yaml file '(.*)' contains (\{.*\})/ do |file, yaml|
173
- FileUtils.chdir @active_project_folder do
174
- yaml = eval yaml
175
- YAML.load(File.read(file)).should == yaml
176
- end
177
- end
178
-
179
- Then /^gem spec key '(.*)' contains \/(.*)\/$/ do |key, regex|
180
- FileUtils.chdir @active_project_folder do
181
- gem_file = Dir["pkg/*.gem"].first
182
- gem_spec = Gem::Specification.from_yaml(`gem spec #{gem_file}`)
183
- spec_value = gem_spec.send(key.to_sym)
184
- spec_value.to_s.should match(/#{regex}/)
185
- end
186
- end
187
-
188
- Then /^Rakefile can display tasks successfully$/ do
189
- @rake_stdout = File.expand_path(File.join(@tmp_root, "rakefile.out"))
190
- FileUtils.chdir(@active_project_folder) do
191
- system "rake -T > #{@rake_stdout} 2> #{@rake_stdout}"
192
- end
193
- actual_output = File.read(@rake_stdout)
194
- actual_output.should match(/^rake\s+\w+\s+#\s.*/)
195
- end
196
-
197
- Then /^task 'rake (.*)' is executed successfully$/ do |task|
198
- @stdout.should_not be_nil
199
- actual_output = File.read(@stdout)
200
- actual_output.should_not match(/^Don't know how to build task '#{task}'/)
201
- actual_output.should_not match(/Error/i)
202
- end
@@ -0,0 +1,154 @@
1
+ Given %r{^a safe folder} do
2
+ FileUtils.rm_rf @tmp_root = File.dirname(__FILE__) + "/../../tmp"
3
+ FileUtils.mkdir_p @tmp_root
4
+ @lib_path = File.expand_path(File.dirname(__FILE__) + '/../../lib')
5
+ end
6
+
7
+ Given /^this project is active project folder/ do
8
+ Given "a safe folder"
9
+ @active_project_folder = File.expand_path(File.dirname(__FILE__) + "/../..")
10
+ end
11
+
12
+ Given /^env variable \$([\w_]+) set to '(.*)'/ do |env_var, value|
13
+ ENV[env_var] = value
14
+ end
15
+
16
+ def force_local_lib_override(project_name = @project_name)
17
+ rakefile = File.read(File.join(project_name, 'Rakefile'))
18
+ File.open(File.join(project_name, 'Rakefile'), "w+") do |f|
19
+ f << "$:.unshift('#{@lib_path}')\n"
20
+ f << rakefile
21
+ end
22
+ end
23
+
24
+ def setup_active_project_folder project_name
25
+ @active_project_folder = File.join(@tmp_root, project_name)
26
+ @project_name = project_name
27
+ end
28
+
29
+ Given /^'(.*)' folder is deleted/ do |folder|
30
+ FileUtils.chdir @active_project_folder do
31
+ FileUtils.rm_rf folder
32
+ end
33
+ end
34
+
35
+ When %r{^'(.*)' generator is invoked with arguments '(.*)'$} do |generator, arguments|
36
+ FileUtils.chdir(@active_project_folder) do
37
+ if Object.const_defined?("APP_ROOT")
38
+ APP_ROOT.replace(FileUtils.pwd)
39
+ else
40
+ APP_ROOT = FileUtils.pwd
41
+ end
42
+ run_generator(generator, arguments.split(' '), SOURCES)
43
+ end
44
+ end
45
+
46
+ When /^run executable '(.*)' with arguments '(.*)'$/ do |executable, arguments|
47
+ @stdout = File.expand_path(File.join(@tmp_root, "executable.out"))
48
+ FileUtils.chdir(@active_project_folder) do
49
+ system "ruby #{executable} #{arguments} > #{@stdout}"
50
+ end
51
+ end
52
+
53
+ When /^task 'rake (.*)' is invoked$/ do |task|
54
+ @stdout = File.expand_path(File.join(@tmp_root, "tests.out"))
55
+ FileUtils.chdir(@active_project_folder) do
56
+ system "rake #{task} --trace > #{@stdout} 2> #{@stdout}"
57
+ end
58
+ end
59
+
60
+ Then %r{^folder '(.*)' is created} do |folder|
61
+ FileUtils.chdir @active_project_folder do
62
+ File.exists?(folder).should be_true
63
+ end
64
+ end
65
+
66
+ Then %r{^file '(.*)' (is|is not) created} do |file, is|
67
+ FileUtils.chdir @active_project_folder do
68
+ File.exists?(file).should(is == 'is' ? be_true : be_false)
69
+ end
70
+ end
71
+
72
+ Then /^file matching '(.*)' is created/ do |pattern|
73
+ FileUtils.chdir @active_project_folder do
74
+ Dir[pattern].should_not be_empty
75
+ end
76
+ end
77
+
78
+ Then /^gem file '(.*)' and generated file '(.*)' should be the same$/ do |gem_file, project_file|
79
+ File.exists?(gem_file).should be_true
80
+ File.exists?(project_file).should be_true
81
+ gem_file_contents = File.read(File.dirname(__FILE__) + "/../../#{gem_file}")
82
+ project_file_contents = File.read(File.join(@active_project_folder, project_file))
83
+ project_file_contents.should == gem_file_contents
84
+ end
85
+
86
+ Then %r{^output same as contents of '(.*)'$} do |file|
87
+ expected_output = File.read(File.join(File.dirname(__FILE__) + "/../expected_outputs", file))
88
+ actual_output = File.read(File.dirname(__FILE__) + "/../../tmp/#{@stdout}")
89
+ actual_output.should == expected_output
90
+ end
91
+
92
+ Then %r{^(does|does not) invoke generator '(.*)'$} do |does_invoke, generator|
93
+ actual_output = File.read(File.dirname(__FILE__) + "/../../tmp/#{@stdout}")
94
+ does_invoke == "does" ?
95
+ actual_output.should(match(/dependency\s+#{generator}/)) :
96
+ actual_output.should_not(match(/dependency\s+#{generator}/))
97
+ end
98
+
99
+ Then /^help options '(.*)' and '(.*)' are displayed$/ do |opt1, opt2|
100
+ actual_output = File.read(@stdout)
101
+ actual_output.should match(/#{opt1}/)
102
+ actual_output.should match(/#{opt2}/)
103
+ end
104
+
105
+ Then /^output (does|does not) match \/(.*)\/$/ do |does, regex|
106
+ actual_output = File.read(@stdout)
107
+ (does == 'does') ?
108
+ actual_output.should(match(/#{regex}/)) :
109
+ actual_output.should_not(match(/#{regex}/))
110
+ end
111
+
112
+ Then /^all (\d+) tests pass$/ do |expected_test_count|
113
+ expected = %r{^#{expected_test_count} tests, \d+ assertions, 0 failures, 0 errors}
114
+ actual_output = File.read(@stdout)
115
+ actual_output.should match(expected)
116
+ end
117
+
118
+ Then /^all (\d+) examples pass$/ do |expected_test_count|
119
+ expected = %r{^#{expected_test_count} examples?, 0 failures}
120
+ actual_output = File.read(@stdout)
121
+ actual_output.should match(expected)
122
+ end
123
+
124
+ Then /^yaml file '(.*)' contains (\{.*\})/ do |file, yaml|
125
+ FileUtils.chdir @active_project_folder do
126
+ yaml = eval yaml
127
+ YAML.load(File.read(file)).should == yaml
128
+ end
129
+ end
130
+
131
+ Then /^Rakefile can display tasks successfully$/ do
132
+ @stdout = File.expand_path(File.join(@tmp_root, "rakefile.out"))
133
+ FileUtils.chdir(@active_project_folder) do
134
+ system "rake -T > #{@stdout} 2> #{@stdout}"
135
+ end
136
+ actual_output = File.read(@stdout)
137
+ actual_output.should match(/^rake\s+\w+\s+#\s.*/)
138
+ end
139
+
140
+ Then /^task 'rake (.*)' is executed successfully$/ do |task|
141
+ @stdout.should_not be_nil
142
+ actual_output = File.read(@stdout)
143
+ actual_output.should_not match(/^Don't know how to build task '#{task}'/)
144
+ actual_output.should_not match(/Error/i)
145
+ end
146
+
147
+ Then /^gem spec key '(.*)' contains \/(.*)\/$/ do |key, regex|
148
+ FileUtils.chdir @active_project_folder do
149
+ gem_file = Dir["pkg/*.gem"].first
150
+ gem_spec = Gem::Specification.from_yaml(`gem spec #{gem_file}`)
151
+ spec_value = gem_spec.send(key.to_sym)
152
+ spec_value.to_s.should match(/#{regex}/)
153
+ end
154
+ end
data/lib/newgem.rb CHANGED
@@ -4,5 +4,5 @@ $:.unshift(File.dirname(__FILE__)) unless
4
4
  require "hoe-patched"
5
5
 
6
6
  module Newgem
7
- VERSION = '1.0.3'
7
+ VERSION = '1.0.4'
8
8
  end
@@ -87,7 +87,7 @@ EOS
87
87
 
88
88
  def github_username
89
89
  @github_username ||= begin
90
- require 'newgem/rubyforge'
90
+ require File.dirname(__FILE__) + '/../../lib/newgem/rubyforge'
91
91
  rubyforge_config = Newgem::Rubyforge.new
92
92
  rubyforge_config.github_username
93
93
  end
@@ -0,0 +1,14 @@
1
+ Feature: Can deploy a website to a remote server via rsycn
2
+ In order to promote and educate people about this project
3
+ As a website maintainer
4
+ I want a simple helper to generate and push a website to a remote server
5
+
6
+ Scenario: Deploy project website via local rsync
7
+ Given copy this project for test
8
+ Given a safe folder for dummy deployment
9
+ Given project website configuration for safe folder on local machine
10
+ When task 'rake website' is invoked
11
+ Then file 'website/index.html' is created
12
+ Then remote file 'index.html' is created after local rsync
13
+ Then remote folder 'rdoc' is created after local rsync
14
+
@@ -31,7 +31,11 @@ class ExecutableGenerator < RubiGen::Base
31
31
  # App stub
32
32
  m.template "bin/app.rb.erb", "bin/#{bin_name}"
33
33
  m.template "lib/app/cli.rb.erb", "lib/#{bin_name}/cli.rb"
34
- m.template "test/test_cli.rb.erb", "test/test_#{bin_name}_cli.rb"
34
+ if using_rspec?
35
+ m.template "spec/cli_spec.rb.erb", "spec/#{bin_name}_cli_spec.rb"
36
+ else
37
+ m.template "test/test_cli.rb.erb", "test/test_#{bin_name}_cli.rb"
38
+ end
35
39
  end
36
40
  end
37
41
 
@@ -56,4 +60,8 @@ EOS
56
60
  def extract_options
57
61
  @author = options[:author]
58
62
  end
63
+
64
+ def using_rspec?
65
+ !Dir[File.join(destination_root, 'spec')].empty?
66
+ end
59
67
  end
@@ -7,4 +7,4 @@ require File.expand_path(File.dirname(__FILE__) + "/../lib/<%= project_name %>")
7
7
 
8
8
  require "<%= bin_name %>/cli"
9
9
 
10
- <%= module_name %>::CLI.execute
10
+ <%= module_name %>::CLI.execute(ARGV)
@@ -2,7 +2,7 @@ require 'optparse'
2
2
 
3
3
  module <%= module_name %>
4
4
  class CLI
5
- def self.execute
5
+ def self.execute(arguments=[])
6
6
 
7
7
  # NOTE: the option -p/--path= is given as an example, and should be replaced in your application.
8
8
 
@@ -26,7 +26,7 @@ module <%= module_name %>
26
26
  "Default: ~") { |arg| OPTIONS[:path] = arg }
27
27
  opts.on("-h", "--help",
28
28
  "Show this help message.") { puts opts; exit }
29
- opts.parse!(ARGV)
29
+ opts.parse!(arguments)
30
30
 
31
31
  if mandatory_options && mandatory_options.find { |option| options[option.to_sym].nil? }
32
32
  puts opts; exit
@@ -0,0 +1,8 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+ require '<%= bin_name %>/cli'
3
+
4
+ describe "Execute CLI" do
5
+ it "should execute" do
6
+ <%= module_name %>::CLI.execute
7
+ end
8
+ end
@@ -17,10 +17,9 @@ class InstallCucumberGenerator < RubiGen::Base
17
17
  script_options = { :chmod => 0755, :shebang => options[:shebang] == DEFAULT_SHEBANG ? nil : options[:shebang] }
18
18
 
19
19
  m.directory 'features/steps'
20
- m.template 'env.rb', 'features/steps/env.rb'
21
-
22
- m.directory 'tasks'
23
- m.file 'cucumber.rake', 'tasks/cucumber.rake'
20
+ m.file 'features/development.feature', 'features/development.feature'
21
+ m.file 'features/steps/common.rb', 'features/steps/common.rb'
22
+ m.template 'features/steps/env.rb.erb', 'features/steps/env.rb'
24
23
  end
25
24
  end
26
25
 
@@ -0,0 +1,13 @@
1
+ Feature: Development processes of newgem itself (rake tasks)
2
+
3
+ As a Newgem maintainer or contributor
4
+ I want rake tasks to maintain and release the gem
5
+ So that I can spend time on the tests and code, and not excessive time on maintenance processes
6
+
7
+ Scenario: Generate RubyGem
8
+ Given this project is active project folder
9
+ And 'pkg' folder is deleted
10
+ When task 'rake gem' is invoked
11
+ Then folder 'pkg' is created
12
+ And file matching 'pkg/*.gem' is created else you should run "rake manifest:refresh" to fix this
13
+ And gem spec key 'rdoc_options' contains /--mainREADME.rdoc/
@@ -0,0 +1,154 @@
1
+ Given %r{^a safe folder} do
2
+ FileUtils.rm_rf @tmp_root = File.dirname(__FILE__) + "/../../tmp"
3
+ FileUtils.mkdir_p @tmp_root
4
+ @lib_path = File.expand_path(File.dirname(__FILE__) + '/../../lib')
5
+ end
6
+
7
+ Given /^this project is active project folder/ do
8
+ Given "a safe folder"
9
+ @active_project_folder = File.expand_path(File.dirname(__FILE__) + "/../..")
10
+ end
11
+
12
+ Given /^env variable \$([\w_]+) set to '(.*)'/ do |env_var, value|
13
+ ENV[env_var] = value
14
+ end
15
+
16
+ def force_local_lib_override(project_name = @project_name)
17
+ rakefile = File.read(File.join(project_name, 'Rakefile'))
18
+ File.open(File.join(project_name, 'Rakefile'), "w+") do |f|
19
+ f << "$:.unshift('#{@lib_path}')\n"
20
+ f << rakefile
21
+ end
22
+ end
23
+
24
+ def setup_active_project_folder project_name
25
+ @active_project_folder = File.join(@tmp_root, project_name)
26
+ @project_name = project_name
27
+ end
28
+
29
+ Given /^'(.*)' folder is deleted/ do |folder|
30
+ FileUtils.chdir @active_project_folder do
31
+ FileUtils.rm_rf folder
32
+ end
33
+ end
34
+
35
+ When %r{^'(.*)' generator is invoked with arguments '(.*)'$} do |generator, arguments|
36
+ FileUtils.chdir(@active_project_folder) do
37
+ if Object.const_defined?("APP_ROOT")
38
+ APP_ROOT.replace(FileUtils.pwd)
39
+ else
40
+ APP_ROOT = FileUtils.pwd
41
+ end
42
+ run_generator(generator, arguments.split(' '), SOURCES)
43
+ end
44
+ end
45
+
46
+ When /^run executable '(.*)' with arguments '(.*)'$/ do |executable, arguments|
47
+ @stdout = File.expand_path(File.join(@tmp_root, "executable.out"))
48
+ FileUtils.chdir(@active_project_folder) do
49
+ system "ruby #{executable} #{arguments} > #{@stdout}"
50
+ end
51
+ end
52
+
53
+ When /^task 'rake (.*)' is invoked$/ do |task|
54
+ @stdout = File.expand_path(File.join(@tmp_root, "tests.out"))
55
+ FileUtils.chdir(@active_project_folder) do
56
+ system "rake #{task} --trace > #{@stdout} 2> #{@stdout}"
57
+ end
58
+ end
59
+
60
+ Then %r{^folder '(.*)' is created} do |folder|
61
+ FileUtils.chdir @active_project_folder do
62
+ File.exists?(folder).should be_true
63
+ end
64
+ end
65
+
66
+ Then %r{^file '(.*)' (is|is not) created} do |file, is|
67
+ FileUtils.chdir @active_project_folder do
68
+ File.exists?(file).should(is == 'is' ? be_true : be_false)
69
+ end
70
+ end
71
+
72
+ Then /^file matching '(.*)' is created/ do |pattern|
73
+ FileUtils.chdir @active_project_folder do
74
+ Dir[pattern].should_not be_empty
75
+ end
76
+ end
77
+
78
+ Then /^gem file '(.*)' and generated file '(.*)' should be the same$/ do |gem_file, project_file|
79
+ File.exists?(gem_file).should be_true
80
+ File.exists?(project_file).should be_true
81
+ gem_file_contents = File.read(File.dirname(__FILE__) + "/../../#{gem_file}")
82
+ project_file_contents = File.read(File.join(@active_project_folder, project_file))
83
+ project_file_contents.should == gem_file_contents
84
+ end
85
+
86
+ Then %r{^output same as contents of '(.*)'$} do |file|
87
+ expected_output = File.read(File.join(File.dirname(__FILE__) + "/../expected_outputs", file))
88
+ actual_output = File.read(File.dirname(__FILE__) + "/../../tmp/#{@stdout}")
89
+ actual_output.should == expected_output
90
+ end
91
+
92
+ Then %r{^(does|does not) invoke generator '(.*)'$} do |does_invoke, generator|
93
+ actual_output = File.read(File.dirname(__FILE__) + "/../../tmp/#{@stdout}")
94
+ does_invoke == "does" ?
95
+ actual_output.should(match(/dependency\s+#{generator}/)) :
96
+ actual_output.should_not(match(/dependency\s+#{generator}/))
97
+ end
98
+
99
+ Then /^help options '(.*)' and '(.*)' are displayed$/ do |opt1, opt2|
100
+ actual_output = File.read(@stdout)
101
+ actual_output.should match(/#{opt1}/)
102
+ actual_output.should match(/#{opt2}/)
103
+ end
104
+
105
+ Then /^output (does|does not) match \/(.*)\/$/ do |does, regex|
106
+ actual_output = File.read(@stdout)
107
+ (does == 'does') ?
108
+ actual_output.should(match(/#{regex}/)) :
109
+ actual_output.should_not(match(/#{regex}/))
110
+ end
111
+
112
+ Then /^all (\d+) tests pass$/ do |expected_test_count|
113
+ expected = %r{^#{expected_test_count} tests, \d+ assertions, 0 failures, 0 errors}
114
+ actual_output = File.read(@stdout)
115
+ actual_output.should match(expected)
116
+ end
117
+
118
+ Then /^all (\d+) examples pass$/ do |expected_test_count|
119
+ expected = %r{^#{expected_test_count} examples?, 0 failures}
120
+ actual_output = File.read(@stdout)
121
+ actual_output.should match(expected)
122
+ end
123
+
124
+ Then /^yaml file '(.*)' contains (\{.*\})/ do |file, yaml|
125
+ FileUtils.chdir @active_project_folder do
126
+ yaml = eval yaml
127
+ YAML.load(File.read(file)).should == yaml
128
+ end
129
+ end
130
+
131
+ Then /^Rakefile can display tasks successfully$/ do
132
+ @stdout = File.expand_path(File.join(@tmp_root, "rakefile.out"))
133
+ FileUtils.chdir(@active_project_folder) do
134
+ system "rake -T > #{@stdout} 2> #{@stdout}"
135
+ end
136
+ actual_output = File.read(@stdout)
137
+ actual_output.should match(/^rake\s+\w+\s+#\s.*/)
138
+ end
139
+
140
+ Then /^task 'rake (.*)' is executed successfully$/ do |task|
141
+ @stdout.should_not be_nil
142
+ actual_output = File.read(@stdout)
143
+ actual_output.should_not match(/^Don't know how to build task '#{task}'/)
144
+ actual_output.should_not match(/Error/i)
145
+ end
146
+
147
+ Then /^gem spec key '(.*)' contains \/(.*)\/$/ do |key, regex|
148
+ FileUtils.chdir @active_project_folder do
149
+ gem_file = Dir["pkg/*.gem"].first
150
+ gem_spec = Gem::Specification.from_yaml(`gem spec #{gem_file}`)
151
+ spec_value = gem_spec.send(key.to_sym)
152
+ spec_value.to_s.should match(/#{regex}/)
153
+ end
154
+ end
@@ -24,7 +24,7 @@ task :check_version do
24
24
  exit
25
25
  end
26
26
  unless ENV['VERSION'] == $hoe.version
27
- puts "Please update your version.rb to match the release version, currently #{$hoe.version}"
27
+ puts "Please update your lib/#{$hoe.name}.rb to match the release version, currently #{$hoe.version}"
28
28
  exit
29
29
  end
30
30
  end
@@ -31,8 +31,6 @@ class TestInstallCucumberGenerator < Test::Unit::TestCase
31
31
  assert_generated_file("features/steps/env.rb") do |body|
32
32
  assert_match(/#{PROJECT_NAME}/, body)
33
33
  end
34
- assert_directory_exists("tasks")
35
- assert_generated_file("tasks/cucumber.rake")
36
34
  end
37
35
 
38
36
  private
@@ -20,7 +20,6 @@ class TestInstallWebsiteGenerator < Test::Unit::TestCase
20
20
  end
21
21
  assert_generated_file("config/website.yml.sample")
22
22
  assert_generated_file("script/txt2html")
23
- assert_generated_file("tasks/website.rake")
24
23
  end
25
24
 
26
25
  private
@@ -39,8 +39,8 @@ class TestNewgemGenerator < Test::Unit::TestCase
39
39
  assert_manifest_complete
40
40
  end
41
41
 
42
- def test_newgem_with_website_by_default
43
- run_generator('newgem', [APP_ROOT], sources)
42
+ def test_newgem_with_website
43
+ run_generator('newgem', [APP_ROOT], sources, {:enable_website => true})
44
44
 
45
45
  %w[txt2html].each do |file|
46
46
  assert_generated_file("script/#{file}")
@@ -54,7 +54,7 @@ class TestNewgemGenerator < Test::Unit::TestCase
54
54
  end
55
55
 
56
56
  def test_newgem_with_no_website
57
- run_generator('newgem', [APP_ROOT], sources, {:disable_website => true})
57
+ run_generator('newgem', [APP_ROOT], sources)
58
58
 
59
59
  assert !File.exists?("#{APP_ROOT}/script/txt2html"), "No script/txt2html should be generated"
60
60
  assert !File.exists?("#{APP_ROOT}/website"), "No website folder should be generated"
data/website/index.html CHANGED
@@ -39,7 +39,7 @@
39
39
 
40
40
  <div id="version"> <!-- class="clickable" onclick='document.location = "http://rubyforge.org/projects/newgem"; return true' -->
41
41
  <p>Get Version</p>
42
- <a href="http://rubyforge.org/projects/newgem" class="numbers">1.0.3</a>
42
+ <a href="http://rubyforge.org/projects/newgem" class="numbers">1.0.4</a>
43
43
  <p>Featured in</p>
44
44
  <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2FBeginning-Ruby-Novice-Professional-Experts%2Fdp%2F1590597664%2F&tag=drnic-20&linkCode=ur2&camp=1789&creative=9325" class="book"><img src="images/beginning-ruby.jpg" /></a>
45
45
  </div>
@@ -128,7 +128,7 @@ Important
128
128
  <p><span class="caps">NOTE</span>: Currently, the initial <code>index.txt</code> file includes my details not yours. Currently you need to change this manually.</p>
129
129
  <p>If you don&#8217;t want a website, remove the <code>website</code> related files from the Manifest.txt.</p>
130
130
  <h3>Change the gems version number</h3>
131
- <p>The version number is set in the file <code>lib/#gem name#/version.rb</code>. Update it as appropriate with major, minor and bug fix numbers. This value will be used when generating your website, for example.</p>
131
+ <p>The version number is set in the file <code>lib/#gem name#.rb</code>. Update it as appropriate with major, minor and bug fix numbers. This value will be used when generating your website, for example.</p>
132
132
  <h3>Check the manifest</h3>
133
133
  <blockquote>Manifest: a customs document listing the contents put on a ship or plane.</blockquote>
134
134
  <p><cite><a href="http://www.google.com/search?q=define%3Amanifest">Google &#8211; define:manifest</a></cite></p>
@@ -224,7 +224,7 @@ rake install_gem</pre>
224
224
  <h2>Contact</h2>
225
225
  <p>Comments are welcome. Send an email to <a href="mailto:drnicwilliams@gmail.com">Dr Nic Williams</a>.</p>
226
226
  <p class="coda">
227
- <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 28th October 2008<br>
227
+ <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 31st October 2008<br>
228
228
  Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
229
229
  </p>
230
230
  </div>
data/website/index.txt CHANGED
@@ -96,7 +96,7 @@ If you don't want a website, remove the <code>website</code> related files from
96
96
 
97
97
  h3. Change the gems version number
98
98
 
99
- The version number is set in the file <code>lib/#gem name#/version.rb</code>. Update it as appropriate with major, minor and bug fix numbers. This value will be used when generating your website, for example.
99
+ The version number is set in the file <code>lib/#gem name#.rb</code>. Update it as appropriate with major, minor and bug fix numbers. This value will be used when generating your website, for example.
100
100
 
101
101
  h3. Check the manifest
102
102
 
@@ -39,7 +39,7 @@
39
39
 
40
40
  <div id="version"> <!-- class="clickable" onclick='document.location = "http://rubyforge.org/projects/newgem"; return true' -->
41
41
  <p>Get Version</p>
42
- <a href="http://rubyforge.org/projects/newgem" class="numbers">1.0.3</a>
42
+ <a href="http://rubyforge.org/projects/newgem" class="numbers">1.0.4</a>
43
43
  <p>Featured in</p>
44
44
  <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2FBeginning-Ruby-Novice-Professional-Experts%2Fdp%2F1590597664%2F&tag=drnic-20&linkCode=ur2&camp=1789&creative=9325" class="book"><img src="images/beginning-ruby.jpg" /></a>
45
45
  </div>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newgem
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dr Nic Williams
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-10-31 00:00:00 +10:00
12
+ date: 2008-11-01 00:00:00 +10:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -70,7 +70,7 @@ dependencies:
70
70
  requirements:
71
71
  - - ">="
72
72
  - !ruby/object:Gem::Version
73
- version: 0.1.9
73
+ version: 1.1.8
74
74
  version:
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: hoe
@@ -111,6 +111,7 @@ files:
111
111
  - PostInstall.txt
112
112
  - README.rdoc
113
113
  - Rakefile
114
+ - TODO.markdown
114
115
  - app_generators/newgem/newgem_generator.rb
115
116
  - app_generators/newgem/templates/History.txt
116
117
  - app_generators/newgem/templates/PostInstall.txt
@@ -147,6 +148,7 @@ files:
147
148
  - features/newgem_cli.feature
148
149
  - features/rubygem_tasks.feature
149
150
  - features/steps/cli.rb
151
+ - features/steps/common.rb
150
152
  - features/steps/env.rb
151
153
  - features/steps/rubygems.rb
152
154
  - lib/hoe-patched.rb
@@ -158,6 +160,7 @@ files:
158
160
  - newgem_generators/install_website/USAGE
159
161
  - newgem_generators/install_website/install_website_generator.rb
160
162
  - newgem_generators/install_website/templates/config/website.yml.sample.erb
163
+ - newgem_generators/install_website/templates/features/website.feature
161
164
  - newgem_generators/install_website/templates/script/txt2html
162
165
  - newgem_generators/install_website/templates/script/win_script.cmd
163
166
  - newgem_generators/install_website/templates/tasks/website.rake
@@ -179,6 +182,7 @@ files:
179
182
  - rubygems_generators/executable/executable_generator.rb
180
183
  - rubygems_generators/executable/templates/bin/app.rb.erb
181
184
  - rubygems_generators/executable/templates/lib/app/cli.rb.erb
185
+ - rubygems_generators/executable/templates/spec/cli_spec.rb.erb
182
186
  - rubygems_generators/executable/templates/test/test_cli.rb.erb
183
187
  - rubygems_generators/extconf/USAGE
184
188
  - rubygems_generators/extconf/extconf_generator.rb
@@ -190,8 +194,9 @@ files:
190
194
  - rubygems_generators/extconf/templates/tasks/extconf_name.rake
191
195
  - rubygems_generators/extconf/templates/test/test.rb.erb
192
196
  - rubygems_generators/install_cucumber/install_cucumber_generator.rb
193
- - rubygems_generators/install_cucumber/templates/cucumber.rake
194
- - rubygems_generators/install_cucumber/templates/env.rb
197
+ - rubygems_generators/install_cucumber/templates/features/development.feature
198
+ - rubygems_generators/install_cucumber/templates/features/steps/common.rb
199
+ - rubygems_generators/install_cucumber/templates/features/steps/env.rb.erb
195
200
  - rubygems_generators/install_jruby/USAGE
196
201
  - rubygems_generators/install_jruby/install_jruby_generator.rb
197
202
  - rubygems_generators/install_jruby/templates/tasks/jruby.rake
@@ -1,6 +0,0 @@
1
- gem 'cucumber'
2
- require 'cucumber/rake/task'
3
-
4
- Cucumber::Rake::Task.new(:features) do |t|
5
- t.cucumber_opts = "--format pretty"
6
- end