newgem 0.17.1 → 0.18.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +4 -0
- data/README.txt +33 -137
- data/app_generators/newgem/templates/README.txt +48 -1
- data/lib/newgem/version.rb +2 -2
- data/website/index.html +8 -3
- data/website/index.txt +5 -1
- data/website/rubyforge.html +2 -2
- data/website/version-raw.js +1 -1
- data/website/version.js +1 -1
- metadata +3 -3
data/History.txt
CHANGED
data/README.txt
CHANGED
@@ -1,24 +1,16 @@
|
|
1
|
-
|
1
|
+
= New Gem Generator
|
2
2
|
|
3
|
-
|
3
|
+
* http://newgem.rubyforge.org
|
4
4
|
|
5
|
-
|
5
|
+
== DESCRIPTION:
|
6
6
|
|
7
7
|
Quickly bundle any Ruby libraries into a RubyGem and share it with the world, your colleagues, or perhaps just with yourself amongst your projects.
|
8
8
|
|
9
9
|
RubyGems are centrally stored, versioned, and support dependencies between other gems, so they are the ultimate way to bundle libraries, executables, associated tests, examples, and more.
|
10
10
|
|
11
11
|
Within this gem, you get one thing - <code>newgem</code> - an executable to create your own gems. Your new gems will include designated folders for Ruby code, test files, executables, and even a default website page for you to explain your project, and which instantly uploads to RubyForge website (which looks just like this one by default)
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
The <code>newgem</code> application is distributed itself as a RubyGem and is available immediately after installation.
|
16
|
-
|
17
|
-
<pre syntax="ruby">sudo gem install newgem</pre>
|
18
|
-
|
19
|
-
Alternately, download the gem and install manually.
|
20
|
-
|
21
|
-
h2. The basics
|
12
|
+
|
13
|
+
== BASIC USAGE:
|
22
14
|
|
23
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.
|
24
16
|
|
@@ -55,140 +47,44 @@ NOW - update wizzo/Rakefile with gem description, etc
|
|
55
47
|
|
56
48
|
As of 0.10.0 - you can generate test::unit or rspec test stubs via the -t, --test-with options
|
57
49
|
|
58
|
-
|
59
|
-
|
60
|
-
Now modify the constants at the top of *Rakefile*, with your name, email and the location where you'll host your website for the gem. The defaults are tied to RubyForge for uploading the gems and the website (see below).
|
61
|
-
|
62
|
-
h3. Create code and tests
|
63
|
-
|
64
|
-
Then create your libraries (files in <code>lib</code>) and your tests (files in <code>test</code> that look like <code>test_TESTNAME.rb</code>). John Grey III did a nice video on test-driven design, that's worth watching if TDD is new to you.
|
65
|
-
|
66
|
-
If you create any new files, you need to manually add them to the Manifest.txt. Alphabetical order is optional, but it will make the results of <code>rake check_manifest</code> look clean if you keep them ordered. If a file is not in the Manifest.txt it will not be included in the gem when you package and release it.
|
67
|
-
|
68
|
-
h3. Executables
|
69
|
-
|
70
|
-
You can include executable Ruby applications in your gem, which will be accessible on Windows and Unix/Linux/MacOS, by creating scripts in the <code>bin</code> folder. When the gem is deployed by users, these executables will be automatically placed within their path.
|
71
|
-
|
72
|
-
h3. Website
|
73
|
-
|
74
|
-
The final step before releasing your gem to the world is the all-important website. Edit the file <code>website/index.txt</code> using Textile/Redcloth syntax. Syntax highlighting is also supported (see below). If you need more website pages, create more *txt* files in the website folder.
|
75
|
-
|
76
|
-
Run the rake task <code>rake website_generate</code> to convert all your website txt files into html files.
|
77
|
-
|
78
|
-
NOTE: Currently, the initial <code>index.txt</code> file includes my details not yours. Currently you need to change this manually.
|
79
|
-
|
80
|
-
If you don't want a website, remove the <code>website</code> related files from the Manifest.txt.
|
81
|
-
|
82
|
-
h3. Change the gems version number
|
83
|
-
|
84
|
-
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.
|
85
|
-
|
86
|
-
h3. Check the manifest
|
87
|
-
|
88
|
-
<blockquote>Manifest: a customs document listing the contents put on a ship or plane.</blockquote>
|
89
|
-
<cite>"Google - define:manifest":http://www.google.com/search?q=define%3Amanifest</cite>
|
90
|
-
|
91
|
-
Similarly here, a manifest is the log of the files to be packaged into a gem. If its not in the <code>Manifest.txt</code> file, the users won't get it.
|
92
|
-
|
93
|
-
Before you package your gem, you can compared the list of files in your gem folder, with the Manifest.txt:
|
94
|
-
|
95
|
-
<pre>rake check_manifest</pre>
|
96
|
-
|
97
|
-
The results show a _diff_ of the two.
|
98
|
-
|
99
|
-
h2. Package and test locally
|
100
|
-
|
101
|
-
Before releasing a new version of a gem, it is a great idea to install the gem locally and do some sanity checks. You know, to limit the chance of you looking like a noob.
|
102
|
-
|
103
|
-
<pre>rake local_deploy</pre>
|
104
|
-
|
105
|
-
This generates the website html files into your website folder, and locally installs the gem, ready for testing and local use.
|
50
|
+
== SYNOPSIS:
|
106
51
|
|
107
|
-
Now
|
52
|
+
Now modify the constants at the top of *config/hoe.rb*, with your name, email and the location where you'll host your website for the gem. The defaults are tied to RubyForge for uploading the gems and the website.
|
108
53
|
|
109
|
-
|
54
|
+
== REQUIREMENTS:
|
110
55
|
|
111
|
-
|
56
|
+
* hoe
|
57
|
+
* rubyforge
|
112
58
|
|
113
|
-
|
59
|
+
== INSTALL:
|
114
60
|
|
115
|
-
<a
|
116
|
-
|
117
|
-
|
118
|
-
h3. Setup your environment to upload to RubyForge.
|
119
|
-
|
120
|
-
There are several steps you need to perform initially to "setup your environment for uploading gems to RubyForge":rubyforge.html.
|
121
|
-
|
122
|
-
|
123
|
-
h3. Document changes in History.txt
|
124
|
-
|
125
|
-
Between each version of your gem, you probably changed something. You should document this in the <code>History.txt</code> file. For each new release, you need to add two paragraphs that look like this:
|
126
|
-
|
127
|
-
<pre>== 0.5.4 14/4/2007
|
128
|
-
|
129
|
-
* 1 major improvement
|
130
|
-
* 150% more Wizzos
|
131
|
-
* 2 bug fixes
|
132
|
-
* Wizzos are the proper colour
|
133
|
-
* You only get Wizzos when you ask for them
|
134
|
-
</pre>
|
135
|
-
|
136
|
-
The two paragraphs will be automatically picked up by the following release process and documented against the release on RubyForge site. To see an example of the end result, look at the "*Changes* section for hoe 1.2":http://rubyforge.org/frs/shownotes.php?release_id=9695.
|
137
|
-
|
138
|
-
The History.txt notes for your first release have already been started for you.
|
139
|
-
|
140
|
-
|
141
|
-
h3. Release the gem and upload the website and rdocs
|
142
|
-
|
143
|
-
Run <code>rake deploy VERSION=X.Y.Z</code> after you've done all these steps. It does the following:
|
144
|
-
|
145
|
-
# Uploads your website to rubyforge
|
146
|
-
# Uploads your rdocs to rubyforge
|
147
|
-
# Packages and uploads your gem to RubyForge
|
148
|
-
|
149
|
-
It can take an hour or two before new gem releases are available via the gem installer. But when they are ready, everyone will be able to download and install your gem using:
|
150
|
-
|
151
|
-
<pre>sudo gem install #gem_name#</pre>
|
152
|
-
|
153
|
-
If your GEM_NAME and RUBYFORGE_PROJECT name are the same, then:
|
154
|
-
|
155
|
-
* http://RUBYFORGE_PROJECT.rubyforge.org is your website, and
|
156
|
-
* http://RUBYFORGE_PROJECT.rubyforge.org/rdoc is your rdocs
|
157
|
-
|
158
|
-
If they are different, then:
|
159
|
-
|
160
|
-
* http://RUBYFORGE_PROJECT.rubyforge.org/GEM_NAME is your website, and
|
161
|
-
* http://RUBYFORGE_PROJECT.rubyforge.org/GEM_NAME/rdoc is your rdocs
|
162
|
-
|
163
|
-
h2. Bonus tasks thanks to Hoe
|
164
|
-
|
165
|
-
Your gem uses the Hoe gem to provide a dozen or so useful rake tasks for managing your gem, such as <code>release</code>, <code>check_manifest</code> and <code>publish_docs</code>.
|
166
|
-
|
167
|
-
See them all with:
|
168
|
-
|
169
|
-
<pre>rake -T</pre>
|
170
|
-
|
171
|
-
Remember, the Rakefile is yours to extend as you please with more rake tasks, such as the <code>website</code> tasks which are already added.
|
172
|
-
|
173
|
-
For more information about each task, see the "Hoe README":http://seattlerb.rubyforge.org/hoe/
|
174
|
-
|
175
|
-
h2. Related articles
|
176
|
-
|
177
|
-
* "Original blog article and tutorial":http://drnicwilliams.com/2006/10/11/generating-new-gems/
|
61
|
+
The <code>newgem</code> application is distributed itself as a RubyGem and is available immediately after installation.
|
178
62
|
|
179
|
-
|
63
|
+
<pre syntax="ruby">sudo gem install newgem</pre>
|
180
64
|
|
181
|
-
|
182
|
-
other stories and things.
|
65
|
+
Alternately, download the gem and install manually.
|
183
66
|
|
184
|
-
|
67
|
+
== LICENSE:
|
185
68
|
|
186
|
-
|
69
|
+
(The MIT License)
|
187
70
|
|
188
|
-
|
71
|
+
Copyright (c) 2008 FIX
|
189
72
|
|
190
|
-
|
73
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
74
|
+
a copy of this software and associated documentation files (the
|
75
|
+
'Software'), to deal in the Software without restriction, including
|
76
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
77
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
78
|
+
permit persons to whom the Software is furnished to do so, subject to
|
79
|
+
the following conditions:
|
191
80
|
|
192
|
-
|
81
|
+
The above copyright notice and this permission notice shall be
|
82
|
+
included in all copies or substantial portions of the Software.
|
193
83
|
|
194
|
-
|
84
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
85
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
86
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
87
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
88
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
89
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
90
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -1 +1,48 @@
|
|
1
|
-
|
1
|
+
= <%= gem_name %>
|
2
|
+
|
3
|
+
* FIX (url)
|
4
|
+
|
5
|
+
== DESCRIPTION:
|
6
|
+
|
7
|
+
FIX (describe your package)
|
8
|
+
|
9
|
+
== FEATURES/PROBLEMS:
|
10
|
+
|
11
|
+
* FIX (list of features or problems)
|
12
|
+
|
13
|
+
== SYNOPSIS:
|
14
|
+
|
15
|
+
FIX (code sample of usage)
|
16
|
+
|
17
|
+
== REQUIREMENTS:
|
18
|
+
|
19
|
+
* FIX (list of requirements)
|
20
|
+
|
21
|
+
== INSTALL:
|
22
|
+
|
23
|
+
* FIX (sudo gem install, anything else)
|
24
|
+
|
25
|
+
== LICENSE:
|
26
|
+
|
27
|
+
(The MIT License)
|
28
|
+
|
29
|
+
Copyright (c) 2008 FIX
|
30
|
+
|
31
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
32
|
+
a copy of this software and associated documentation files (the
|
33
|
+
'Software'), to deal in the Software without restriction, including
|
34
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
35
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
36
|
+
permit persons to whom the Software is furnished to do so, subject to
|
37
|
+
the following conditions:
|
38
|
+
|
39
|
+
The above copyright notice and this permission notice shall be
|
40
|
+
included in all copies or substantial portions of the Software.
|
41
|
+
|
42
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
43
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
44
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
45
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
46
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
47
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
48
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/lib/newgem/version.rb
CHANGED
data/website/index.html
CHANGED
@@ -33,7 +33,7 @@
|
|
33
33
|
<h1>New Gem Generator</h1>
|
34
34
|
<div id="version"> <!-- class="clickable" onclick='document.location = ""; return true' -->
|
35
35
|
<p>Get Version</p>
|
36
|
-
<a href="" class="numbers">0.
|
36
|
+
<a href="" class="numbers">0.18.0</a>
|
37
37
|
<p>Featured in</p>
|
38
38
|
<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>
|
39
39
|
</div>
|
@@ -322,7 +322,12 @@ other stories and things.</p>
|
|
322
322
|
<p>Read the <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/">8 steps for fixing other people’s code</a> and for section <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups">8b: Submit patch to Google Groups</a>, use the Google Group above.</p>
|
323
323
|
|
324
324
|
|
325
|
-
<p>The
|
325
|
+
<p>The source for this project is available via git. You can <a href="http://github.com/drnic/newgem/tree/master">browse and/or fork the source</a>, or to clone the project locally:</p>
|
326
|
+
|
327
|
+
|
328
|
+
<pre>git clone git://github.com/drnic/newgem.git</pre>
|
329
|
+
|
330
|
+
<p>The original Subversion repository is <code>svn://rubyforge.org/var/svn/newgem/trunk</code> for anonymous access.</p>
|
326
331
|
|
327
332
|
|
328
333
|
<h2>License</h2>
|
@@ -336,7 +341,7 @@ other stories and things.</p>
|
|
336
341
|
|
337
342
|
<p>Comments are welcome. Send an email to <a href="mailto:drnicwilliams@gmail.com">Dr Nic Williams</a>.</p>
|
338
343
|
<p class="coda">
|
339
|
-
<a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>,
|
344
|
+
<a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 4th March 2008<br>
|
340
345
|
Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
|
341
346
|
</p>
|
342
347
|
</div>
|
data/website/index.txt
CHANGED
@@ -214,7 +214,11 @@ h2. How to submit patches
|
|
214
214
|
|
215
215
|
Read the "8 steps for fixing other people's code":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/ and for section "8b: Submit patch to Google Groups":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups, use the Google Group above.
|
216
216
|
|
217
|
-
The
|
217
|
+
The source for this project is available via git. You can "browse and/or fork the source":http://github.com/drnic/newgem/tree/master, or to clone the project locally:
|
218
|
+
|
219
|
+
<pre>git clone git://github.com/drnic/newgem.git</pre>
|
220
|
+
|
221
|
+
The original Subversion repository is <code>svn://rubyforge.org/var/svn/newgem/trunk</code> for anonymous access.
|
218
222
|
|
219
223
|
h2. License
|
220
224
|
|
data/website/rubyforge.html
CHANGED
@@ -33,7 +33,7 @@
|
|
33
33
|
<h1>New Gem Generator</h1>
|
34
34
|
<div id="version"> <!-- class="clickable" onclick='document.location = ""; return true' -->
|
35
35
|
<p>Get Version</p>
|
36
|
-
<a href="" class="numbers">0.
|
36
|
+
<a href="" class="numbers">0.18.0</a>
|
37
37
|
<p>Featured in</p>
|
38
38
|
<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>
|
39
39
|
</div>
|
@@ -263,7 +263,7 @@ OPTIONS
|
|
263
263
|
specify whether release_notes/changes are preformatted
|
264
264
|
</pre>
|
265
265
|
<p class="coda">
|
266
|
-
<a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>,
|
266
|
+
<a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 4th March 2008<br>
|
267
267
|
Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
|
268
268
|
</p>
|
269
269
|
</div>
|
data/website/version-raw.js
CHANGED
data/website/version.js
CHANGED
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: 0.
|
4
|
+
version: 0.18.0
|
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-
|
12
|
+
date: 2008-03-14 00:00:00 +00:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -64,7 +64,7 @@ dependencies:
|
|
64
64
|
requirements:
|
65
65
|
- - ">="
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: 1.5.
|
67
|
+
version: 1.5.1
|
68
68
|
version:
|
69
69
|
description: Make your own gems at home
|
70
70
|
email:
|