newgem 0.29.0 → 1.0.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 +15 -1
- data/Manifest.txt +7 -22
- data/README.rdoc +55 -33
- data/Rakefile +22 -7
- data/app_generators/newgem/newgem_generator.rb +23 -23
- data/app_generators/newgem/templates/Rakefile +27 -3
- data/app_generators/newgem/templates/lib/module.rb +1 -1
- data/bin/newgem +12 -2
- data/config/website.yml +2 -0
- data/features/development.feature +22 -0
- data/features/executable_generator.feature +6 -6
- data/features/expected_outputs/newgem.out +2 -9
- data/features/install_cucumber.feature +11 -0
- data/features/install_website.feature +13 -0
- data/features/newgem_cli.feature +60 -0
- data/features/steps/cli.rb +125 -36
- data/features/steps/env.rb +4 -2
- data/lib/newgem/support/tasks.rb +10 -0
- data/lib/newgem/tasks.rb +1 -0
- data/lib/newgem.rb +5 -5
- data/newgem_generators/install_website/install_website_generator.rb +12 -9
- data/newgem_generators/install_website/templates/config/website.yml.sample.erb +2 -0
- data/newgem_generators/install_website/templates/script/txt2html +5 -16
- data/newgem_generators/install_website/templates/tasks/website.rake +34 -4
- data/rubygems_generators/executable/templates/test/test_cli.rb.erb +1 -1
- data/script/txt2html +5 -16
- data/tasks/deployment.rake +5 -6
- data/tasks/website.rake +34 -6
- data/test/test_install_website_generator.rb +1 -0
- data/test/test_newgem_generator.rb +0 -10
- data/website/index.html +27 -22
- data/website/index.txt +30 -19
- data/website/rubyforge.html +2 -2
- data/website/version.js +0 -4
- metadata +35 -67
- data/Todo.txt +0 -4
- data/app_generators/newgem/templates/config/hoe.rb +0 -82
- data/app_generators/newgem/templates/config/requirements.rb +0 -15
- data/app_generators/newgem/templates/lib/version.rb +0 -10
- data/app_generators/newgem/templates/setup.rb +0 -1585
- data/app_generators/newgem/templates/tasks/deployment.rake +0 -34
- data/app_generators/newgem/templates/tasks/environment.rake +0 -7
- data/app_generators/newgem/templates/tasks/website.rake +0 -9
- data/config/hoe.rb +0 -62
- data/features/cli.feature +0 -28
- data/features/steps/executable_generator.rb +0 -0
- data/lib/newgem/version.rb +0 -9
- data/rubygems_generators/install_rspec_stories/USAGE +0 -5
- data/rubygems_generators/install_rspec_stories/install_rspec_stories_generator.rb +0 -54
- data/rubygems_generators/install_rspec_stories/templates/all.rb +0 -8
- data/rubygems_generators/install_rspec_stories/templates/steps.rb +0 -13
- data/rubygems_generators/install_rspec_stories/templates/story.story +0 -9
- data/script/txt2html.rb +0 -70
- data/script/txt2js +0 -59
- data/setup.rb +0 -1585
- data/tasks/generator_report.rake +0 -19
- data/test/test_install_rspec_stories_generator.rb +0 -45
data/History.txt
CHANGED
@@ -1,4 +1,18 @@
|
|
1
|
-
== 0.
|
1
|
+
== 1.0.0 2008-10-21
|
2
|
+
|
3
|
+
* Yay for 1.0.0 of New Gem Generator!
|
4
|
+
* massive overhaul of Hoe definition and rake tasks
|
5
|
+
* config/hoe.rb is gone, a more condensed version is back in Rakefile
|
6
|
+
* config/dependencies.rb is gone, this functionality is now supported by RubyGems 1.2's dev dependency mechanism
|
7
|
+
* generated gems no longer have generated tasks; rather they reuse those in newgem itself
|
8
|
+
* to override a task, use the help method +remove_task+
|
9
|
+
* Hoe declaration is more concise and reuses the available defaults by Hoe
|
10
|
+
* No more wacky CONSTANTS in hoe declaration; reusing $hoe to access these values
|
11
|
+
* no more version.rb; the VERSION constant is in lib/+gemname+.rb
|
12
|
+
* install_website: uses a config/website.yml for username/host/remote_dir (defaults to rubyforge)
|
13
|
+
* Removed install_rspec_stories which was superseded by install_cucumber
|
14
|
+
|
15
|
+
== 0.29.0 2008-10-18
|
2
16
|
|
3
17
|
* execute generator uses a lib/appname/cli.rb file
|
4
18
|
* basic feature descriptions for newgem and executable generators
|
data/Manifest.txt
CHANGED
@@ -3,23 +3,15 @@ Manifest.txt
|
|
3
3
|
PostInstall.txt
|
4
4
|
README.rdoc
|
5
5
|
Rakefile
|
6
|
-
Todo.txt
|
7
6
|
app_generators/newgem/newgem_generator.rb
|
8
7
|
app_generators/newgem/templates/History.txt
|
9
8
|
app_generators/newgem/templates/PostInstall.txt
|
10
9
|
app_generators/newgem/templates/README.rdoc
|
11
10
|
app_generators/newgem/templates/Rakefile
|
12
|
-
app_generators/newgem/templates/config/hoe.rb
|
13
|
-
app_generators/newgem/templates/config/requirements.rb
|
14
11
|
app_generators/newgem/templates/lib/module.rb
|
15
|
-
app_generators/newgem/templates/lib/version.rb
|
16
12
|
app_generators/newgem/templates/readme
|
17
13
|
app_generators/newgem/templates/script/console.erb
|
18
14
|
app_generators/newgem/templates/script/win_script.cmd
|
19
|
-
app_generators/newgem/templates/setup.rb
|
20
|
-
app_generators/newgem/templates/tasks/deployment.rake
|
21
|
-
app_generators/newgem/templates/tasks/environment.rake
|
22
|
-
app_generators/newgem/templates/tasks/website.rake
|
23
15
|
app_generators/newgem_simple/USAGE
|
24
16
|
app_generators/newgem_simple/newgem_simple_generator.rb
|
25
17
|
app_generators/newgem_simple/templates/LICENSE
|
@@ -34,24 +26,27 @@ bundles/RubyGem.tmbundle/Snippets/History header trunk.tmSnippet
|
|
34
26
|
bundles/RubyGem.tmbundle/Snippets/History header.tmSnippet
|
35
27
|
bundles/RubyGem.tmbundle/Syntaxes/Rdoc.tmLanguage
|
36
28
|
bundles/RubyGem.tmbundle/info.plist
|
37
|
-
config/
|
29
|
+
config/website.yml
|
38
30
|
cucumber_generators/feature/USAGE
|
39
31
|
cucumber_generators/feature/feature_generator.rb
|
40
32
|
cucumber_generators/feature/templates/feature.erb
|
41
33
|
cucumber_generators/feature/templates/steps.erb
|
42
|
-
features/
|
34
|
+
features/development.feature
|
43
35
|
features/executable_generator.feature
|
44
36
|
features/expected_outputs/newgem.out
|
37
|
+
features/install_cucumber.feature
|
38
|
+
features/install_website.feature
|
39
|
+
features/newgem_cli.feature
|
45
40
|
features/steps/cli.rb
|
46
41
|
features/steps/env.rb
|
47
|
-
features/steps/executable_generator.rb
|
48
42
|
lib/newgem.rb
|
49
43
|
lib/newgem/quick_template.rb
|
50
44
|
lib/newgem/rubyforge.rb
|
45
|
+
lib/newgem/support/tasks.rb
|
51
46
|
lib/newgem/tasks.rb
|
52
|
-
lib/newgem/version.rb
|
53
47
|
newgem_generators/install_website/USAGE
|
54
48
|
newgem_generators/install_website/install_website_generator.rb
|
49
|
+
newgem_generators/install_website/templates/config/website.yml.sample.erb
|
55
50
|
newgem_generators/install_website/templates/script/txt2html
|
56
51
|
newgem_generators/install_website/templates/script/win_script.cmd
|
57
52
|
newgem_generators/install_website/templates/tasks/website.rake
|
@@ -94,11 +89,6 @@ rubygems_generators/install_rspec/templates/spec.rb
|
|
94
89
|
rubygems_generators/install_rspec/templates/spec/spec.opts
|
95
90
|
rubygems_generators/install_rspec/templates/spec/spec_helper.rb
|
96
91
|
rubygems_generators/install_rspec/templates/tasks/rspec.rake
|
97
|
-
rubygems_generators/install_rspec_stories/USAGE
|
98
|
-
rubygems_generators/install_rspec_stories/install_rspec_stories_generator.rb
|
99
|
-
rubygems_generators/install_rspec_stories/templates/all.rb
|
100
|
-
rubygems_generators/install_rspec_stories/templates/steps.rb
|
101
|
-
rubygems_generators/install_rspec_stories/templates/story.story
|
102
92
|
rubygems_generators/install_test_unit/USAGE
|
103
93
|
rubygems_generators/install_test_unit/install_test_unit_generator.rb
|
104
94
|
rubygems_generators/install_test_unit/templates/test/test.rb
|
@@ -106,14 +96,10 @@ rubygems_generators/install_test_unit/templates/test/test_helper.rb
|
|
106
96
|
script/destroy
|
107
97
|
script/generate
|
108
98
|
script/txt2html
|
109
|
-
script/txt2html.rb
|
110
|
-
script/txt2js
|
111
|
-
setup.rb
|
112
99
|
tasks/bundles.rake
|
113
100
|
tasks/cucumber.rake
|
114
101
|
tasks/deployment.rake
|
115
102
|
tasks/environment.rake
|
116
|
-
tasks/generator_report.rake
|
117
103
|
tasks/website.rake
|
118
104
|
test/fixtures/home/.rubyforge/auto-config.yml
|
119
105
|
test/fixtures/home/.rubyforge/user-config.yml
|
@@ -125,7 +111,6 @@ test/test_helper.rb
|
|
125
111
|
test/test_install_cucumber_generator.rb
|
126
112
|
test/test_install_jruby_generator.rb
|
127
113
|
test/test_install_rspec_generator.rb
|
128
|
-
test/test_install_rspec_stories_generator.rb
|
129
114
|
test/test_install_test_unit_generator.rb
|
130
115
|
test/test_install_website_generator.rb
|
131
116
|
test/test_newgem_generator.rb
|
data/README.rdoc
CHANGED
@@ -14,38 +14,59 @@ Within this gem, you get one thing - <code>newgem</code> - an executable to crea
|
|
14
14
|
|
15
15
|
Go to the folder where you want to create your new gem folder structure, and run the <code>newgem</code> command to generate your gem scaffolding.
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
17
|
+
cd ~/ruby_projects
|
18
|
+
$ newgem wizzo
|
19
|
+
create
|
20
|
+
create config
|
21
|
+
create doc
|
22
|
+
create lib
|
23
|
+
create script
|
24
|
+
create tasks
|
25
|
+
create lib/wizzo
|
26
|
+
create History.txt
|
27
|
+
create Rakefile
|
28
|
+
create README.rdoc
|
29
|
+
create PostInstall.txt
|
30
|
+
create lib/wizzo.rb
|
31
|
+
create lib/wizzo/version.rb
|
32
|
+
create config/hoe.rb
|
33
|
+
create config/requirements.rb
|
34
|
+
create tasks/deployment.rake
|
35
|
+
create tasks/environment.rake
|
36
|
+
create tasks/website.rake
|
37
|
+
dependency install_test_unit
|
38
|
+
create test
|
39
|
+
create test/test_helper.rb
|
40
|
+
create test/test_wizzo.rb
|
41
|
+
dependency install_website
|
42
|
+
create website/javascripts
|
43
|
+
create website/stylesheets
|
44
|
+
exists script
|
45
|
+
exists tasks
|
46
|
+
create website/index.txt
|
47
|
+
create website/index.html
|
48
|
+
create script/txt2html
|
49
|
+
force tasks/website.rake
|
50
|
+
dependency plain_theme
|
51
|
+
exists website/javascripts
|
52
|
+
exists website/stylesheets
|
53
|
+
create website/template.html.erb
|
54
|
+
create website/stylesheets/screen.css
|
55
|
+
create website/javascripts/rounded_corners_lite.inc.js
|
56
|
+
dependency install_rubigen_scripts
|
57
|
+
exists script
|
58
|
+
create script/generate
|
59
|
+
create script/destroy
|
60
|
+
create script/console
|
61
|
+
create Manifest.txt
|
62
|
+
readme readme
|
63
|
+
Important
|
64
|
+
=========
|
65
|
+
|
66
|
+
* Open config/hoe.rb
|
67
|
+
* Update missing details (gem description, dependent gems, etc.)
|
68
|
+
|
69
|
+
You can generate test::unit or rspec test stubs via the -T, --test-with options (shoulda coming soon)
|
49
70
|
|
50
71
|
== SYNOPSIS:
|
51
72
|
|
@@ -60,12 +81,13 @@ Now modify the constants at the top of *config/hoe.rb*, with your name, email an
|
|
60
81
|
|
61
82
|
The <code>newgem</code> application is distributed itself as a RubyGem and is available immediately after installation.
|
62
83
|
|
63
|
-
|
84
|
+
sudo gem install newgem
|
64
85
|
|
65
86
|
Alternately, download the gem and install manually.
|
66
87
|
|
67
88
|
== TUTORIALS:
|
68
89
|
|
90
|
+
* Home page is a full tutorial - http://newgem.rubyforge.org
|
69
91
|
* Original blog article and tutorial - http://drnicwilliams.com/2006/10/11/generating-new-gems/
|
70
92
|
* Tutorial: Publishing RubyGems with Hoe - http://nubyonrails.com/articles/2007/06/15/tutorial-publishing-rubygems-with-hoe by Geoffrey Grosenbach
|
71
93
|
* Using New Gem Generator in Windows - http://codeconversations.blogspot.com/2007/07/using-new-gem-generator-in-windows_8009.html by Jorge Cangas
|
data/Rakefile
CHANGED
@@ -1,10 +1,25 @@
|
|
1
|
-
require
|
2
|
-
require '
|
3
|
-
|
4
|
-
|
5
|
-
|
1
|
+
%w[rubygems rake rake/clean fileutils hoe rubigen].each { |f| require f }
|
2
|
+
require File.dirname(__FILE__) + '/lib/newgem'
|
3
|
+
|
4
|
+
# Generate all the Rake tasks
|
5
|
+
# Run 'rake -T' to see list of generated tasks (from gem root directory)
|
6
|
+
$hoe = Hoe.new('newgem', Newgem::VERSION) do |p|
|
7
|
+
p.developer('Dr Nic Williams', 'drnicwilliams@gmail.com')
|
8
|
+
p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
|
9
|
+
p.post_install_message = 'PostInstall.txt'
|
10
|
+
p.extra_deps = [
|
11
|
+
['activesupport','>= 2.0.2'],
|
12
|
+
['rubigen',">= #{RubiGen::VERSION}"],
|
13
|
+
['hoe', ">= #{Hoe::VERSION}"],
|
14
|
+
['RedCloth','>= 4.0.0'], # for website generation
|
15
|
+
['syntax','>= 1.0.0']
|
16
|
+
]
|
17
|
+
p.spec_extras['rdoc_options'] = ['--main', Dir['README*'].first] # hopefully fixed in future hoe > 1.8
|
18
|
+
p.clean_globs |= %w[**/.DS_Store tmp *.log]
|
19
|
+
path = (p.rubyforge_name == p.name) ? p.rubyforge_name : "\#{p.rubyforge_name}/\#{p.name}"
|
20
|
+
p.remote_rdoc_dir = File.join(path.gsub(/^#{p.rubyforge_name}\/?/,''), 'rdoc')
|
21
|
+
p.rsync_args = '-av --delete --ignore-errors'
|
22
|
+
end
|
6
23
|
|
7
|
-
$:.unshift 'lib'
|
8
|
-
require 'config/hoe' # setup Hoe + all gem configuration
|
9
24
|
require 'newgem/tasks' # load /tasks/*.rake
|
10
25
|
|
@@ -31,7 +31,7 @@ class NewgemGenerator < RubiGen::Base
|
|
31
31
|
usage if args.empty?
|
32
32
|
@destination_root = File.expand_path(args.shift)
|
33
33
|
@gem_name = base_name
|
34
|
-
@module_name = gem_name.camelize
|
34
|
+
@module_name = gem_name.gsub('-','_').camelize
|
35
35
|
@project_name = @gem_name
|
36
36
|
extract_options
|
37
37
|
end
|
@@ -50,17 +50,9 @@ class NewgemGenerator < RubiGen::Base
|
|
50
50
|
|
51
51
|
# Root
|
52
52
|
m.template_copy_each %w( History.txt Rakefile README.rdoc PostInstall.txt )
|
53
|
-
m.file_copy_each %w( setup.rb )
|
54
53
|
|
55
54
|
# Default module for app
|
56
55
|
m.template "lib/module.rb", "lib/#{gem_name}.rb"
|
57
|
-
m.template "lib/version.rb", "lib/#{gem_name}/version.rb"
|
58
|
-
|
59
|
-
# Config
|
60
|
-
m.template_copy_each %w( hoe.rb requirements.rb ), "config"
|
61
|
-
|
62
|
-
# Tasks
|
63
|
-
m.file_copy_each %w( deployment.rake environment.rake website.rake ), "tasks"
|
64
56
|
|
65
57
|
# Selecting a test framework
|
66
58
|
case test_framework
|
@@ -74,14 +66,18 @@ class NewgemGenerator < RubiGen::Base
|
|
74
66
|
m.dependency "install_website", [gem_name],
|
75
67
|
:author => author, :email => email, :destination => destination_root, :collision => :force unless disable_website
|
76
68
|
|
77
|
-
|
78
|
-
|
69
|
+
# JRuby
|
70
|
+
m.dependency "install_jruby", [gem_name], :destination => destination_root, :collision => :force if is_jruby
|
79
71
|
|
80
72
|
# Executables
|
81
73
|
for bin_name in bin_names_list
|
82
74
|
m.dependency "executable", [bin_name], :destination => destination_root, :collision => :force
|
83
75
|
end
|
84
|
-
|
76
|
+
|
77
|
+
for generator in @install_generators
|
78
|
+
m.dependency "install_#{generator}", [], :destination => destination_root, :collision => :force
|
79
|
+
end
|
80
|
+
|
85
81
|
m.dependency "install_rubigen_scripts", [destination_root, "rubygems", "newgem", "newgem_theme"], :shebang => options[:shebang], :collision => :force
|
86
82
|
|
87
83
|
%w( console ).each do |file|
|
@@ -115,10 +111,15 @@ EOS
|
|
115
111
|
opts.on("-e", "--email=PATH", String,
|
116
112
|
"Your email to be inserted into generated files.",
|
117
113
|
"Default: ~/.rubyforge/user-config.yml[email]") { |x| options[:email] = x }
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
114
|
+
opts.on("-i", "--install=generator", String,
|
115
|
+
"Installs a generator called install_<generator>.",
|
116
|
+
"For example, '-i cucumber' runs the install_cucumber generator.",
|
117
|
+
"Can be used multiple times for different generators.",
|
118
|
+
"Cannot be used for generators that require argumnts.",
|
119
|
+
"Default: none") do |generator|
|
120
|
+
options[:install] ||= []
|
121
|
+
options[:install] << generator
|
122
|
+
end
|
122
123
|
opts.on("-j", "--jruby",
|
123
124
|
"Use if gem is for jruby.") { |x| options[:jruby] = x }
|
124
125
|
opts.on("-a", "--author=PATH", String,
|
@@ -154,18 +155,17 @@ EOS
|
|
154
155
|
@author ||= rubyforge_config.full_name
|
155
156
|
@email ||= rubyforge_config.email
|
156
157
|
end
|
157
|
-
@bin_names_list
|
158
|
-
@disable_website
|
159
|
-
|
160
|
-
@
|
161
|
-
@
|
162
|
-
@
|
158
|
+
@bin_names_list = (options[:bin_name] || "").split(',')
|
159
|
+
@disable_website = options[:disable_website]
|
160
|
+
@test_framework = options[:test_framework] || "test_unit"
|
161
|
+
@is_jruby = options[:jruby]
|
162
|
+
@project_name = options[:project] if options.include?(:project)
|
163
|
+
@install_generators = options[:install] || []
|
163
164
|
end
|
164
165
|
|
165
166
|
# Installation skeleton. Intermediate directories are automatically
|
166
167
|
# created so don't sweat their absence here.
|
167
168
|
BASEDIRS = %w(
|
168
|
-
config
|
169
169
|
doc
|
170
170
|
lib
|
171
171
|
script
|
@@ -1,4 +1,28 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
%w[rubygems rake rake/clean fileutils hoe newgem rubigen].each { |f| require f }
|
2
|
+
require File.dirname(__FILE__) + '/lib/<%= gem_name %>'
|
3
|
+
|
4
|
+
# Generate all the Rake tasks
|
5
|
+
# Run 'rake -T' to see list of generated tasks (from gem root directory)
|
6
|
+
$hoe = Hoe.new('<%= gem_name %>', <%= module_name %>::VERSION) do |p|
|
7
|
+
p.developer('<%= author %>', '<%= email %>')
|
8
|
+
p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
|
9
|
+
p.post_install_message = 'PostInstall.txt' # TODO remove if post-install message not required
|
10
|
+
p.rubyforge_name = p.name # TODO this is default value
|
11
|
+
# p.extra_deps = [
|
12
|
+
# ['activesupport','>= 2.0.2'],
|
13
|
+
# ]
|
14
|
+
p.extra_dev_deps = [
|
15
|
+
['newgem', ">= #{::Newgem::VERSION}"]
|
16
|
+
]
|
17
|
+
<% if is_jruby -%>
|
18
|
+
p.spec_extras['platform'] = 'jruby' # JRuby gem created, e.g. <%= gem_name %>-X.Y.Z-jruby.gem
|
19
|
+
<% end -%>
|
20
|
+
p.spec_extras['rdoc_options'] = ['--main', Dir['README*'].first] # hopefully fixed in future hoe > 1.8
|
21
|
+
p.clean_globs |= %w[**/.DS_Store tmp *.log]
|
22
|
+
path = (p.rubyforge_name == p.name) ? p.rubyforge_name : "\#{p.rubyforge_name}/\#{p.name}"
|
23
|
+
p.remote_rdoc_dir = File.join(path.gsub(/^#{p.rubyforge_name}\/?/,''), 'rdoc')
|
24
|
+
p.rsync_args = '-av --delete --ignore-errors'
|
25
|
+
end
|
26
|
+
|
27
|
+
require 'newgem/tasks' # load /tasks/*.rake
|
3
28
|
|
4
|
-
Dir['tasks/**/*.rake'].each { |rake| load rake }
|
data/bin/newgem
CHANGED
@@ -5,12 +5,22 @@ require 'rubigen'
|
|
5
5
|
|
6
6
|
if %w(-v --version).include? ARGV.first
|
7
7
|
require 'newgem/version'
|
8
|
-
puts "#{File.basename($0)} #{Newgem::VERSION
|
8
|
+
puts "#{File.basename($0)} #{Newgem::VERSION}"
|
9
9
|
exit(0)
|
10
10
|
end
|
11
11
|
|
12
12
|
require 'rubigen/scripts/generate'
|
13
|
-
|
13
|
+
|
14
|
+
require "pp"
|
15
|
+
RubiGen::Base.use_application_sources! :rubygems
|
16
|
+
RubiGen::Base.prepend_sources(*[
|
17
|
+
RubiGen::PathSource.new(:app, File.join(File.dirname(__FILE__), "..", "app_generators")),
|
18
|
+
RubiGen::PathSource.new(:app, File.join(File.dirname(__FILE__), "..", "newgem_generators")),
|
19
|
+
RubiGen::PathSource.new(:app, File.join(File.dirname(__FILE__), "..", "newgem_theme_generators")),
|
20
|
+
RubiGen::PathSource.new(:app, File.join(File.dirname(__FILE__), "..", "rubygems_generators"))
|
21
|
+
])
|
22
|
+
#
|
23
|
+
# pp RubiGen::Base.sources
|
14
24
|
|
15
25
|
if ARGV.delete "--simple"
|
16
26
|
RubiGen::Scripts::Generate.new.run(ARGV, :generator => 'newgem_simple')
|
data/config/website.yml
ADDED
@@ -0,0 +1,22 @@
|
|
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: 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
|
+
#
|
16
|
+
Scenario: Generate RubyGem
|
17
|
+
Given this project is active project folder
|
18
|
+
And 'pkg' folder is deleted
|
19
|
+
When task 'rake gem' is invoked
|
20
|
+
Then folder 'pkg' is created
|
21
|
+
And file matching 'pkg/newgem-*.gem' is created
|
22
|
+
And gem spec key 'rdoc_options' contains /--mainREADME.rdoc/
|
@@ -7,22 +7,22 @@ Feature: Generate an executable/CLI scaffold
|
|
7
7
|
Scenario: Run executable generator with name of executable
|
8
8
|
Given an existing newgem scaffold [called 'my_project']
|
9
9
|
When 'executable' generator is invoked with arguments 'my_app'
|
10
|
-
Then folder '
|
11
|
-
And file '
|
12
|
-
And file '
|
13
|
-
And file '
|
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
14
|
|
15
15
|
Scenario: Run CLI app from executable generator to show help
|
16
16
|
Given an existing newgem scaffold [called 'my_project']
|
17
17
|
Given 'executable' generator is invoked with arguments 'my_app'
|
18
|
-
When run executable '
|
18
|
+
When run executable 'bin/my_app' with arguments '-h'
|
19
19
|
Then help options '-h' and '--help' are displayed
|
20
20
|
Then help options '-p' and '--path' are displayed
|
21
21
|
|
22
22
|
Scenario: Run CLI app from executable generator should not fail
|
23
23
|
Given an existing newgem scaffold [called 'my_project']
|
24
24
|
Given 'executable' generator is invoked with arguments 'my_app'
|
25
|
-
When run executable '
|
25
|
+
When run executable 'bin/my_app' with arguments ''
|
26
26
|
Then output matches /lib\/my_app\/cli.rb/
|
27
27
|
|
28
28
|
Scenario: Run unit tests after executable generator should all pass
|
@@ -1,5 +1,4 @@
|
|
1
1
|
create
|
2
|
-
create config
|
3
2
|
create doc
|
4
3
|
create lib
|
5
4
|
create script
|
@@ -9,14 +8,7 @@
|
|
9
8
|
create Rakefile
|
10
9
|
create README.rdoc
|
11
10
|
create PostInstall.txt
|
12
|
-
create setup.rb
|
13
11
|
create lib/my_project.rb
|
14
|
-
create lib/my_project/version.rb
|
15
|
-
create config/hoe.rb
|
16
|
-
create config/requirements.rb
|
17
|
-
create tasks/deployment.rake
|
18
|
-
create tasks/environment.rake
|
19
|
-
create tasks/website.rake
|
20
12
|
dependency install_test_unit
|
21
13
|
create test
|
22
14
|
create test/test_helper.rb
|
@@ -24,12 +16,13 @@
|
|
24
16
|
dependency install_website
|
25
17
|
create website/javascripts
|
26
18
|
create website/stylesheets
|
19
|
+
create config
|
27
20
|
exists script
|
28
21
|
exists tasks
|
29
22
|
create website/index.txt
|
30
23
|
create website/index.html
|
24
|
+
create config/website.yml.sample
|
31
25
|
create script/txt2html
|
32
|
-
force tasks/website.rake
|
33
26
|
dependency plain_theme
|
34
27
|
exists website/javascripts
|
35
28
|
exists website/stylesheets
|
@@ -0,0 +1,11 @@
|
|
1
|
+
Feature: RubyGems have features to be described and tested
|
2
|
+
|
3
|
+
As a RubyGem developer
|
4
|
+
I want to describe the project's features using Cucumber
|
5
|
+
So that I can describe each feature of the project in readable text
|
6
|
+
|
7
|
+
Scenario: Install Cucumber into a RubyGem
|
8
|
+
Given an existing newgem scaffold [called 'my_project']
|
9
|
+
When 'install_cucumber' generator is invoked with arguments ''
|
10
|
+
Then folder 'features/steps' is created
|
11
|
+
And file 'tasks/cucumber.rake' is created
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Feature: RubyGems can have a website to promote and teach
|
2
|
+
|
3
|
+
As a RubyGem developer
|
4
|
+
I want rake tasks to help development and deployment of a website for the project
|
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 an existing newgem scaffold [called 'my_project']
|
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
|
@@ -0,0 +1,60 @@
|
|
1
|
+
Feature: Can run create RubyGem scaffolds
|
2
|
+
|
3
|
+
As a developer of RubyGems
|
4
|
+
I want to create RubyGem scaffolds
|
5
|
+
So that I can rapidly produce specs and code for encapsulated applications and libraries
|
6
|
+
|
7
|
+
Scenario: Run newgem without any arguments
|
8
|
+
Given a safe folder
|
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 not invoke generator 'install_rspec'
|
14
|
+
And does not invoke generator 'install_shoulda'
|
15
|
+
And does not invoke generator 'install_cucumber'
|
16
|
+
And does invoke generator 'install_website'
|
17
|
+
And does invoke generator 'install_rubigen_scripts'
|
18
|
+
And file 'config/website.yml.sample' is created
|
19
|
+
And yaml file 'config/website.yml.sample' contains {"host" => "unknown@rubyforge.org", "remote_dir" => "/var/www/gforge-projects/my_project"}
|
20
|
+
And output same as contents of 'newgem.out'
|
21
|
+
And Rakefile can display tasks successfully
|
22
|
+
|
23
|
+
Scenario: Run newgem with project name containing hypens
|
24
|
+
Given a safe folder
|
25
|
+
Given env variable $RUBYFORGE_USERNAME set to ''
|
26
|
+
When newgem is executed for project 'my-project' with no options
|
27
|
+
Then Rakefile can display tasks successfully
|
28
|
+
|
29
|
+
Scenario: Run newgem without any arguments, with env $RUBYFORGE_USERNAME set
|
30
|
+
Given a safe folder
|
31
|
+
Given env variable $RUBYFORGE_USERNAME set to 'nicwilliams'
|
32
|
+
When newgem is executed for project 'my_project' with no options
|
33
|
+
Then file 'config/website.yml.sample' is created
|
34
|
+
And yaml file 'config/website.yml.sample' contains {"host" => "nicwilliams@rubyforge.org", "remote_dir" => "/var/www/gforge-projects/my_project"}
|
35
|
+
And Rakefile can display tasks successfully
|
36
|
+
|
37
|
+
Scenario: Run newgem to include rspec
|
38
|
+
Given a safe folder
|
39
|
+
When newgem is executed for project 'my_rspec_project' with options '-T rspec'
|
40
|
+
Then does invoke generator 'install_rspec'
|
41
|
+
And does not invoke generator 'install_test_unit'
|
42
|
+
And does not invoke generator 'install_shoulda'
|
43
|
+
And does not invoke generator 'install_cucumber'
|
44
|
+
And Rakefile can display tasks successfully
|
45
|
+
|
46
|
+
Scenario: Run newgem to disable website
|
47
|
+
Given a safe folder
|
48
|
+
When newgem is executed for project 'my_project' with options '-W'
|
49
|
+
Then does not invoke generator 'install_website'
|
50
|
+
And file 'config/website.yml' is not created
|
51
|
+
And Rakefile can display tasks successfully
|
52
|
+
|
53
|
+
Scenario: Run newgem to install misc generators on top of unit test framework
|
54
|
+
Given a safe folder
|
55
|
+
When newgem is executed for project 'my_project' with options '-i cucumber'
|
56
|
+
Then does invoke generator 'install_test_unit'
|
57
|
+
And does invoke generator 'install_cucumber'
|
58
|
+
And does not invoke generator 'install_rspec'
|
59
|
+
And Rakefile can display tasks successfully
|
60
|
+
|