ggem 1.9.2 → 1.10.1

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
  SHA256:
3
- metadata.gz: fe73b45d444a8f7ff488f19259fc7a0668c681db033d19f2eb1b221d004edac5
4
- data.tar.gz: 5ea32d246eafec3af4fd01f17e6ed94c05c95b4a53a667d8966114cff59d387c
3
+ metadata.gz: 2f808cfb13bd1bd2cc89f0958e4b6c2ee1a630e0daed3372b55f48cda0e8dc81
4
+ data.tar.gz: 7f92f7dd832149d41d7df9fde353f18361d95afc14e291eb832a4fe53ac8bd82
5
5
  SHA512:
6
- metadata.gz: acf33a27c2b503dc4d6233a3d6afb05dd34b86d326d19f9202b37aeb82b44cef1e70a901e140eff2a34528699e619f761c84caeabdc5029cb62f40227a026ac0
7
- data.tar.gz: 00c64f8c24b4de4f2858994d59ff6b52b62474103e2865709a89bc62e48ae8a0d69b700bd967e669c04dd4b8ce24cda86c2f2c61707411370a97fd17776ba051
6
+ metadata.gz: 161678afc1fcdb96445ecaa13f2205069cbb280c22f46fc34a8c506d10deb39c58bc51717f65bb3c30b05d2da80118981d258d39b429c448a7662bda6bf08830
7
+ data.tar.gz: 7c398733d35276e4924ca41c4f5db45347b04bb73d6f925052548a60da40c076ce2c22c130f9bfaae654d23875b6fce8397297e213fec463f1b58dd03eb499e6
data/Gemfile CHANGED
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org"
2
4
 
3
5
  ruby "~> 2.5"
4
6
 
5
7
  gemspec
6
8
 
7
- gem "pry", "~> 0.12.2"
9
+ gem "pry"
data/bin/ggem CHANGED
@@ -2,6 +2,7 @@
2
2
  #
3
3
  # Copyright (c) 2008-Present Kelly Redding
4
4
  #
5
+ # frozen_string_literal: true
5
6
 
6
7
  require "ggem/cli"
7
8
  GGem::CLI.run ARGV
@@ -1,4 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ # frozen_string_literal: true
3
+
2
4
  lib = File.expand_path("../lib", __FILE__)
3
5
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
6
  require "ggem/version"
@@ -8,21 +10,22 @@ Gem::Specification.new do |gem|
8
10
  gem.version = GGem::VERSION
9
11
  gem.authors = ["Kelly Redding", "Collin Redding"]
10
12
  gem.email = ["kelly@kellyredding.com", "collin.redding@me.com"]
11
- gem.summary = %q{"Juh Gem", baby! (a gem utility CLI)}
12
- gem.description = %q{"Juh Gem", baby! (a gem utility CLI)}
13
+ gem.summary = '"Juh Gem", baby! (a gem utility CLI)'
14
+ gem.description = '"Juh Gem", baby! (a gem utility CLI)'
13
15
  gem.homepage = "http://github.com/redding/ggem"
14
16
  gem.license = "MIT"
15
17
 
16
- gem.files = `git ls-files | grep "^[^.]"`.split($/)
18
+ gem.files = `git ls-files | grep "^[^.]"`.split($INPUT_RECORD_SEPARATOR)
19
+
17
20
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
21
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
22
  gem.require_paths = ["lib"]
20
23
 
21
24
  gem.required_ruby_version = "~> 2.5"
22
25
 
23
- gem.add_development_dependency("assert", ["~> 2.18.2"])
24
-
25
- gem.add_dependency("much-plugin", ["~> 0.2.2"])
26
- gem.add_dependency("scmd", ["~> 3.0.3"])
26
+ gem.add_development_dependency("much-style-guide", ["~> 0.6.0"])
27
+ gem.add_development_dependency("assert", ["~> 2.19.3"])
27
28
 
29
+ gem.add_dependency("much-mixin", ["~> 0.2.4"])
30
+ gem.add_dependency("scmd", ["~> 3.0.4"])
28
31
  end
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "ggem/version"
2
4
  require "ggem/gem"
@@ -1,8 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "ggem/version"
2
4
  require "ggem/cli/clirb"
3
5
  require "ggem/cli/commands"
4
6
 
5
7
  module GGem; end
8
+
6
9
  class GGem::CLI
7
10
  COMMANDS = CommandSet.new{ |unknown| InvalidCommand.new(unknown) }.tap do |c|
8
11
  c.add(GenerateCommand, "generate", "g")
@@ -14,7 +17,7 @@ class GGem::CLI
14
17
  end
15
18
 
16
19
  def self.run(args)
17
- self.new.run(args)
20
+ new.run(args)
18
21
  end
