gemsmith 6.1.0 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +44 -27
- data/lib/gemsmith/cli.rb +3 -3
- data/lib/gemsmith/identity.rb +1 -1
- data/lib/gemsmith/templates/%gem_name%/README.md.tt +3 -2
- metadata +3 -25
- checksums.yaml.gz.sig +0 -3
- data.tar.gz.sig +0 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78f200738db26103b3c22eb26ebbe8fee20a87ff
|
4
|
+
data.tar.gz: 526f1f4e024c68ec73c621fd7417836e6bc7f52c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e9470682da74ef0758b4c2e7069e795c3604357b1f876211e1797a32735a5fb6846d09fe1be0384f71c94251357c3d7cdeaf59489c263c714dcdb6fdede4286
|
7
|
+
data.tar.gz: 980c3b30a186b60011ba34b0adb5b05bdb850dd6ab725fe8b11851c8cdc3ac01f1bc1b843a1303f0f5eed444571409af18156021b54dec9a7b4ebe3eb99ae89f
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
[](https://codeclimate.com/github/bkuhlmann/gemsmith)
|
5
5
|
[](https://codeclimate.com/github/bkuhlmann/gemsmith)
|
6
6
|
[](https://gemnasium.com/bkuhlmann/gemsmith)
|
7
|
-
[](
|
7
|
+
[](https://travis-ci.org/bkuhlmann/gemsmith)
|
8
8
|
[](https://www.patreon.com/bkuhlmann)
|
9
9
|
|
10
10
|
A command line interface for smithing new Ruby gems.
|
@@ -37,8 +37,10 @@ A command line interface for smithing new Ruby gems.
|
|
37
37
|
# Features
|
38
38
|
|
39
39
|
- Builds a gem skeleton with enhanced Bundler functionality.
|
40
|
-
-
|
41
|
-
-
|
40
|
+
- Uses [Milestoner](https://github.com/bkuhlmann/milestoner) for consistent project/gem versioning.
|
41
|
+
- Uses [Tocer](https://github.com/bkuhlmann/tocer) for README table of contents generation.
|
42
|
+
- Uses common settings and a structured layout for building new gems.
|
43
|
+
- Supports [Thor](https://github.com/erikhuda/thor).
|
42
44
|
- Supports [Ruby on Rails](http://rubyonrails.org).
|
43
45
|
- Supports [Pry](http://pryrepl.org).
|
44
46
|
- Supports [Guard](https://github.com/guard/guard).
|
@@ -46,21 +48,21 @@ A command line interface for smithing new Ruby gems.
|
|
46
48
|
- Supports [Rubocop](https://github.com/bbatsov/rubocop).
|
47
49
|
- Supports [Code Climate](https://codeclimate.com).
|
48
50
|
- Supports [Gemnasium](https://gemnasium.com).
|
49
|
-
- Supports [Travis CI](
|
51
|
+
- Supports [Travis CI](https://travis-ci.org).
|
50
52
|
- Supports [Patreon](https://www.patreon.com).
|
51
|
-
- Provides the ability to open the source code of any gem within your favorite editor.
|
52
|
-
- Provides the ability to read the documentation of any gem within your default browser.
|
53
53
|
- Adds commonly needed [README](README.md), [CHANGELOG](CHANGELOG.md), [CONTRIBUTING](CONTRIBUTING.md),
|
54
54
|
[CODE OF CONDUCT](CODE_OF_CONDUCT.md), [LICENSE](LICENSE.md), etc. documentation.
|
55
|
+
- Provides the ability to open the source code of any gem within your favorite editor.
|
56
|
+
- Provides the ability to read the documentation of any gem within your default browser.
|
55
57
|
|
56
58
|
[](https://asciinema.org/a/30728)
|
57
59
|
|
58
60
|
# Requirements
|
59
61
|
|
60
62
|
0. A UNIX-based system
|
61
|
-
0. [MRI 2.x.x](
|
62
|
-
0. [RubyGems](
|
63
|
-
0. [Bundler](https://github.com/
|
63
|
+
0. [MRI 2.x.x](https://www.ruby-lang.org)
|
64
|
+
0. [RubyGems](https://rubygems.org)
|
65
|
+
0. [Bundler](https://github.com/bundler/bundler)
|
64
66
|
|
65
67
|
# Setup
|
66
68
|
|
@@ -133,12 +135,12 @@ necessary.
|
|
133
135
|
|
134
136
|
From the command line, type: `gemsmith --help`
|
135
137
|
|
136
|
-
gemsmith -c, [create=CREATE] # Create new gem.
|
137
|
-
gemsmith -e, [--edit]
|
138
|
-
gemsmith -h, [--help=HELP]
|
139
|
-
gemsmith -o, [open=OPEN] # Open a gem in default editor.
|
140
|
-
gemsmith -r, [read=READ] # Open a gem in default browser.
|
141
|
-
gemsmith -v, [--version]
|
138
|
+
gemsmith -c, [--create=CREATE] # Create new gem.
|
139
|
+
gemsmith -e, [--edit] # Edit Gemsmith settings in default editor.
|
140
|
+
gemsmith -h, [--help=HELP] # Show this message or get help for a command.
|
141
|
+
gemsmith -o, [--open=OPEN] # Open a gem in default editor.
|
142
|
+
gemsmith -r, [--read=READ] # Open a gem in default browser.
|
143
|
+
gemsmith -v, [--version] # Show Gemsmith version.
|
142
144
|
|
143
145
|
For more gem creation options, type: `gemsmith --help --create`
|
144
146
|
|
@@ -165,7 +167,7 @@ For more gem creation options, type: `gemsmith --help --create`
|
|
165
167
|
|
166
168
|
## Rake
|
167
169
|
|
168
|
-
Once a gem skeleton has been created, the following tasks are available
|
170
|
+
Once a gem skeleton has been created, the following tasks are available (i.e. `bundle exec rake -T`):
|
169
171
|
|
170
172
|
rake build # Build gemsmith-6.0.0.gem into the pkg directory
|
171
173
|
rake clean # Clean gem artifacts
|
@@ -178,7 +180,27 @@ Once a gem skeleton has been created, the following tasks are available within t
|
|
178
180
|
rake rubocop:auto_correct # Auto-correct RuboCop offenses
|
179
181
|
rake spec # Run RSpec code examples
|
180
182
|
|
181
|
-
|
183
|
+
Out of all Rake tasks listed above, the following are provided by [Bundler](http://bundler.io) and enhanced by
|
184
|
+
Gemsmith:
|
185
|
+
|
186
|
+
rake build - Cleans and regenerates the README table of contents in addition to building the gem.
|
187
|
+
rake install - Inherits the `build` modifications mentioned above.
|
188
|
+
rake install:local - Inherits the `build` modifications mentioned above.
|
189
|
+
rake release - Inherits the `build` modifications mentioned above.
|
190
|
+
|
191
|
+
When building/testing your gem locally, a typical workflow is:
|
192
|
+
|
193
|
+
0. `gem uninstall <your gem name>`
|
194
|
+
0. `bundle exec rake install`
|
195
|
+
0. Test your gem locally.
|
196
|
+
0. Repeat until satisfied.
|
197
|
+
|
198
|
+
When satified with your gem, builds are green, and ready to publish, run:
|
199
|
+
|
200
|
+
bundle exec rake publish
|
201
|
+
|
202
|
+
Alternatively, you can run `bundle exec rake release` if you don't wish to sign your gem releases (i.e default Bundler
|
203
|
+
behavior) but the added security that `publish` provides is strongly recommended.
|
182
204
|
|
183
205
|
## Upgrades
|
184
206
|
|
@@ -186,13 +208,13 @@ For those upgrading from Gemsmith 5.6.0 please be aware of the following changes
|
|
186
208
|
|
187
209
|
- Move your `~/.gemsmith/settings.yml` settings to the new `~/.gemsmithrc` file. Refer to the Setup documentation
|
188
210
|
mentioned above for details.
|
189
|
-
- The `--cli/-c` create option has
|
211
|
+
- The `--cli/-c` create option has replaced the `--bin/-b` create option.
|
190
212
|
- The `--code-climate` create option shortcut is now `-C` instead of `-c`.
|
191
213
|
- [Tocer](https://github.com/bkuhlmann/tocer) has replaced [DocToc](https://github.com/thlorenz/doctoc) as a pure Ruby
|
192
214
|
implementation for generating README table of contents and removing the dependency on NPM.
|
193
215
|
- The `rake readme:toc` task has been replaced with `rake doc`.
|
194
|
-
- Using Rake to build or publish a gem will fail if uncommitted Git changes are detected
|
195
|
-
from publishing a gem
|
216
|
+
- Using Rake to build, release, or publish a gem will fail if uncommitted Git changes are detected which prevent you
|
217
|
+
from publishing a gem prematurely.
|
196
218
|
|
197
219
|
# Tests
|
198
220
|
|
@@ -228,8 +250,7 @@ Add your key to your global Git configuration in the `[user]` section. Example:
|
|
228
250
|
signingkey = <your GPG key>
|
229
251
|
|
230
252
|
Now, when publishing your gems with Gemsmith (i.e. `bundle exec rake publish`), signing of your Git tag will happen
|
231
|
-
automatically.
|
232
|
-
`bundle exec rake publish` except the Git tag is not signed.
|
253
|
+
automatically.
|
233
254
|
|
234
255
|
## Gem Certificates
|
235
256
|
|
@@ -244,7 +265,7 @@ The resulting `*.pem` key files can be referenced via the `:private_key:` and `:
|
|
244
265
|
|
245
266
|
To learn more about gem certificates, read the following:
|
246
267
|
|
247
|
-
- [
|
268
|
+
- [RubyGems](http://guides.rubygems.org/security/#building_gems)
|
248
269
|
- [A Practical Guide to Using Signed Ruby Gems - Part 1: Bundler](http://blog.meldium.com/home/2013/3/3/signed-rubygems-part)
|
249
270
|
- [A Practical Guide to Using Signed Ruby Gems - Part 2: Heroku](http://blog.meldium.com/home/2013/3/6/signed-gems-on-heroku)
|
250
271
|
|
@@ -253,11 +274,7 @@ To learn more about gem certificates, read the following:
|
|
253
274
|
Once your gem is released, you might want to let the world know about your awesomeness. Here are several resources:
|
254
275
|
|
255
276
|
- [How to Spread the Word About Your Code](https://hacks.mozilla.org/2013/05/how-to-spread-the-word-about-your-code)
|
256
|
-
- [Ruby Green News](http://greenruby.org)
|
257
|
-
- [Ruby Toolbox](https://www.ruby-toolbox.com)
|
258
277
|
- [RubyFlow](http://www.rubyflow.com)
|
259
|
-
- [The Ruby Show](http://rubyshow.com)
|
260
|
-
- [Ruby 5](https://ruby5.codeschool.com)
|
261
278
|
|
262
279
|
# Versioning
|
263
280
|
|
data/lib/gemsmith/cli.rb
CHANGED
@@ -61,7 +61,7 @@ module Gemsmith
|
|
61
61
|
@spec_aid = Aids::Spec.new
|
62
62
|
end
|
63
63
|
|
64
|
-
desc "-c, [create=CREATE]", "Create new gem."
|
64
|
+
desc "-c, [--create=CREATE]", "Create new gem."
|
65
65
|
map %w(-c --create) => :create
|
66
66
|
method_option :cli, aliases: "-c", desc: "Add CLI support.", type: :boolean, default: false
|
67
67
|
method_option :rails, aliases: "-r", desc: "Add Rails support.", type: :boolean, default: false
|
@@ -85,14 +85,14 @@ module Gemsmith
|
|
85
85
|
say
|
86
86
|
end
|
87
87
|
|
88
|
-
desc "-o, [open=OPEN]", "Open a gem in default editor."
|
88
|
+
desc "-o, [--open=OPEN]", "Open a gem in default editor."
|
89
89
|
map %w(-o --open) => :open
|
90
90
|
def open name
|
91
91
|
result = process_gem name, "open"
|
92
92
|
info("Opening: #{result}") unless result.nil? || result.empty?
|
93
93
|
end
|
94
94
|
|
95
|
-
desc "-r, [read=READ]", "Open a gem in default browser."
|
95
|
+
desc "-r, [--read=READ]", "Open a gem in default browser."
|
96
96
|
map %w(-r --read) => :read
|
97
97
|
def read name
|
98
98
|
result = process_gem name, "read"
|
data/lib/gemsmith/identity.rb
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
[.fetch(:name) %>.svg)](https://gemnasium.com/<%= config.fetch :github_user %>/<%= config.fetch(:gem).fetch(:name) %>)
|
10
10
|
<%- end -%>
|
11
11
|
<%- if config.fetch(:create).fetch(:travis) -%>
|
12
|
-
[.fetch(:name) %>.svg)](
|
12
|
+
[.fetch(:name) %>.svg)](https://travis-ci.org/<%= config.fetch :github_user %>/<%= config.fetch(:gem).fetch(:name) %>)
|
13
13
|
<%- end -%>
|
14
14
|
<%- if config.fetch(:create).fetch(:patreon) -%>
|
15
15
|
[](https://www.patreon.com/<%= config.fetch :github_user %>)
|
@@ -22,6 +22,7 @@
|
|
22
22
|
|
23
23
|
# Requirements
|
24
24
|
|
25
|
+
0. [MRI <%= config.fetch(:versions).fetch(:ruby) %>](https://www.ruby-lang.org)
|
25
26
|
<%- if config.fetch(:create).fetch(:rails) -%>
|
26
27
|
0. [Ruby on Rails](http://rubyonrails.org).
|
27
28
|
<%- end -%>
|
@@ -31,7 +32,7 @@
|
|
31
32
|
<%- if config.fetch(:create).fetch(:security) -%>
|
32
33
|
For a secure install, type the following (recommended):
|
33
34
|
|
34
|
-
gem cert --add <(curl -Ls
|
35
|
+
gem cert --add <(curl -Ls https://www.my-website.com/gem-public.pem)
|
35
36
|
gem install <%= config.fetch(:gem).fetch(:name) %> --trust-policy MediumSecurity
|
36
37
|
|
37
38
|
NOTE: A HighSecurity trust policy would be best but MediumSecurity enables signed gem verification while
|
metadata
CHANGED
@@ -1,36 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemsmith
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brooke Kuhlmann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
-
|
12
|
-
-----BEGIN CERTIFICATE-----
|
13
|
-
MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBBMQ8wDQYDVQQDDAZicm9v
|
14
|
-
a2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQBGRYC
|
15
|
-
aW8wHhcNMTUwNzA1MTQ1MzExWhcNMTYwNzA0MTQ1MzExWjBBMQ8wDQYDVQQDDAZi
|
16
|
-
cm9va2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQB
|
17
|
-
GRYCaW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzhOVcvLGBCceM
|
18
|
-
PppVpJLUKsnskWzc1VqBXmv30feKNw+MOxMQaDsIP421qwqGO/2JHY60Kuobssk+
|
19
|
-
8/wqZkVFF/FFKxoQjuhlhc+VWLm8jWgXd4N1kwO2yytscQTzxc5qXarwA+36fqVH
|
20
|
-
RhBAHhjka+HdBI+6o3CXRHJoC47iav+QpR7u/wYl3gNq6MJO3MmTKqHegEDLjRN0
|
21
|
-
FJAr3bRAwq03ZtTuAVA2bdKLGThehe1RRRtJHJ/PHpmL2c203/GTXYtG6C8ILZIp
|
22
|
-
ZroTqQ8yglCJ+3hSOmodZqSAQ0Rj7GJgtuNH81qlSrHu5sTvoZjGmEqSIhvsSJ80
|
23
|
-
wKoPdZnFAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
|
24
|
-
BBSUnF478a5lB4xuOBiktJdMJv6JmDAfBgNVHREEGDAWgRRicm9va2VAYWxjaGVt
|
25
|
-
aXN0cy5pbzAfBgNVHRIEGDAWgRRicm9va2VAYWxjaGVtaXN0cy5pbzANBgkqhkiG
|
26
|
-
9w0BAQUFAAOCAQEAT7KtBXWsq1KA7NOSMeFEDeSvhrgdLwCG/37pIu0rjvx9iAW4
|
27
|
-
gncxV0MccqIUtaF+lekjlXkIO+rXAVjvdha23KtpFTW90dYXp4NLPnPlSdyvYzJy
|
28
|
-
FIAaWGvujOT8xEu4umd45q5aepE8li4bR071i5Z7F0trKNVYYrxjQFmH5SSKYRT/
|
29
|
-
fXtICtAh1de3z3SOSK58IMPwjuoApYBxiqlmx0Uhla7mrzCE5+NmLPit3hLH6JFK
|
30
|
-
aSif+qBc6oHD7EQWPF5cZkzkIURuwNwPBngZGxIKaMAgRhjGFXzUMAaq++r59cS9
|
31
|
-
xTfQ4k6fglKEgpnLAXiKdo2c8Ym+X4rIKFfedQ==
|
32
|
-
-----END CERTIFICATE-----
|
33
|
-
date: 2015-11-28 00:00:00.000000000 Z
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-12-03 00:00:00.000000000 Z
|
34
12
|
dependencies:
|
35
13
|
- !ruby/object:Gem::Dependency
|
36
14
|
name: thor
|
checksums.yaml.gz.sig
DELETED
data.tar.gz.sig
DELETED
metadata.gz.sig
DELETED
Binary file
|