gemsmith 2.4.0 → 3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fdd006f550a4e31a4ad659194efbbc64dfbae75f
4
- data.tar.gz: 11738811bb63aec5ac10e81d7bd6c7284a6d439c
3
+ metadata.gz: 84a491143e9618a2c16fe353a1f10289e4c7a3b1
4
+ data.tar.gz: 4b780c701602dcff1ff14657beb8745c1790e28d
5
5
  SHA512:
6
- metadata.gz: e203671e5e4ce164bb32497fbb0d03675d5885906145ce092419fda66e7a06719e7eacb4b8b9fc8bc032ba08613ba2d9e997bcac8b55db393d251c2289d0b53c
7
- data.tar.gz: 03fd924777d7102e15461a87c5a415d428163d38be510bd02b57218ef6e31610a1516266384344d4e9897243fef16beacabcb421922db26102b1f312e6749ef5
6
+ metadata.gz: 6ca5bc323bb417612a1ff81b37340a2897a12de76343122208902f7cff99d555dcdd8bee57c5c53c49a77aad476b5856d074a4ee8567247df9f9bc6dca0a52a5
7
+ data.tar.gz: e8d4c75dbfe4cb4a84e1189fff4101c150affd13ba47560f58c158d582f334d4b8fccf75b1023340cc37514ed07edb53ae88e95852107e9d2182521cda516155
Binary file
data.tar.gz.sig CHANGED
Binary file
data/README.md CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/gemsmith.png)](http://badge.fury.io/rb/gemsmith)
4
4
  [![Code Climate GPA](https://codeclimate.com/github/bkuhlmann/gemsmith.png)](https://codeclimate.com/github/bkuhlmann/gemsmith)
5
+ [![Gemnasium Status](https://gemnasium.com/bkuhlmann/gemsmith.png)](https://gemnasium.com/bkuhlmann/gemsmith)
5
6
  [![Travis CI Status](https://secure.travis-ci.org/bkuhlmann/gemsmith.png)](http://travis-ci.org/bkuhlmann/gemsmith)
7
+ [![Coverage Status](https://coveralls.io/repos/bkuhlmann/gemsmith/badge.png)](https://coveralls.io/r/bkuhlmann/gemsmith)
6
8
 
7
9
  Gemsmith allows you to easily craft new gems via the command line with custom settings (if desired). If you are
8
10
  a fan of [Bundler](https://github.com/carlhuda/bundler), then you'll appreciate the additional capabilities of this
@@ -12,15 +14,18 @@ gem. Gemsmith is essentially an enhanced version of Bundler's gem building capab
12
14
 
13
15
  * Builds a gem skeleton with Bundler functionality in mind.
14
16
  * Supports common settings that can be applied to new gem creations.
15
- * Supports binary skeletons with [Thor](https://github.com/wycats/thor) command line functionality.
17
+ * Supports [Thor](https://github.com/wycats/thor) command line functionality.
16
18
  * Supports [Ruby on Rails](http://rubyonrails.org).
17
19
  * Supports [RSpec](http://rspec.info).
18
20
  * Supports [Pry](http://pryrepl.org).
19
21
  * Supports [Guard](https://github.com/guard/guard).
20
22
  * Supports [Code Climate](https://codeclimate.com).
21
- * Supports [Travis CI](http://travis-ci.org) skeletons.
22
- * Adds commonly needed README, CHANGELOG, LICENSE, etc. template files.
23
- * Provides the ability to open any installed gem within your favorite editor.
23
+ * Supports [Gemnasium](https://gemnasium.com).
24
+ * Supports [Travis CI](http://travis-ci.org).
25
+ * Supports [Coveralls](https://coveralls.io).
26
+ * Provides the ability to open the source code of any gem within your favorite editor.
27
+ * Provides the ability to read the documentation of any gem within your default browser.
28
+ * Adds commonly needed README, CHANGELOG, CONTRIBUTING, LICENSE, etc. template files.
24
29
 
25
30
  # Requirements
26
31
 
@@ -37,7 +42,7 @@ gem. Gemsmith is essentially an enhanced version of Bundler's gem building capab
37
42
  For a secure install, type the following from the command line (recommended):
38
43
 
39
44
  gem cert --add <(curl -Ls http://www.redalchemist.com/gem-public.pem)
40
- gem install gemsmith -P HighSecurity
45
+ gem install gemsmith --trust-policy HighSecurity
41
46
 
42
47
  ...or, for an insecure install, type the following (not recommended):
43
48
 
@@ -58,6 +63,8 @@ You can configure common settings for future gem builds by creating the followin
58
63
  If no options are configured, then the defaults are as follows:
59
64
 
60
65
  gem_platform: Gem::Platform::RUBY
66
+ gem_private_key: ~/.ssh/gem-private.pem
67
+ gem_public_key: ~/.ssh/gem-public.pem
61
68
  author_name: <git name>
62
69
  author_email: <git email>
63
70
  author_url: https://www.unknown.com
@@ -68,7 +75,7 @@ If no options are configured, then the defaults are as follows:
68
75
  year: <current year>
69
76
  ruby_version: 2.0.0
70
77
  ruby_patch: p0
71
- rails_version: 3.2.0
78
+ rails_version: 4.0
72
79
 
73
80
  # Usage
74
81
 
@@ -83,18 +90,22 @@ From the command line, type: gemsmith help
83
90
 
84
91
  For more gem creation options, type: gemsmith help create
85
92
 
86
- -b, [--bin] # Add binary support.
87
- -r, [--rails] # Add Rails support.
88
- -p, [--pry] # Add Pry support.
89
- # Default: true
90
- -g, [--guard] # Add Guard support.
91
- # Default: true
92
- -s, [--rspec] # Add RSpec support.
93
- # Default: true
94
- -t, [--travis] # Add Travis CI support.
95
- # Default: true
96
- -c, [--code-climate] # Add Code Climate support.
97
- # Default: true
93
+ -b, [--bin], [--no-bin] # Add binary support.
94
+ -r, [--rails], [--no-rails] # Add Rails support.
95
+ -p, [--pry], [--no-pry] # Add Pry support.
96
+ # Default: true
97
+ -g, [--guard], [--no-guard] # Add Guard support.
98
+ # Default: true
99
+ -s, [--rspec], [--no-rspec] # Add RSpec support.
100
+ # Default: true
101
+ -c, [--code-climate], [--no-code-climate] # Add Code Climate support.
102
+ # Default: true
103
+ -G, [--gemnasium], [--no-gemnasium] # Add Gemnasium support.
104
+ # Default: true
105
+ -t, [--travis], [--no-travis] # Add Travis CI support.
106
+ # Default: true
107
+ -C, [--coveralls], [--no-coveralls] # Add Coveralls support.
108
+ # Default: true
98
109
 
99
110
  Once a gem skeleton has been created, the following tasks are available within the project via Bundler (i.e. rake -T):
100
111
 
@@ -112,12 +123,15 @@ To test, do the following:
112
123
 
113
124
  # Security
114
125
 
115
- To creat a certificate for your gems, run the following:
126
+ To create a certificate for your gems, run the following:
116
127
 
117
128
  cd ~/.ssh
118
129
  gem cert --build you@example.com
119
130
  chmod 600 gem-*.pem
120
131
 
132
+ The resulting *.pem keys can be referenced via the *gem_private_key* and *gem_public_key* settings mentioned in the
133
+ Setup documentation.
134
+
121
135
  To learn more about gem certificates, read the following:
122
136
 
123
137
  * [Ruby Gems](http://guides.rubygems.org/security/#building_gems)
@@ -40,8 +40,10 @@ module Gemsmith
40
40
  method_option :pry, aliases: "-p", desc: "Add Pry support.", type: :boolean, default: true
41
41
  method_option :guard, aliases: "-g", desc: "Add Guard support.", type: :boolean, default: true
42
42
  method_option :rspec, aliases: "-s", desc: "Add RSpec support.", type: :boolean, default: true
43
- method_option :travis, aliases: "-t", desc: "Add Travis CI support.", type: :boolean, default: true
44
43
  method_option :code_climate, aliases: "-c", desc: "Add Code Climate support.", type: :boolean, default: true
44
+ method_option :gemnasium, aliases: "-G", desc: "Add Gemnasium support.", type: :boolean, default: true
45
+ method_option :travis, aliases: "-t", desc: "Add Travis CI support.", type: :boolean, default: true
46
+ method_option :coveralls, aliases: "-C", desc: "Add Coveralls support.", type: :boolean, default: true
45
47
  def create name
46
48
  say
47
49
  info "Creating gem..."
@@ -18,6 +18,8 @@ module Gemsmith
18
18
  gem_class: gem_class,
19
19
  gem_platform: gem_platform,
20
20
  gem_url: gem_url,
21
+ gem_private_key: gem_private_key,
22
+ gem_public_key: gem_public_key,
21
23
  author_name: author_name,
22
24
  author_email: author_email,
23
25
  author_url: author_url,
@@ -34,8 +36,10 @@ module Gemsmith
34
36
  pry: default_boolean(:pry, true),
35
37
  guard: default_boolean(:guard, true),
36
38
  rspec: default_boolean(:rspec, true),
39
+ code_climate: default_boolean(:code_climate, true),
40
+ gemnasium: default_boolean(:gemnasium, true),
37
41
  travis: default_boolean(:travis, true),
38
- code_climate: default_boolean(:code_climate, true)
42
+ coveralls: default_boolean(:coveralls, true)
39
43
  }
40
44
  end
41
45
 
@@ -47,6 +51,14 @@ module Gemsmith
47
51
  @settings[:gem_url] || author_url
48
52
  end
49
53
 
54
+ def gem_private_key
55
+ @settings.fetch :gem_private_key, "~/.ssh/gem-private.pem"
56
+ end
57
+
58
+ def gem_public_key
59
+ @settings.fetch :gem_public_key, "~/.ssh/gem-public.pem"
60
+ end
61
+
50
62
  def author_name
51
63
  @settings[:author_name] || Gemsmith::Kit.git_config_value("user.name") || "TODO: Add full name here."
52
64
  end
@@ -84,7 +96,7 @@ module Gemsmith
84
96
  end
85
97
 
86
98
  def rails_version
87
- @settings[:rails_version] || "3.0"
99
+ @settings[:rails_version] || "4.0"
88
100
  end
89
101
 
90
102
  def default_boolean key, value = false
@@ -1,62 +1,82 @@
1
1
  $:.push File.expand_path("../lib", __FILE__)
2
2
  require "<%=config[:gem_name]%>/version"
3
3
 
4
+ def add_security_key specification, method, files
5
+ file = files.is_a?(Array) ? files.first : files
6
+ if File.exists? file
7
+ specification.send "#{method}=", files
8
+ else
9
+ puts "WARNING: Security key not found for #{specification.name} gem specification: #{file}"
10
+ end
11
+ end
12
+
4
13
  Gem::Specification.new do |s|
5
- s.name = "<%= config[:gem_name] %>"
6
- s.version = <%= config[:gem_class] %>::VERSION
7
- s.platform = <%= config[:gem_platform] %>
8
- s.author = "<%= config[:author_name] %>"
9
- s.email = "<%= config[:author_email] %>"
10
- s.homepage = "<%= config[:gem_url] %>"
11
- s.summary = "TODO: Add gem summary here."
12
- s.description = "TODO: Add gem description here."
13
- s.license = "MIT"
14
+ s.name = "<%= config[:gem_name] %>"
15
+ s.version = <%= config[:gem_class] %>::VERSION
16
+ s.platform = <%= config[:gem_platform] %>
17
+ s.author = "<%= config[:author_name] %>"
18
+ s.email = "<%= config[:author_email] %>"
19
+ s.homepage = "<%= config[:gem_url] %>"
20
+ s.summary = "TODO: Add gem summary here."
21
+ s.description = "TODO: Add gem description here."
22
+ s.license = "MIT"
14
23
  <%- if config[:post_install_message] -%>
15
- s.post_install_message = "<%= config[:post_install_message] %>"
16
- <%- end -%>
24
+ s.post_install_message = "<%= config[:post_install_message] %>"
25
+ <%- end -%>
17
26
 
18
- unless ENV["TRAVIS"]
19
- s.signing_key = File.expand_path("~/.ssh/gem-private.pem")
20
- s.cert_chain = [File.expand_path("~/.ssh/gem-public.pem")]
27
+ add_security_key s, "signing_key", File.expand_path("<%= config[:gem_private_key] %>")
28
+ add_security_key s, "cert_chain", [File.expand_path("<%= config[:gem_public_key] %>")]
29
+
30
+ <%- if config[:pry] -%>
31
+ case Gem.ruby_engine
32
+ when "ruby"
33
+ s.add_development_dependency "pry-byebug"
34
+ s.add_development_dependency "pry-stack_explorer"
35
+ when "jruby"
36
+ s.add_development_dependency "pry-nav"
37
+ when "rbx"
38
+ s.add_development_dependency "pry-nav"
39
+ s.add_development_dependency "pry-stack_explorer"
40
+ else
41
+ raise RuntimeError.new("Unsupported Ruby Engine!")
21
42
  end
43
+ <%- end -%>
22
44
 
23
- s.required_ruby_version = "~> <%= config[:ruby_version] %>"
45
+ s.required_ruby_version = "~> <%= config[:ruby_version] %>"
24
46
  <%- if config[:bin] -%>
25
- s.add_dependency "thor"
26
- s.add_dependency "thor_plus"
27
- <%- end -%>
47
+ s.add_dependency "thor"
48
+ s.add_dependency "thor_plus"
49
+ <%- end -%>
28
50
  <%- if config[:rails] -%>
29
- s.add_dependency "rails", "~> <%= config[:rails_version] %>"
30
- <%- end -%>
51
+ s.add_dependency "rails", "~> <%= config[:rails_version] %>"
52
+ <%- end -%>
31
53
  <%- if config[:travis] -%>
32
54
  s.add_development_dependency "rake"
33
- <%- end -%>
55
+ <%- end -%>
34
56
  <%- if config[:pry] -%>
35
57
  s.add_development_dependency "pry"
36
- s.add_development_dependency "pry-byebug"
37
58
  s.add_development_dependency "pry-remote"
38
59
  s.add_development_dependency "pry-rescue"
39
- s.add_development_dependency "pry-stack_explorer"
40
- s.add_development_dependency "pry-vterm_aliases"
41
- s.add_development_dependency "pry-git"
42
- s.add_development_dependency "pry-doc"
43
60
  <%- end -%>
44
61
  <%- if config[:rspec] -%>
45
62
  <%- rspec_gem = config[:rails] ? "rspec-rails" : "rspec" -%>
46
63
  s.add_development_dependency "<%= rspec_gem %>"
47
- <%- end -%>
64
+ <%- end -%>
48
65
  <%- if config[:bin] -%>
49
66
  s.add_development_dependency "aruba"
50
67
  <%- end -%>
51
68
  <%- if config[:guard] -%>
52
69
  s.add_development_dependency "rb-fsevent" # Guard file events for OSX.
53
70
  s.add_development_dependency "guard-rspec"
54
- <%- end -%>
71
+ <%- end -%>
72
+ <%- if config[:coveralls] -%>
73
+ s.add_development_dependency "coveralls"
74
+ <%- end -%>
55
75
 
56
- s.files = Dir["lib/**/*", "vendor/**/*"]
76
+ s.files = Dir["lib/**/*", "vendor/**/*"]
57
77
  s.extra_rdoc_files = Dir["README*", "LICENSE*"]
58
78
  <%- if config[:bin] -%>
59
- s.executables << "<%= config[:gem_name] %>"
60
- <%- end -%>
61
- s.require_paths = ["lib"]
79
+ s.executables << "<%= config[:gem_name] %>"
80
+ <%- end -%>
81
+ s.require_paths = ["lib"]
62
82
  end
@@ -4,9 +4,15 @@
4
4
  <%- if config[:code_climate] -%>
5
5
  [![Code Climate GPA](https://codeclimate.com/github/<%= config[:github_user] %>/<%= config[:gem_name] %>.png)](https://codeclimate.com/github/<%= config[:github_user] %>/<%= config[:gem_name] %>)
6
6
  <%- end -%>
7
+ <%- if config[:gemnasium] -%>
8
+ [![Gemnasium Status](https://gemnasium.com/<%= config[:github_user] %>/<%= config[:gem_name] %>.png)](https://gemnasium.com/<%= config[:github_user] %>/<%= config[:gem_name] %>)
9
+ <%- end -%>
7
10
  <%- if config[:travis] -%>
8
11
  [![Travis CI Status](https://secure.travis-ci.org/<%= config[:github_user] %>/<%= config[:gem_name] %>.png)](http://travis-ci.org/<%= config[:github_user] %>/<%= config[:gem_name] %>)
9
12
  <%- end -%>
13
+ <%- if config[:coveralls] -%>
14
+ [![Coveralls Status](https://coveralls.io/repos/<%= config[:github_user] %>/<%= config[:gem_name] %>/badge.png)](https://coveralls.io/r/<%= config[:github_user] %>/<%= config[:gem_name] %>)
15
+ <%- end -%>
10
16
 
11
17
  # Features
12
18
 
@@ -18,7 +24,12 @@
18
24
 
19
25
  # Setup
20
26
 
21
- Type the following from the command line to install:
27
+ For a secure install, type the following from the command line (recommended):
28
+
29
+ gem cert --add <(curl -Ls http://www.my-website.com/gem-public.pem)
30
+ gem install <%= config[:gem_name] %> --trust-policy HighSecurity
31
+
32
+ ...or, for an insecure install, type the following (not recommended):
22
33
 
23
34
  gem install <%= config[:gem_name] %>
24
35
 
@@ -2,13 +2,28 @@ require "bundler/setup"
2
2
  require "<%= config[:gem_name] %>"
3
3
  <%- if config[:pry] -%>
4
4
  require "pry"
5
- require "pry-byebug"
6
5
  require "pry-remote"
7
6
  require "pry-rescue"
8
- require "pry-stack_explorer"
9
- require "pry-vterm_aliases"
10
- require "pry-git"
11
- require "pry-doc"
7
+ <%- end -%>
8
+ <%- if config[:coveralls] -%>
9
+ require "coveralls"
10
+ <%- end -%>
11
+
12
+ <%- if config[:pry] -%>
13
+ case Gem.ruby_engine
14
+ when "ruby"
15
+ require "pry-byebug"
16
+ require "pry-stack_explorer"
17
+ when "jruby"
18
+ require "pry-nav"
19
+ when "rbx"
20
+ require "pry-nav"
21
+ require "pry-stack_explorer"
22
+ end
23
+ <%- end -%>
24
+
25
+ <%- if config[:coveralls] -%>
26
+ Coveralls.wear!
12
27
  <%- end -%>
13
28
 
14
29
  RSpec.configure do |config|
@@ -1,3 +1,3 @@
1
1
  module Gemsmith
2
- VERSION = "2.4.0"
2
+ VERSION = "3.0.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gemsmith
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -30,7 +30,7 @@ cert_chain:
30
30
  SJpzzzZ8gO6BKn4fhd+ENNQ333Qy3nuNk07TVIaNnlgeHhowUDuD9T7Z8Lka0pt3
31
31
  4PteiTppsf0SSVAM9zSO5IuFngXMRwWgvjOfXE70f43RDuUVTCSyylc=
32
32
  -----END CERTIFICATE-----
33
- date: 2014-02-16 00:00:00.000000000 Z
33
+ date: 2014-03-25 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: pry-byebug
@@ -145,7 +145,7 @@ dependencies:
145
145
  - !ruby/object:Gem::Version
146
146
  version: '0'
147
147
  - !ruby/object:Gem::Dependency
148
- name: pry-vterm_aliases
148
+ name: rspec
149
149
  requirement: !ruby/object:Gem::Requirement
150
150
  requirements:
151
151
  - - ">="
@@ -159,7 +159,7 @@ dependencies:
159
159
  - !ruby/object:Gem::Version
160
160
  version: '0'
161
161
  - !ruby/object:Gem::Dependency
162
- name: rspec
162
+ name: rb-fsevent
163
163
  requirement: !ruby/object:Gem::Requirement
164
164
  requirements:
165
165
  - - ">="
@@ -173,7 +173,7 @@ dependencies:
173
173
  - !ruby/object:Gem::Version
174
174
  version: '0'
175
175
  - !ruby/object:Gem::Dependency
176
- name: rb-fsevent
176
+ name: guard-rspec
177
177
  requirement: !ruby/object:Gem::Requirement
178
178
  requirements:
179
179
  - - ">="
@@ -187,7 +187,7 @@ dependencies:
187
187
  - !ruby/object:Gem::Version
188
188
  version: '0'
189
189
  - !ruby/object:Gem::Dependency
190
- name: guard-rspec
190
+ name: coveralls
191
191
  requirement: !ruby/object:Gem::Requirement
192
192
  requirements:
193
193
  - - ">="
metadata.gz.sig CHANGED
Binary file