19
22
 
20
23
  def initialize(kernel = nil, stdout = nil, stderr = nil)
@@ -32,16 +35,16 @@ class GGem::CLI
32
35
  @stdout.puts cmd.help
33
36
  rescue CLIRB::VersionExit
34
37
  @stdout.puts GGem::VERSION
35
- rescue CLIRB::Error, ArgumentError, InvalidCommandError => exception
36
- display_debug(exception)
37
- @stderr.puts "#{exception.message}\n\n"
38
+ rescue CLIRB::Error, ArgumentError, InvalidCommandError => ex
39
+ display_debug(ex)
40
+ @stderr.puts "#{ex.message}\n\n"
38
41
  @stdout.puts cmd.help
39
42
  @kernel.exit 1
40
43
  rescue CommandExitError
41
44
  @kernel.exit 1
42
- rescue StandardError => exception
43
- @stderr.puts "#{exception.class}: #{exception.message}"
44
- @stderr.puts exception.backtrace.join("\n")
45
+ rescue => ex
46
+ @stderr.puts "#{ex.class}: #{ex.message}"
47
+ @stderr.puts ex.backtrace.join("\n")
45
48
  @kernel.exit 1
46
49
  end
47
50
  @kernel.exit 0
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GGem; end
2
4
  class GGem::CLI; end
3
5
  class GGem::CLI::CLIRB # Version 1.1.0, https://github.com/redding/cli.rb
@@ -1,7 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "ggem/cli/clirb"
2
- require "much-plugin"
4
+ require "much-mixin"
3
5
 
4
6
  module GGem; end
7
+
5
8
  class GGem::CLI
6
9
  InvalidCommandError = Class.new(ArgumentError)
7
10
  CommandExitError = Class.new(RuntimeError)
@@ -14,12 +17,14 @@ class GGem::CLI
14
17
  @clirb = CLIRB.new
15
18
  end
16
19
 
17
- def new; self; end
20
+ def new
21
+ self
22
+ end
18
23
 
19
24
  def run(argv)
20
25
  @clirb.parse!([@name, argv].flatten.compact)
21
26
  raise CLIRB::HelpExit if @name.to_s.empty?
22
- raise InvalidCommandError, "`#{self.name}` is not a command."
27
+ raise InvalidCommandError, "`#{name}` is not a command."
23
28
  end
24
29
 
25
30
  def help
@@ -31,14 +36,16 @@ class GGem::CLI
31
36
  end
32
37
 
33
38
  module ValidCommand
34
- include MuchPlugin
39
+ include MuchMixin
35
40
 
36
- plugin_instance_methods do
41
+ mixin_instance_methods do
37
42
  def initialize(&clirb_build)
38
43
  @clirb = CLIRB.new(&clirb_build)
39
44
  end
40
45
 
41
- def clirb; @clirb; end
46
+ def clirb
47
+ @clirb
48
+ end
42
49
 
43
50
  def run(argv, stdout = nil, stderr = nil)
44
51
  @clirb.parse!(argv)
@@ -53,9 +60,9 @@ class GGem::CLI
53
60
  end
54
61
 
55
62
  module NotifyCmdCommand
56
- include MuchPlugin
63
+ include MuchMixin
57
64
 
58
- plugin_instance_methods do
65
+ mixin_instance_methods do
59
66
  private
60
67
 
61
68
  def notify(success_msg, &cmd_block)
@@ -64,7 +71,7 @@ class GGem::CLI
64
71
  end
65
72
 
66
73
  def cmd(&cmd_block)
67
- cmd, status, output = cmd_block.call
74
+ cmd, _status, output = cmd_block.call
68
75
  if ENV["DEBUG"]
69
76
  @stdout.puts cmd
70
77
  @stdout.puts output
@@ -74,14 +81,14 @@ class GGem::CLI
74
81
  end
75
82
 
76
83
  module GitRepoCommand
77
- include MuchPlugin
84
+ include MuchMixin
78
85
 
79
- plugin_included do
86
+ mixin_included do
80
87
  include ValidCommand
81
88
  include NotifyCmdCommand
82
89
  end
83
90
 
84
- plugin_instance_methods do
91
+ mixin_instance_methods do
85
92
  def initialize(*args)
86
93
  super
87
94
 
@@ -94,8 +101,8 @@ class GGem::CLI
94
101
  def notify(*args, &block)
95
102
  begin
96
103
  super
97
- rescue GGem::GitRepo::CmdError => exception
98
- @stderr.puts exception.message
104
+ rescue GGem::GitRepo::CmdError => ex
105
+ @stderr.puts ex.message
99
106
  raise CommandExitError
100
107
  end
101
108
  end
