gemsmith 10.4.2 → 11.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d1d43845d0048292616f46152c9e923de7d13ff8dbe2415b20041721f63718d1
4
- data.tar.gz: efb6d31b51c8c8d7d41f4410f1d1c2f41a8e9ddbb85170057f54f46f407184f6
3
+ metadata.gz: 31a29c937bfb001a0f3a67e9029f3147ea4cb3df3dc3adc6f5f2e8f8f7c9b946
4
+ data.tar.gz: 7ffc75e5444ca44c5f169e93c0e790a73e29c5042f2f478dfe0f064034968304
5
5
  SHA512:
6
- metadata.gz: fef7f9e2f4b1f6add56365fe9c9f911d34e98f24f21c91ce556365825a42061355b14f09b0fd8dd4234644ea43076d8375b6e56af5f4baeb1609dd727bd8bfea
7
- data.tar.gz: b695758d791336d41cc1882109c098aa3bd79bc19000d3b51ed95977a54a707028e0327b7d4f8e8d8b31d8a8034cdd5ddda25547ef576b17b40a9f71487a4e94
6
+ metadata.gz: af33a2c99f10c9077d98f1ac0e133844ed5e9eaca9015764145e244685beadebe26da36e5b422f58e0dfb63a8f4fccdf8be34df11148b230a22323d0ff1772f5
7
+ data.tar.gz: 36ac766c917bb59e01cdadd91a17289fd1c6e7b48964915b01d1301cee87a05b2826350a2cf9a436628e4b806ccd56a3e69359cff28111395805c73774715603
@@ -1 +1 @@
1
- 27D�_!t���7��G�Ъ�.�j��Os�d1���E��"c��!i -�a�����C��1��� B��_������Ƣ��3g���z��ç���j�y�oo�X?�$Q{��i�:� ��AК�����꤃���L�k8����s������z8q$"���� ���-u�PJ�C.%�ܤ�C��i�>kp�1�� �q��vW7��^����&�ӓ�XE�w�� TmV���i�L��G˰w��b��.
1
+ *�����dKg��8��2��ˋ�OU���h
data.tar.gz.sig CHANGED
Binary file
data/LICENSE.md CHANGED
@@ -1,20 +1,163 @@
1
- Copyright (c) 2011 [Alchemists](https://www.alchemists.io).
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1
+ # Apache License
2
+
3
+ Version 2.0, January 2004
4
+
5
+ http://www.apache.org/licenses
6
+
7
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
8
+
9
+ ## 1. Definitions
10
+
11
+ "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by
12
+ Sections 1 through 9 of this document.
13
+
14
+ "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is
15
+ granting the License.
16
+
17
+ "Legal Entity" shall mean the union of the acting entity and all other entities that control, are
18
+ controlled by, or are under common control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the direction or management of such
20
+ entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this
24
+ License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications, including but not limited to
27
+ software source code, documentation source, and configuration files.
28
+
29
+ "Object" form shall mean any form resulting from mechanical transformation or translation of a
30
+ Source form, including but not limited to compiled object code, generated documentation, and
31
+ conversions to other media types.
32
+
33
+ "Work" shall mean the work of authorship, whether in Source or Object form, made available under the
34
+ License, as indicated by a copyright notice that is included in or attached to the work (an example
35
+ is provided in the Appendix below).
36
+
37
+ "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or
38
+ derived from) the Work and for which the editorial revisions, annotations, elaborations, or other
39
+ modifications represent, as a whole, an original work of authorship. For the purposes of this
40
+ License, Derivative Works shall not include works that remain separable from, or merely link (or
41
+ bind by name) to the interfaces of, the Work and Derivative Works thereof.
42
+
43
+ "Contribution" shall mean any work of authorship, including the original version of the Work and any
44
+ modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted
45
+ to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity
46
+ authorized to submit on behalf of the copyright owner. For the purposes of this definition,
47
+ "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or
48
+ its representatives, including but not limited to communication on electronic mailing lists, source
49
+ code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor
50
+ for the purpose of discussing and improving the Work, but excluding communication that is
51
+ conspicuously marked or otherwise designated in writing by the copyright owner as "Not a
52
+ Contribution."
53
+
54
+ "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a
55
+ Contribution has been received by Licensor and subsequently incorporated within the Work.
56
+
57
+ ## 2. Grant of Copyright License
58
+
59
+ Subject to the terms and conditions of this License, each Contributor hereby grants to You a
60
+ perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to
61
+ reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and
62
+ distribute the Work and such Derivative Works in Source or Object form.
63
+
64
+ ## 3. Grant of Patent License
65
+
66
+ Subject to the terms and conditions of this License, each Contributor hereby grants to You a
67
+ perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this
68
+ section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer
69
+ the Work, where such license applies only to those patent claims licensable by such Contributor that
70
+ are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s)
71
+ with the Work to which such Contribution(s) was submitted. If You institute patent litigation
72
+ against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or
73
+ a Contribution incorporated within the Work constitutes direct or contributory patent infringement,
74
+ then any patent licenses granted to You under this License for that Work shall terminate as of the
75
+ date such litigation is filed.
76
+
77
+ ## 4. Redistribution
78
+
79
+ You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with
80
+ or without modifications, and in Source or Object form, provided that You meet the following
81
+ conditions:
82
+
83
+ 1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
84
+
85
+ 2. You must cause any modified files to carry prominent notices stating that You changed the
86
+ files; and
87
+
88
+ 3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright,
89
+ patent, trademark, and attribution notices from the Source form of the Work, excluding those
90
+ notices that do not pertain to any part of the Derivative Works; and
91
+
92
+ 4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative
93
+ Works that You distribute must include a readable copy of the attribution notices contained
94
+ within such NOTICE file, excluding those notices that do not pertain to any part of the
95
+ Derivative Works, in at least one of the following places: within a NOTICE text file
96
+ distributed as part of the Derivative Works; within the Source form or documentation, if
97
+ provided along with the Derivative Works; or, within a display generated by the Derivative
98
+ Works, if and wherever such third-party notices normally appear. The contents of the NOTICE
99
+ file are for informational purposes only and do not modify the License. You may add Your own
100
+ attribution notices within Derivative Works that You distribute, alongside or as an addendum to
101
+ the NOTICE text from the Work, provided that such additional attribution notices cannot be
102
+ construed as modifying the License.
103
+
104
+ You may add Your own copyright statement to Your modifications and may provide additional or
105
+ different license terms and conditions for use, reproduction, or distribution of Your modifications,
106
+ or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of
107
+ the Work otherwise complies with the conditions stated in this License.
108
+
109
+ ## 5. Submission of Contributions
110
+
111
+ Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the
112
+ Work by You to the Licensor shall be under the terms and conditions of this License, without any
113
+ additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify
114
+ the terms of any separate license agreement you may have executed with Licensor regarding such
115
+ Contributions.
116
+
117
+ ## 6. Trademarks
118
+
119
+ This License does not grant permission to use the trade names, trademarks, service marks, or product
120
+ names of the Licensor, except as required for reasonable and customary use in describing the origin
121
+ of the Work and reproducing the content of the NOTICE file.
122
+
123
+ ## 7. Disclaimer of Warranty
124
+
125
+ Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each
126
+ Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
127
+ KIND, either express or implied, including, without limitation, any warranties or conditions of
128
+ TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely
129
+ responsible for determining the appropriateness of using or redistributing the Work and assume any
130
+ risks associated with Your exercise of permissions under this License.
131
+
132
+ ## 8. Limitation of Liability
133
+
134
+ In no event and under no legal theory, whether in tort (including negligence), contract, or
135
+ otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or
136
+ agreed to in writing, shall any Contributor be liable to You for damages, including any direct,
137
+ indirect, special, incidental, or consequential damages of any character arising as a result of this
138
+ License or out of the use or inability to use the Work (including but not limited to damages for
139
+ loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial
140
+ damages or losses), even if such Contributor has been advised of the possibility of such damages.
141
+
142
+ ## 9. Accepting Warranty or Additional Liability
143
+
144
+ While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee
145
+ for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights
146
+ consistent with this License. However, in accepting such obligations, You may act only on Your own
147
+ behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You
148
+ agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or
149
+ claims asserted against, such Contributor by reason of your accepting any such warranty or
150
+ additional liability.
151
+
152
+ END OF TERMS AND CONDITIONS
153
+
154
+ Copyright 2011 [Alchemists](https://www.alchemists.io).
155
+
156
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
157
+ compliance with the License. You may obtain a [copy](http://www.apache.org/licenses/LICENSE-2.0) of
158
+ the License.
159
+
160
+ Unless required by applicable law or agreed to in writing, software distributed under the License is
161
+ distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
162
+ implied. See the License for the specific language governing permissions and limitations under the
163
+ License.
data/README.md CHANGED
@@ -1,11 +1,10 @@
1
1
  # Gemsmith
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/gemsmith.svg)](http://badge.fury.io/rb/gemsmith)
4
- [![Code Climate GPA](https://codeclimate.com/github/bkuhlmann/gemsmith.svg)](https://codeclimate.com/github/bkuhlmann/gemsmith)
5
- [![Code Climate Coverage](https://codeclimate.com/github/bkuhlmann/gemsmith/coverage.svg)](https://codeclimate.com/github/bkuhlmann/gemsmith)
4
+ [![Code Climate Maintainability](https://api.codeclimate.com/v1/badges/4fbf3375d2abb76a6f5d/maintainability)](https://codeclimate.com/github/bkuhlmann/gemsmith/maintainability)
5
+ [![Code Climate Test Coverage](https://api.codeclimate.com/v1/badges/4fbf3375d2abb76a6f5d/test_coverage)](https://codeclimate.com/github/bkuhlmann/gemsmith/test_coverage)
6
6
  [![Gemnasium Status](https://gemnasium.com/bkuhlmann/gemsmith.svg)](https://gemnasium.com/bkuhlmann/gemsmith)
7
7
  [![Circle CI Status](https://circleci.com/gh/bkuhlmann/gemsmith.svg?style=svg)](https://circleci.com/gh/bkuhlmann/gemsmith)
8
- [![Patreon](https://img.shields.io/badge/patreon-donate-brightgreen.svg)](https://www.patreon.com/bkuhlmann)
9
8
 
10
9
  A command line interface for smithing new Ruby gems.
11
10
 
@@ -57,14 +56,12 @@ A command line interface for smithing new Ruby gems.
57
56
  - Supports [Git Cop](https://github.com/bkuhlmann/git-cop).
58
57
  - Supports [GitHub](https://github.com).
59
58
  - Supports [Guard](https://github.com/guard/guard).
60
- - Supports [Patreon](https://www.patreon.com).
61
59
  - Supports [Pry](http://pryrepl.org).
62
60
  - Supports [Reek](https://github.com/troessner/reek).
63
61
  - Supports [RSpec](http://rspec.info).
64
62
  - Supports [Rubocop](https://github.com/bbatsov/rubocop).
65
63
  - Supports [Ruby on Rails](http://rubyonrails.org).
66
64
  - Supports [RubyGems Security](http://guides.rubygems.org/security).
67
- - Supports [SCSS Lint](https://github.com/brigade/scss-lint).
68
65
  - Supports [Thor](https://github.com/erikhuda/thor).
69
66
  - Supports common settings and a structured layout for building gems.
70
67
  - Supports publishing to public or private gem servers.
@@ -92,16 +89,7 @@ A command line interface for smithing new Ruby gems.
92
89
 
93
90
  ### Install
94
91
 
95
- For a secure install, type the following from the command line (recommended):
96
-
97
- gem cert --add <(curl --location --silent https://www.alchemists.io/gem-public.pem)
98
- gem install gemsmith --trust-policy MediumSecurity
99
-
100
- NOTE: A HighSecurity trust policy would be best but MediumSecurity enables signed gem verification
101
- while allowing the installation of unsigned dependencies since they are beyond the scope of this
102
- gem.
103
-
104
- For an insecure install, type the following (not recommended):
92
+ Type the following to install:
105
93
 
106
94
  gem install gemsmith
107
95
 
@@ -137,22 +125,20 @@ The default configuration is as follows:
137
125
  :ruby: "<current Ruby version>"
138
126
  :rails: "5.1"
139
127
  :generate:
140
- :bundler_audit: false
128
+ :bundler_audit: true
141
129
  :circle_ci: false
142
130
  :cli: false
143
131
  :code_climate: false
144
132
  :gemnasium: false
145
133
  :git_cop: true
146
- :git_hub: false
134
+ :git_hub: true
147
135
  :guard: true
148
- :patreon: false
149
136
  :pry: true
150
137
  :rails: false
151
138
  :reek: true
152
139
  :rspec: true
153
140
  :rubocop: true
154
- :scss_lint: false
155
- :security: true
141
+ :security: false
156
142
  :publish:
157
143
  :sign: false
158
144
 
@@ -198,6 +184,7 @@ From the command line, type: `gemsmith --help`
198
184
  For more gem generation options, type: `gemsmith --help --generate`
199
185
 
200
186
  [--bundler-audit], [--no-bundler-audit] # Add Bundler Audit support.
187
+ # Default: true
201
188
  [--circle-ci], [--no-circle-ci] # Add Circle CI support.
202
189
  [--cli], [--no-cli] # Add CLI support.
203
190
  [--code-climate], [--no-code-climate] # Add Code Climate support.
@@ -205,9 +192,9 @@ For more gem generation options, type: `gemsmith --help --generate`
205
192
  [--git-cop], [--no-git-cop] # Add Git Cop support.
206
193
  # Default: true
207
194
  [--git-hub], [--no-git-hub] # Add GitHub support.
195
+ # Default: true
208
196
  [--guard], [--no-guard] # Add Guard support.
209
197
  # Default: true
210
- [--patreon], [--no-patreon] # Add Patreon support.
211
198
  [--pry], [--no-pry] # Add Pry support.
212
199
  # Default: true
213
200
  [--rails], [--no-rails] # Add Rails support.
@@ -217,9 +204,7 @@ For more gem generation options, type: `gemsmith --help --generate`
217
204
  # Default: true
218
205
  [--rubocop], [--no-rubocop] # Add Rubocop support.
219
206
  # Default: true
220
- [--scss-lint], [--no-scss-lint] # Add SCSS Lint support.
221
207
  [--security], [--no-security] # Add security support.
222
- # Default: true
223
208
 
224
209
  ### Rake
225
210
 
@@ -30,7 +30,6 @@ require "gemsmith/generators/reek"
30
30
  require "gemsmith/generators/rspec"
31
31
  require "gemsmith/generators/rubocop"
32
32
  require "gemsmith/generators/ruby"
33
- require "gemsmith/generators/scss_lint"
34
33
  require "gemsmith/rake/builder"
35
34
  require "gemsmith/rake/publisher"
36
35
  require "gemsmith/rake/tasks"
@@ -54,29 +54,29 @@ module Gemsmith
54
54
  rails: "5.1"
55
55
  },
56
56
  generate: {
57
- bundler_audit: false,
57
+ bundler_audit: true,
58
58
  circle_ci: false,
59
59
  cli: false,
60
60
  code_climate: false,
61
61
  gemnasium: false,
62
62
  git_cop: true,
63
- git_hub: false,
63
+ git_hub: true,
64
64
  guard: true,
65
- patreon: false,
66
65
  pry: true,
67
66
  rails: false,
68
67
  reek: true,
69
68
  rspec: true,
70
69
  rubocop: true,
71
- scss_lint: false,
72
- security: true
70
+ security: false
73
71
  },
74
72
  publish: {
75
73
  sign: false
76
74
  }
77
75
  }
78
76
  end
77
+ # rubocop:enable Metrics/MethodLength
79
78
 
79
+ # rubocop:disable Metrics/MethodLength
80
80
  def self.generators
81
81
  [
82
82
  Generators::Gem,
@@ -90,7 +90,6 @@ module Gemsmith
90
90
  Generators::GitCop,
91
91
  Generators::Reek,
92
92
  Generators::Rubocop,
93
- Generators::SCSSLint,
94
93
  Generators::CodeClimate,
95
94
  Generators::Guard,
96
95
  Generators::CircleCI,
@@ -100,6 +99,7 @@ module Gemsmith
100
99
  Generators::Git
101
100
  ]
102
101
  end
102
+ # rubocop:enable Metrics/MethodLength
103
103
 
104
104
  # Initialize.
105
105
  def initialize args = [], options = {}, config = {}
@@ -143,10 +143,6 @@ module Gemsmith
143
143
  desc: "Add Guard support.",
144
144
  type: :boolean,
145
145
  default: configuration.to_h.dig(:generate, :guard)
146
- method_option :patreon,
147
- desc: "Add Patreon support.",
148
- type: :boolean,
149
- default: configuration.to_h.dig(:generate, :patreon)
150
146
  method_option :pry,
151
147
  desc: "Add Pry support.",
152
148
  type: :boolean,
@@ -167,10 +163,6 @@ module Gemsmith
167
163
  desc: "Add Rubocop support.",
168
164
  type: :boolean,
169
165
  default: configuration.to_h.dig(:generate, :rubocop)
170
- method_option :scss_lint,
171
- desc: "Add SCSS Lint support.",
172
- type: :boolean,
173
- default: configuration.to_h.dig(:generate, :scss_lint)
174
166
  method_option :security,
175
167
  desc: "Add security support.",
176
168
  type: :boolean,
@@ -187,6 +179,7 @@ module Gemsmith
187
179
 
188
180
  say_status :info, "Gem generation finished.", :green
189
181
  end
182
+ # rubocop:enable Metrics/AbcSize
190
183
 
191
184
  desc "-o, [--open=GEM]", "Open a gem in default editor."
192
185
  map %w[-o --open] => :open
@@ -237,6 +230,7 @@ module Gemsmith
237
230
  attr_reader :configuration
238
231
 
239
232
  # :reek:FeatureEnvy
233
+ # rubocop:disable Metrics/MethodLength
240
234
  def setup_configuration name:, options: {}
241
235
  @configuration = configuration.to_h.merge(
242
236
  gem: {
@@ -251,6 +245,7 @@ module Gemsmith
251
245
  generate: options.symbolize_keys
252
246
  )
253
247
  end
248
+ # rubocop:enable Metrics/MethodLength
254
249
 
255
250
  def print_cli_and_rails_engine_option_error
256
251
  say_status :error,
@@ -259,4 +254,5 @@ module Gemsmith
259
254
  :red
260
255
  end
261
256
  end
257
+ # rubocop:enable Metrics/ClassLength
262
258
  end
@@ -65,6 +65,7 @@ module Gemsmith
65
65
  File.open(file_path, "w") { |file| file << YAML.dump(new_credentials) }
66
66
  FileUtils.chmod(0o600, file_path)
67
67
  end
68
+ # rubocop:enable Metrics/AbcSize
68
69
 
69
70
  private
70
71
 
@@ -33,7 +33,7 @@ module Gemsmith
33
33
  end
34
34
 
35
35
  def body content
36
- content.sub(/\A\n/, "").split("\n").reduce "" do |body, line|
36
+ content.lstrip.split("\n").reduce "" do |body, line|
37
37
  next "#{body}\n" if line.blank?
38
38
  body + "#{self.class.indent depth + 1}#{line.gsub(/^\s{2}/, "")}\n"
39
39
  end
@@ -13,6 +13,7 @@ module Gemsmith
13
13
  cli.template "%gem_name%/spec/lib/%gem_path%/cli_spec.rb.tt", configuration
14
14
  cli.chmod "#{gem_name}/bin/#{gem_name}", 0o755
15
15
  end
16
+ # rubocop:enable Metrics/AbcSize
16
17
  end
17
18
  end
18
19
  end
@@ -14,6 +14,7 @@ module Gemsmith
14
14
  cli.template "#{lib_gem_root}/identity.rb.tt", configuration
15
15
  cli.chmod "#{configuration.dig(:gem, :name)}/bin/setup", 0o755
16
16
  end
17
+ # rubocop:enable Metrics/AbcSize
17
18
  end
18
19
  end
19
20
  end
@@ -12,7 +12,7 @@ module Gemsmith
12
12
  end
13
13
 
14
14
  # rubocop:disable Metrics/MethodLength
15
- def whitelist
15
+ def includes
16
16
  %W[
17
17
  **/*Gemfile
18
18
  **/*Guardfile
@@ -30,12 +30,13 @@ module Gemsmith
30
30
  **/*.rb
31
31
  ]
32
32
  end
33
+ # rubocop:enable Metrics/MethodLength
33
34
 
34
35
  def run
35
36
  Pragmater::Runner.new(
36
37
  gem_root,
37
38
  comments: self.class.comments,
38
- whitelist: whitelist
39
+ includes: includes
39
40
  ).run action: :add
40
41
  end
41
42
  end
@@ -27,18 +27,21 @@ module Gemsmith
27
27
  cli.template "#{generator_root}/upgrade/upgrade_generator.rb.tt", configuration
28
28
  cli.template "#{generator_root}/upgrade/USAGE.tt", configuration
29
29
  end
30
+ # rubocop:enable Metrics/AbcSize
30
31
 
31
32
  def stub_assets
32
33
  cli.run %(printf "%s" > "#{gem_name}/app/assets/javascripts/#{gem_path}/application.js")
33
34
  cli.run %(printf "%s" > "#{gem_name}/app/assets/stylesheets/#{gem_path}/application.css")
34
35
  end
35
36
 
37
+ # rubocop:disable Metrics/AbcSize
36
38
  def remove_files
37
39
  cli.remove_file "#{gem_name}/app/helpers/#{gem_path}/application_helper.rb", configuration
38
40
  cli.remove_file "#{gem_name}/lib/#{gem_path}/version.rb", configuration
39
41
  cli.remove_file "#{gem_name}/MIT-LICENSE", configuration
40
42
  cli.remove_file "#{gem_name}/README.rdoc", configuration
41
43
  end
44
+ # rubocop:enable Metrics/AbcSize
42
45
 
43
46
  # :reek:TooManyStatements
44
47
  def run
@@ -46,17 +46,12 @@ module Gemsmith
46
46
  configuration.dig(:generate, :rubocop) ? "rubocop" : ""
47
47
  end
48
48
 
49
- def scss_lint_task
50
- configuration.dig(:generate, :scss_lint) ? "scss_lint" : ""
51
- end
52
-
53
49
  def code_quality_tasks
54
50
  [
55
51
  bundler_audit_task,
56
52
  git_cop_task,
57
53
  reek_task,
58
- rubocop_task,
59
- scss_lint_task
54
+ rubocop_task
60
55
  ].compress.join " "
61
56
  end
62
57
 
@@ -12,7 +12,7 @@ module Gemsmith
12
12
  end
13
13
 
14
14
  def self.version
15
- "10.4.2"
15
+ "11.0.0"
16
16
  end
17
17
 
18
18
  def self.version_label
@@ -31,6 +31,7 @@ module Gemsmith
31
31
  @shell = shell
32
32
  @kernel = kernel
33
33
  end
34
+ # rubocop:enable Metrics/ParameterLists
34
35
 
35
36
  # rubocop:disable Metrics/AbcSize
36
37
  def push
@@ -41,6 +42,7 @@ module Gemsmith
41
42
  status = kernel.system %(gem push "pkg/#{gem_spec.package_file_name}" #{options})
42
43
  process_push status
43
44
  end
45
+ # rubocop:enable Metrics/AbcSize
44
46
 
45
47
  def publish
46
48
  publisher.publish gem_spec.version_number, sign: signed?
@@ -63,6 +63,8 @@ module Gemsmith
63
63
  publisher.publish
64
64
  end
65
65
  end
66
+ # rubocop:enable Metrics/AbcSize
67
+ # rubocop:enable Metrics/MethodLength
66
68
 
67
69
  private
68
70
 
@@ -1,4 +1,4 @@
1
- $LOAD_PATH.push File.expand_path("../lib", __FILE__)
1
+ $LOAD_PATH.append File.expand_path("../lib", __FILE__)
2
2
  require "<%= config.dig(:gem, :path) %>/identity"
3
3
 
4
4
  Gem::Specification.new do |spec|
@@ -10,7 +10,6 @@ Gem::Specification.new do |spec|
10
10
  spec.homepage = "<%= config.dig(:gem, :url) %>"
11
11
  spec.summary = ""
12
12
  spec.license = "MIT"
13
-
14
13
  <%- if config.dig(:generate, :security) -%>
15
14
  if File.exist?(Gem.default_key_path) && File.exist?(Gem.default_cert_path)
16
15
  spec.signing_key = Gem.default_key_path
@@ -53,9 +52,6 @@ Gem::Specification.new do |spec|
53
52
  <%- if config.dig(:generate, :rubocop) -%>
54
53
  spec.add_development_dependency "rubocop", "~> 0.51"
55
54
  <%- end -%>
56
- <%- if config.dig(:generate, :scss_lint) -%>
57
- spec.add_development_dependency "scss_lint", "~> 0.50"
58
- <%- end -%>
59
55
 
60
56
  <%- if config.dig(:generate, :rails) -%>
61
57
  spec.files = Dir["app/**/*", "bin/**/*", "config/**/*", "lib/**/*", "vendor/**/*"]
@@ -1,34 +1,40 @@
1
- prepare:
2
- fetch:
3
- - url: https://raw.githubusercontent.com/bkuhlmann/code_quality/v1.3.0/configurations/rubocop/ruby.yml
4
- path: .rubocop-https---raw-githubusercontent-com-bkuhlmann-code-quality-v1-3-0-configurations-rubocop-ruby-yml
5
- <%- if config.dig(:generate, :rails) -%>
6
- - url: https://raw.githubusercontent.com/bkuhlmann/code_quality/v1.3.0/configurations/rubocop/rails.yml
7
- path: .rubocop-https---raw-githubusercontent-com-bkuhlmann-code-quality-v1-3-0-configurations-rubocop-rails-yml
8
- <%- end -%>
9
- engines:
10
- shellcheck:
11
- enabled: true
12
- reek:
13
- enabled: <%= config.dig :generate, :reek %>
14
- rubocop:
15
- enabled: <%= config.dig :generate, :rubocop %>
16
- scss-lint:
17
- enabled: <%= config.dig :generate, :scss_lint %>
18
- duplication:
19
- enabled: true
20
- config:
21
- languages:
22
- - ruby
23
- - javascript
24
- ratings:
25
- paths:
26
- - "app/**/*"
27
- - "bin/**/*"
28
- - "lib/**/*"
29
- - "**.rb"
30
- - "**.js"
31
- exclude_paths:
32
- - "spec/**/*"
33
- - "vendor/**/*"
34
- - ".codeclimate.yml"
1
+ version: 2
2
+ checks:
3
+ argument-count:
4
+ config:
5
+ threshold: 3
6
+ complex-logic:
7
+ config:
8
+ threshold: 3
9
+ file-lines:
10
+ config:
11
+ threshold: 250
12
+ method-complexity:
13
+ config:
14
+ threshold: 3
15
+ method-count:
16
+ config:
17
+ threshold: 20
18
+ method-lines:
19
+ config:
20
+ threshold: 20
21
+ nested-control-flow:
22
+ config:
23
+ threshold: 3
24
+ return-statements:
25
+ config:
26
+ threshold: 3
27
+ similar-code:
28
+ enabled: false
29
+ identical-code:
30
+ config:
31
+ threshold: 3
32
+ exclude_patterns:
33
+ - "config/"
34
+ - "db/"
35
+ - "**/elm-stuff/"
36
+ - "**/node_modules/"
37
+ - "**/spec/"
38
+ - "**/test/"
39
+ - "**/tests/"
40
+ - "**/vendor/"
@@ -2,8 +2,9 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/<%= config.dig(:gem, :name) %>.svg)](http://badge.fury.io/rb/<%= config.dig(:gem, :name) %>)
4
4
  <%- if config.dig(:generate, :code_climate) -%>
5
- [![Code Climate GPA](https://codeclimate.com/github/<%= config.fetch :github_user %>/<%= config.dig(:gem, :name) %>.svg)](https://codeclimate.com/github/<%= config.fetch :github_user %>/<%= config.dig(:gem, :name) %>)
6
- [![Code Climate Coverage](https://codeclimate.com/github/<%= config.fetch :github_user %>/<%= config.dig(:gem, :name) %>/coverage.svg)](https://codeclimate.com/github/<%= config.fetch :github_user %>/<%= config.dig(:gem, :name) %>)
5
+ <!-- Replace <id> with Code Climate repository ID. Remove this comment afterwards. -->
6
+ [![Code Climate Maintainability](https://api.codeclimate.com/v1/badges/<id>/maintainability)](https://codeclimate.com/github/<%= config.fetch :github_user %>/<%= config.dig(:gem, :name) %>/maintainability)
7
+ [![Code Climate Test Coverage](https://api.codeclimate.com/v1/badges/<id>/test_coverage)](https://codeclimate.com/github/<%= config.fetch :github_user %>/<%= config.dig(:gem, :name) %>/test_coverage)
7
8
  <%- end -%>
8
9
  <%- if config.dig(:generate, :gemnasium) -%>
9
10
  [![Gemnasium Status](https://gemnasium.com/<%= config.fetch :github_user %>/<%= config.dig(:gem, :name) %>.svg)](https://gemnasium.com/<%= config.fetch :github_user %>/<%= config.dig(:gem, :name) %>)
@@ -11,9 +12,6 @@
11
12
  <%- if config.dig(:generate, :circle_ci) -%>
12
13
  [![Circle CI Status](https://circleci.com/gh/<%= config.fetch :github_user %>/<%= config.dig :gem, :name %>.svg?style=svg)](https://circleci.com/gh/<%= config.fetch :github_user %>/<%= config.dig :gem, :name %>)
13
14
  <%- end -%>
14
- <%- if config.dig(:generate, :patreon) -%>
15
- [![Patreon](https://img.shields.io/badge/patreon-donate-brightgreen.svg)](https://www.patreon.com/<%= config.fetch :github_user %>)
16
- <%- end -%>
17
15
 
18
16
  <!-- Tocer[start]: Auto-generated, don't remove. -->
19
17
  <!-- Tocer[finish]: Auto-generated, don't remove. -->
@@ -5,13 +5,11 @@ begin
5
5
  # require "rspec/core/rake_task"
6
6
  # require "reek/rake/task"
7
7
  # require "rubocop/rake_task"
8
- # require "scss_lint/rake_task"
9
8
 
10
9
  # Bundler::Audit::Task.new
11
10
  # RSpec::Core::RakeTask.new(:spec)
12
11
  # Reek::Rake::Task.new
13
12
  # RuboCop::RakeTask.new
14
- # SCSSLint::RakeTask.new { |task| task.files = ["app/assets"] }
15
13
  rescue LoadError => error
16
14
  puts error.message
17
15
  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: 10.4.2
4
+ version: 11.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -30,7 +30,7 @@ cert_chain:
30
30
  MQXa5aqjoFEODxVbBBI6NyNVH4gMKDsILEFlH/mcBQKKQwXj2McJmB8jIG+WuKoE
31
31
  GyTL6s+8CnN9sL2Spfh/YdRn/29r4g2qi6FomQ==
32
32
  -----END CERTIFICATE-----
33
- date: 2017-11-19 00:00:00.000000000 Z
33
+ date: 2018-01-01 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: bundler
@@ -38,84 +38,84 @@ dependencies:
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '1.15'
41
+ version: '1.16'
42
42
  type: :runtime
43
43
  prerelease: false
44
44
  version_requirements: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '1.15'
48
+ version: '1.16'
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: milestoner
51
51
  requirement: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '6.2'
55
+ version: '7.0'
56
56
  type: :runtime
57
57
  prerelease: false
58
58
  version_requirements: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: '6.2'
62
+ version: '7.0'
63
63
  - !ruby/object:Gem::Dependency
64
64
  name: pragmater
65
65
  requirement: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '4.2'
69
+ version: '5.0'
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '4.2'
76
+ version: '5.0'
77
77
  - !ruby/object:Gem::Dependency
78
78
  name: refinements
79
79
  requirement: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '4.2'
83
+ version: '5.0'
84
84
  type: :runtime
85
85
  prerelease: false
86
86
  version_requirements: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: '4.2'
90
+ version: '5.0'
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rubocop
93
93
  requirement: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '0.51'
97
+ version: '0.52'
98
98
  type: :runtime
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: '0.51'
104
+ version: '0.52'
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: runcom
107
107
  requirement: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: '1.3'
111
+ version: '2.0'
112
112
  type: :runtime
113
113
  prerelease: false
114
114
  version_requirements: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: '1.3'
118
+ version: '2.0'
119
119
  - !ruby/object:Gem::Dependency
120
120
  name: thor
121
121
  requirement: !ruby/object:Gem::Requirement
@@ -136,28 +136,28 @@ dependencies:
136
136
  requirements:
137
137
  - - "~>"
138
138
  - !ruby/object:Gem::Version
139
- version: '6.2'
139
+ version: '7.0'
140
140
  type: :runtime
141
141
  prerelease: false
142
142
  version_requirements: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - "~>"
145
145
  - !ruby/object:Gem::Version
146
- version: '6.2'
146
+ version: '7.0'
147
147
  - !ruby/object:Gem::Dependency
148
148
  name: versionaire
149
149
  requirement: !ruby/object:Gem::Requirement
150
150
  requirements:
151
151
  - - "~>"
152
152
  - !ruby/object:Gem::Version
153
- version: '3.2'
153
+ version: '4.0'
154
154
  type: :runtime
155
155
  prerelease: false
156
156
  version_requirements: !ruby/object:Gem::Requirement
157
157
  requirements:
158
158
  - - "~>"
159
159
  - !ruby/object:Gem::Version
160
- version: '3.2'
160
+ version: '4.0'
161
161
  - !ruby/object:Gem::Dependency
162
162
  name: awesome_print
163
163
  requirement: !ruby/object:Gem::Requirement
@@ -234,14 +234,14 @@ dependencies:
234
234
  requirements:
235
235
  - - "~>"
236
236
  - !ruby/object:Gem::Version
237
- version: '1.7'
237
+ version: '2.0'
238
238
  type: :development
239
239
  prerelease: false
240
240
  version_requirements: !ruby/object:Gem::Requirement
241
241
  requirements:
242
242
  - - "~>"
243
243
  - !ruby/object:Gem::Version
244
- version: '1.7'
244
+ version: '2.0'
245
245
  - !ruby/object:Gem::Dependency
246
246
  name: guard-rspec
247
247
  requirement: !ruby/object:Gem::Requirement
@@ -399,7 +399,6 @@ files:
399
399
  - lib/gemsmith/generators/rspec.rb
400
400
  - lib/gemsmith/generators/rubocop.rb
401
401
  - lib/gemsmith/generators/ruby.rb
402
- - lib/gemsmith/generators/scss_lint.rb
403
402
  - lib/gemsmith/git.rb
404
403
  - lib/gemsmith/helpers/cli.rb
405
404
  - lib/gemsmith/helpers/template.rb
@@ -440,7 +439,7 @@ files:
440
439
  - lib/gemsmith/templates/%gem_name%/spec/support/shared_contexts/temp_dir.rb.tt
441
440
  homepage: https://github.com/bkuhlmann/gemsmith
442
441
  licenses:
443
- - MIT
442
+ - Apache-2.0
444
443
  metadata: {}
445
444
  post_install_message:
446
445
  rdoc_options: []
@@ -450,7 +449,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
450
449
  requirements:
451
450
  - - "~>"
452
451
  - !ruby/object:Gem::Version
453
- version: '2.4'
452
+ version: '2.5'
454
453
  required_rubygems_version: !ruby/object:Gem::Requirement
455
454
  requirements:
456
455
  - - ">="
@@ -458,7 +457,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
458
457
  version: '0'
459
458
  requirements: []
460
459
  rubyforge_project:
461
- rubygems_version: 2.7.2
460
+ rubygems_version: 2.7.4
462
461
  signing_key:
463
462
  specification_version: 4
464
463
  summary: A command line interface for smithing new Ruby gems.
metadata.gz.sig CHANGED
Binary file
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Gemsmith
4
- module Generators
5
- # Generates SCSS Lint support.
6
- class SCSSLint < Base
7
- def run
8
- return unless configuration.dig(:generate, :scss_lint)
9
-
10
- gem_name = configuration.dig :gem, :name
11
- cli.uncomment_lines "#{gem_name}/Rakefile", /require.+scss.+/
12
- cli.uncomment_lines "#{gem_name}/Rakefile", /SCSSLint.+/
13
- end
14
- end
15
- end
16
- end