@@ -112,9 +119,9 @@ class GGem::CLI
112
119
  require "ggem/gem"
113
120
  path = GGem::Gem.new(Dir.pwd, @clirb.args.first).save!.path
114
121
  @stdout.puts "created gem in #{path}"
115
- rescue GGem::Gem::NoNameError => exception
122
+ rescue GGem::Gem::NoNameError => ex
116
123
  error = ArgumentError.new("GEM-NAME must be provided")
117
- error.set_backtrace(exception.backtrace)
124
+ error.set_backtrace(ex.backtrace)
118
125
  raise error
119
126
  end
120
127
 
@@ -130,28 +137,28 @@ class GGem::CLI
130
137
  "Usage: ggem generate [options] GEM-NAME\n\n" \
131
138
  "Options: #{@clirb}\n" \
132
139
  "Description:\n" \
133
- " #{self.summary}"
140
+ " #{summary}"
134
141
  end
135
142
  end
136
143
 
137
144
  module GemspecCommand
138
- include MuchPlugin
145
+ include MuchMixin
139
146
 
140
- plugin_included do
147
+ mixin_included do
141
148
  include ValidCommand
142
149
  include NotifyCmdCommand
143
150
  end
144
151
 
145
- plugin_instance_methods do
152
+ mixin_instance_methods do
146
153
  def initialize(*args)
147
154
  super
148
155
 
149
156
  require "ggem/gemspec"
150
157
  begin
151
158
  @spec = GGem::Gemspec.new(Dir.pwd)
152
- rescue GGem::Gemspec::NotFoundError => exception
159
+ rescue GGem::Gemspec::NotFoundError => ex
153
160
  error = ArgumentError.new("There are no gemspecs at #{Dir.pwd}")
154
- error.set_backtrace(exception.backtrace)
161
+ error.set_backtrace(ex.backtrace)
155
162
  raise error
156
163
  end
157
164
  end
@@ -161,8 +168,8 @@ class GGem::CLI
161
168
  def notify(*args, &block)
162
169
  begin
163
170
  super
164
- rescue GGem::Gemspec::CmdError => exception
165
- @stderr.puts exception.message
171
+ rescue GGem::Gemspec::CmdError => ex
172
+ @stderr.puts ex.message
166
173
  raise CommandExitError
167
174
  end
168
175
  end
@@ -188,7 +195,7 @@ class GGem::CLI
188
195
  "Usage: ggem build [options]\n\n" \
189
196
  "Options: #{@clirb}\n" \
190
197
  "Description:\n" \
191
- " #{self.summary}"
198
+ " #{summary}"
192
199
  end
193
200
  end
194
201
 
@@ -217,7 +224,7 @@ class GGem::CLI
217
224
  "Usage: ggem install [options]\n\n" \
218
225
  "Options: #{@clirb}\n" \
219
226
  "Description:\n" \
220
- " #{self.summary}"
227
+ " #{summary}"
221
228
  end
222
229
  end
223
230
 
@@ -247,22 +254,22 @@ class GGem::CLI
247
254
  "Usage: ggem push [options]\n\n" \
248
255
  "Options: #{@clirb}\n" \
249
256
  "Description:\n" \
250
- " #{self.summary}"
257
+ " #{summary}"
251
258
  end
252
259
  end
253
260
 
254
261
  module ForceTagOptionCommand
255
- include MuchPlugin
262
+ include MuchMixin
256
263
 
257
- plugin_included do
264
+ mixin_included do
258
265
  include ValidCommand
259
266
  end
260
267
 
261
- plugin_instance_methods do
268
+ mixin_instance_methods do
262
269
  def initialize
263
270
  super do
264
271
  option "force-tag", "force tagging even with uncommitted files", {
265
- :abbrev => "f"
272
+ abbrev: "f",
266
273
  }
267
274
  end
268
275
  end
@@ -280,9 +287,9 @@ class GGem::CLI
280
287
  begin
281
288
  cmd{ @repo.run_validate_clean_cmd }
282
289
  cmd{ @repo.run_validate_committed_cmd }
283
- rescue GGem::GitRepo::CmdError => err
290
+ rescue GGem::GitRepo::CmdError
284
291
  @stderr.puts "There are files that need to be committed first."
285
- if self.clirb.opts["force-tag"]
292
+ if clirb.opts["force-tag"]
286
293
  @stderr.puts "Forcing tag anyway..."
287
294
  else
288
295
  raise CommandExitError
@@ -301,8 +308,8 @@ class GGem::CLI
301
308
  end
302
309
 
303
310
  @stdout.puts "Pushed git commits and tags."
304
- rescue GGem::GitRepo::CmdError => err
305
- @stderr.puts err.message
311
+ rescue GGem::GitRepo::CmdError => ex
312
+ @stderr.puts ex.message
306
313
  raise CommandExitError
307
314
  end
308
315
 
@@ -314,7 +321,7 @@ class GGem::CLI
314
321
  "Usage: ggem tag [options]\n\n" \
315
322
  "Options: #{@clirb}\n" \
316
323
  "Description:\n" \
317
- " #{self.summary}"
324
+ " #{summary}"
318
325
  end
319
326
  end
320
327
 
@@ -330,7 +337,7 @@ class GGem::CLI
330
337
 
331
338
  def run(argv, *args)
332
339
  super
333
- @tag_command.run(self.clirb.opts["force-tag"] ? ["--force-tag"] : [])
340
+ @tag_command.run(clirb.opts["force-tag"] ? ["--force-tag"] : [])
334
341
  @push_command.run([])
335
342
  end
336
343
 
@@ -343,14 +350,14 @@ class GGem::CLI
343
350
  "Usage: ggem release [options]\n\n" \
344
351
  "Options: #{@clirb}\n" \
345
352
  "Description:\n" \
346
- " #{self.summary}\n" \
353
+ " #{summary}\n" \
347
354
  " (macro for running `ggem tag && ggem push`)"
348
355
  end
349
356
  end
350
357
 
351
358
  class CommandSet
352
359
  def initialize(&unknown_cmd_block)
353
- @lookup = Hash.new{ |h,k| unknown_cmd_block.call(k) }
360
+ @lookup = Hash.new{ |_h, k| unknown_cmd_block.call(k) }
354
361
  @names = []
355
362
  @aliases = {}
356
363
  @summaries = {}
@@ -359,7 +366,7 @@ class GGem::CLI
359
366
  def add(klass, name, *aliases)
360
367
  begin
361
368
  cmd = klass.new
362
- rescue StandardError => err
369
+ rescue
363
370
  # don't add any commands you can't init
364
371
  else
365
372
  ([name] + aliases).each{ |n| @lookup[n] = cmd }
@@ -386,12 +393,13 @@ class GGem::CLI
386
393
  end
387
394
 
388
395
  def to_s
389
- max_name_size = @names.map{ |n| n.size }.max || 0
390
- max_alias_size = @aliases.values.map{ |v| v.size }.max || 0
396
+ max_name_size = @names.map(&:size).max || 0
397
+ max_alias_size = @aliases.values.map(&:size).max || 0
391
398
 
392
- @to_s ||= @names.map do |n|
393
- "#{n.ljust(max_name_size)} #{@aliases[n].ljust(max_alias_size)} #{@summaries[n]}"
394
- end.join("\n")
399
+ @to_s ||= @names.map{ |n|
400
+ "#{n.ljust(max_name_size)} #{@aliases[n].ljust(max_alias_size)} "\
401
+ "#{@summaries[n]}"
402
+ }.join("\n")
395
403
  end
396
404
  end
397
405
  end
@@ -1,7 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "fileutils"
2
4
  require "ggem/template"
3
5
 
4
6
  module GGem; end
7
+
5
8
  class GGem::Gem
6
9
  NoNameError = Class.new(ArgumentError)
7
10
 
@@ -28,13 +31,13 @@ class GGem::Gem
28
31
  def module_name
29
32
  transforms = {
30
33
  "_" => "",
31
- "-" => ""
34
+ "-" => "",
32
35
  }
33
- @module_name ||= transform_name(transforms){ |part| part.capitalize }
36
+ @module_name ||= transform_name(transforms, &:capitalize)
34
37
  end
35
38
 
36
39
  def ruby_name
37
- @ruby_name ||= transform_name{ |part| part.downcase }
40
+ @ruby_name ||= transform_name(&:downcase)
38
41
  end
39
42
 
40
43
  private
@@ -42,15 +45,15 @@ class GGem::Gem
42
45
  def normalize_name(name)
43
46
  und_camelcs = [/([A-Z])([a-z])/, '_\1\2']
44
47
  rm_dup_und = [/_+/, "_"]
45
- rm_lead_und = [/^_/, "" ]
48
+ rm_lead_und = [/^_/, ""]
46
49
  name.gsub(*und_camelcs).gsub(*rm_dup_und).sub(*rm_lead_und).downcase
47
50
  end
48
51
 
49
52
  def transform_name(conditions = {}, &block)
50
- n = (block ? block.call(self.name) : self.name)
53
+ n = (block ? block.call(name) : name)
51
54
  conditions.each do |on, glue|
52
55
  if (a = n.split(on)).size > 1
53
- n = a.map{ |part| block.call(part) if block }.join(glue)
56
+ n = a.map{ |part| block&.call(part) }.join(glue)
54
57
  end
55
58
  end
56
59
  n