ggem 1.8.4 → 1.9.4

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.
@@ -1,15 +1,16 @@
1
- require 'assert'
2
- require 'ggem/cli'
1
+ # frozen_string_literal: true
3
2
 
4
- require 'ggem/cli/clirb'
5
- require 'ggem/cli/commands'
6
- require 'ggem/gem'
7
- require 'ggem/gemspec'
8
- require 'ggem/git_repo'
9
- require 'much-plugin'
3
+ require "assert"
4
+ require "ggem/cli"
10
5
 
11
- class GGem::CLI
6
+ require "ggem/cli/clirb"
7
+ require "ggem/cli/commands"
8
+ require "ggem/gem"
9
+ require "ggem/gemspec"
10
+ require "ggem/git_repo"
11
+ require "much-plugin"
12
12
 
13
+ class GGem::CLI
13
14
  class UnitTests < Assert::Context
14
15
  desc "GGem::CLI"
15
16
  setup do
@@ -33,21 +34,20 @@ class GGem::CLI
33
34
 
34
35
  assert_instance_of InvalidCommand, COMMANDS[Factory.string]
35
36
 
36
- assert_instance_of GenerateCommand, COMMANDS['generate']
37
- assert_instance_of BuildCommand, COMMANDS['build']
38
- assert_instance_of InstallCommand, COMMANDS['install']
39
- assert_instance_of PushCommand, COMMANDS['push']
40
- assert_instance_of TagCommand, COMMANDS['tag']
41
- assert_instance_of ReleaseCommand, COMMANDS['release']
37
+ assert_instance_of GenerateCommand, COMMANDS["generate"]
38
+ assert_instance_of BuildCommand, COMMANDS["build"]
39
+ assert_instance_of InstallCommand, COMMANDS["install"]
40
+ assert_instance_of PushCommand, COMMANDS["push"]
41
+ assert_instance_of TagCommand, COMMANDS["tag"]
42
+ assert_instance_of ReleaseCommand, COMMANDS["release"]
42
43
 
43
- assert_same COMMANDS['generate'], COMMANDS['g']
44
- assert_same COMMANDS['build'], COMMANDS['b']
45
- assert_same COMMANDS['install'], COMMANDS['i']
46
- assert_same COMMANDS['push'], COMMANDS['p']
47
- assert_same COMMANDS['tag'], COMMANDS['t']
48
- assert_same COMMANDS['release'], COMMANDS['r']
44
+ assert_same COMMANDS["generate"], COMMANDS["g"]
45
+ assert_same COMMANDS["build"], COMMANDS["b"]
46
+ assert_same COMMANDS["install"], COMMANDS["i"]
47
+ assert_same COMMANDS["push"], COMMANDS["p"]
48
+ assert_same COMMANDS["tag"], COMMANDS["t"]
49
+ assert_same COMMANDS["release"], COMMANDS["r"]
49
50
  end
50
-
51
51
  end
52
52
 
53
53
  class InitTests < UnitTests
@@ -62,7 +62,6 @@ class GGem::CLI
62
62
  subject{ @cli }
63
63
 
64
64
  should have_imeths :run
65
-
66
65
  end
67
66
 
68
67
  class RunSetupTests < InitTests
@@ -80,7 +79,6 @@ class GGem::CLI
80
79
  teardown do
81
80
  COMMANDS.remove(@command_name)
82
81
  end
83
-
84
82
  end
85
83
 
86
84
  class RunTests < RunSetupTests
@@ -96,7 +94,6 @@ class GGem::CLI
96
94
  should "have successfully exited" do
97
95
  assert_equal 0, @kernel_spy.exit_status
98
96
  end
99
-
100
97
  end
101
98
 
102
99
  class RunWithNoArgsTests < RunSetupTests
@@ -113,7 +110,6 @@ class GGem::CLI
113
110
  should "have successfully exited" do
114
111
  assert_equal 0, @kernel_spy.exit_status
115
112
  end
116
-
117
113
  end
118
114
 
119
115
  class RunWithInvalidCommandTests < RunSetupTests
@@ -125,7 +121,7 @@ class GGem::CLI
125
121
  end
126
122
 
127
123
  should "output that it is invalid and output the invalid command's help" do
128
- exp = "'#{@name}' is not a command.\n\n"
124
+ exp = "`#{@name}` is not a command.\n\n"
129
125
  assert_equal exp, @stderr.read
130
126
  assert_equal @invalid_command.help, @stdout.read
131
127
  end
@@ -133,7 +129,6 @@ class GGem::CLI
133
129
  should "have unsuccessfully exited" do
134
130
  assert_equal 1, @kernel_spy.exit_status
135
131
  end
136
-
137
132
  end
138
133
 
139
134
  class RunWithCommandExitErrorTests < RunSetupTests
@@ -147,13 +142,12 @@ class GGem::CLI
147
142
  assert_equal 1, @kernel_spy.exit_status
148
143
  assert_empty @stderr.read
149
144
  end
150
-
151
145
  end
152
146
 
153
147
  class RunWithHelpTests < RunSetupTests
154
148
  desc "and run with the help switch"
155
149
  setup do
156
- @cli.run([ '--help' ])
150
+ @cli.run([ "--help" ])
157
151
  end
158
152
 
159
153
  should "output the invalid command's help" do
@@ -164,13 +158,12 @@ class GGem::CLI
164
158
  should "have successfully exited" do
165
159
  assert_equal 0, @kernel_spy.exit_status
166
160
  end
167
-
168
161
  end
169
162
 
170
163
  class RunWithVersionTests < RunSetupTests
171
164
  desc "and run with the version switch"
172
165
  setup do
173
- @cli.run([ '--version' ])
166
+ @cli.run([ "--version" ])
174
167
  end
175
168
 
176
169
  should "have output its version" do
@@ -181,7 +174,6 @@ class GGem::CLI
181
174
  should "have successfully exited" do
182
175
  assert_equal 0, @kernel_spy.exit_status
183
176
  end
184
-
185
177
  end
186
178
 
187
179
  class RunWithErrorTests < RunSetupTests
@@ -201,7 +193,6 @@ class GGem::CLI
201
193
  should "have unsuccessfully exited" do
202
194
  assert_equal 1, @kernel_spy.exit_status
203
195
  end
204
-
205
196
  end
206
197
 
207
198
  class InvalidCommandTests < UnitTests
@@ -226,12 +217,12 @@ class GGem::CLI
226
217
  end
227
218
 
228
219
  should "parse its argv on run" do
229
- assert_raises(CLIRB::HelpExit){ subject.new.run([ '--help' ]) }
230
- assert_raises(CLIRB::VersionExit){ subject.new.run([ '--version' ]) }
220
+ assert_raises(CLIRB::HelpExit){ subject.new.run([ "--help" ]) }
221
+ assert_raises(CLIRB::VersionExit){ subject.new.run([ "--version" ]) }
231
222
  end
232
223
 
233
224
  should "raise a help exit if its name is empty" do
234
- cmd = @command_class.new([nil, ''].sample)
225
+ cmd = @command_class.new([nil, ""].sample)
235
226
  argv = [Factory.string, Factory.string]
236
227
  assert_raises(CLIRB::HelpExit){ cmd.new.run(argv) }
237
228
  end
@@ -247,7 +238,6 @@ class GGem::CLI
247
238
  "#{COMMANDS.to_s.split("\n").map{ |l| " #{l}" }.join("\n")}\n"
248
239
  assert_equal exp, subject.help
249
240
  end
250
-
251
241
  end
252
242
 
253
243
  class IOCommandTests < UnitTests
@@ -256,7 +246,6 @@ class GGem::CLI
256
246
  @stdout, @stderr = IOSpy.new, IOSpy.new
257
247
  end
258
248
  subject{ @cmd }
259
-
260
249
  end
261
250
 
262
251
  class ValidCommandTests < IOCommandTests
@@ -280,22 +269,21 @@ class GGem::CLI
280
269
 
281
270
  should "take custom CLIRB build procs" do
282
271
  cmd = @command_class.new do
283
- option 'test', 'testing', :abbrev => 't'
272
+ option "test", "testing", :abbrev => "t"
284
273
  end
285
- cmd.run(['-t'], @stdout, @stderr)
286
- assert_true cmd.clirb.opts['test']
274
+ cmd.run(["-t"], @stdout, @stderr)
275
+ assert_true cmd.clirb.opts["test"]
287
276
  end
288
277
 
289
278
  should "default its summary" do
290
- assert_equal '', subject.summary
279
+ assert_equal "", subject.summary
291
280
  end
292
-
293
281
  end
294
282
 
295
283
  class GitRepoCommandTests < IOCommandTests
296
284
  desc "GitRepoCommand"
297
285
  setup do
298
- @gem1_root_path = TEST_SUPPORT_PATH.join('gem1')
286
+ @gem1_root_path = TEST_SUPPORT_PATH.join("gem1")
299
287
  Assert.stub(Dir, :pwd){ @gem1_root_path}
300
288
 
301
289
  @command_class = Class.new{ include GitRepoCommand }
@@ -314,7 +302,6 @@ class GGem::CLI
314
302
  @command_class.new
315
303
  assert_equal [Dir.pwd], gitrepo_new_called_with
316
304
  end
317
-
318
305
  end
319
306
 
320
307
  module RootPathTests
@@ -326,7 +313,6 @@ class GGem::CLI
326
313
  Assert.stub(Dir, :pwd){ @root_path }
327
314
  end
328
315
  end
329
-
330
316
  end
331
317
 
332
318
  module GitRepoSpyTests
@@ -339,9 +325,7 @@ class GGem::CLI
339
325
  @repo_spy = nil
340
326
  Assert.stub(GGem::GitRepo, :new){ |*args| @repo_spy = GitRepoSpy.new(*args) }
341
327
  end
342
-
343
328
  end
344
-
345
329
  end
346
330
 
347
331
  class GenerateCommandTests < IOCommandTests
@@ -411,13 +395,12 @@ class GGem::CLI
411
395
  assert_equal exp, err.message
412
396
  assert_not_empty err.backtrace
413
397
  end
414
-
415
398
  end
416
399
 
417
400
  class GemspecCommandTests < IOCommandTests
418
401
  desc "GemspecCommand"
419
402
  setup do
420
- @gem1_root_path = TEST_SUPPORT_PATH.join('gem1')
403
+ @gem1_root_path = TEST_SUPPORT_PATH.join("gem1")
421
404
  Assert.stub(Dir, :pwd){ @gem1_root_path}
422
405
 
423
406
  @command_class = Class.new{ include GemspecCommand }
@@ -449,7 +432,6 @@ class GGem::CLI
449
432
  exp = "There are no gemspecs at #{Dir.pwd}"
450
433
  assert_equal exp, err.message
451
434
  end
452
-
453
435
  end
454
436
 
455
437
  module GemspecSpyTests
@@ -463,7 +445,6 @@ class GGem::CLI
463
445
  Assert.stub(GGem::Gemspec, :new){ |*args| @spec_spy = GemspecSpy.new(*args) }
464
446
  end
465
447
  end
466
-
467
448
  end
468
449
 
469
450
  class BuildCommandTests < IOCommandTests
@@ -494,16 +475,16 @@ class GGem::CLI
494
475
  end
495
476
 
496
477
  should "call the spec's run build cmd when run" do
497
- ENV['DEBUG'] = [nil, '1'].sample
478
+ ENV["DEBUG"] = [nil, "1"].sample
498
479
  subject.run([], @stdout, @stderr)
499
480
 
500
481
  assert_true @spec_spy.run_build_cmd_called
501
482
 
502
- exp = ENV['DEBUG'] == '1' ? "build\nbuild cmd was run\n" : ''
483
+ exp = ENV["DEBUG"] == "1" ? "build\nbuild cmd was run\n" : ""
503
484
  exp += "#{@spec_spy.name} #{@spec_spy.version} built to #{@spec_spy.gem_file}\n"
504
485
  assert_equal exp, @stdout.read
505
486
 
506
- ENV['DEBUG'] = nil
487
+ ENV["DEBUG"] = nil
507
488
  end
508
489
 
509
490
  should "handle cmd errors when run" do
@@ -513,7 +494,6 @@ class GGem::CLI
513
494
  assert_raises(CommandExitError){ subject.run([], @stdout, @stderr) }
514
495
  assert_equal "#{err_msg}\n", @stderr.read
515
496
  end
516
-
517
497
  end
518
498
 
519
499
  class InstallCommandTests < IOCommandTests
@@ -550,18 +530,18 @@ class GGem::CLI
550
530
  end
551
531
 
552
532
  should "run the build command and call the spec's run install cmds when run" do
553
- ENV['DEBUG'] = [nil, '1'].sample
533
+ ENV["DEBUG"] = [nil, "1"].sample
554
534
  subject.run(@argv, @stdout, @stderr)
555
535
 
556
536
  assert_true @build_spy.run_called
557
537
  assert_equal [], @build_spy.argv
558
538
  assert_true @spec_spy.run_install_cmd_called
559
539
 
560
- exp = ENV['DEBUG'] == '1' ? "install\ninstall cmd was run\n" : ''
540
+ exp = ENV["DEBUG"] == "1" ? "install\ninstall cmd was run\n" : ""
561
541
  exp += "#{@spec_spy.name} #{@spec_spy.version} installed to system gems\n"
562
542
  assert_includes exp, @stdout.read
563
543
 
564
- ENV['DEBUG'] = nil
544
+ ENV["DEBUG"] = nil
565
545
  end
566
546
 
567
547
  should "handle cmd errors when run" do
@@ -571,7 +551,6 @@ class GGem::CLI
571
551
  assert_raises(CommandExitError){ subject.run(@argv, @stdout, @stderr) }
572
552
  assert_equal "#{err_msg}\n", @stderr.read
573
553
  end
574
-
575
554
  end
576
555
 
577
556
  class PushCommandTests < IOCommandTests
@@ -608,7 +587,7 @@ class GGem::CLI
608
587
  end
609
588
 
610
589
  should "run the build command and call the spec's run push cmds when run" do
611
- ENV['DEBUG'] = [nil, '1'].sample
590
+ ENV["DEBUG"] = [nil, "1"].sample
612
591
  subject.run(@argv, @stdout, @stderr)
613
592
 
614
593
  assert_true @build_spy.run_called
@@ -616,11 +595,11 @@ class GGem::CLI
616
595
  assert_true @spec_spy.run_push_cmd_called
617
596
 
618
597
  exp = "Pushing #{@spec_spy.gem_file_name} to #{@spec_spy.push_host}...\n"
619
- exp += ENV['DEBUG'] == '1' ? "push\npush cmd was run\n" : ''
598
+ exp += ENV["DEBUG"] == "1" ? "push\npush cmd was run\n" : ""
620
599
  exp += "#{@spec_spy.gem_file_name} received.\n"
621
600
  assert_equal exp, @stdout.read
622
601
 
623
- ENV['DEBUG'] = nil
602
+ ENV["DEBUG"] = nil
624
603
  end
625
604
 
626
605
  should "handle cmd errors when run" do
@@ -630,7 +609,6 @@ class GGem::CLI
630
609
  assert_raises(CommandExitError){ subject.run(@argv, @stdout, @stderr) }
631
610
  assert_equal "#{err_msg}\n", @stderr.read
632
611
  end
633
-
634
612
  end
635
613
 
636
614
  class ForceTagOptionCommandTests < IOCommandTests
@@ -645,10 +623,9 @@ class GGem::CLI
645
623
  end
646
624
 
647
625
  should "add a force-tag CLIRB option" do
648
- subject.run(['-f'], @stdout, @stderr)
649
- assert_true subject.clirb.opts['force-tag']
626
+ subject.run(["-f"], @stdout, @stderr)
627
+ assert_true subject.clirb.opts["force-tag"]
650
628
  end
651
-
652
629
  end
653
630
 
654
631
  class TagCommandTests < IOCommandTests
@@ -681,7 +658,7 @@ class GGem::CLI
681
658
  end
682
659
 
683
660
  should "call the repo's run build/push cmds when run" do
684
- ENV['DEBUG'] = [nil, '1'].sample
661
+ ENV["DEBUG"] = [nil, "1"].sample
685
662
  subject.run([], @stdout, @stderr)
686
663
 
687
664
  assert_true @repo_spy.run_validate_clean_cmd_called
@@ -693,19 +670,19 @@ class GGem::CLI
693
670
  assert_true @repo_spy.run_push_cmd_called
694
671
  assert_nil @repo_spy.run_rm_tag_cmd_called_with
695
672
 
696
- exp = if ENV['DEBUG'] == '1'
673
+ exp = if ENV["DEBUG"] == "1"
697
674
  "validate clean\nvalidate clean cmd was run\n" \
698
675
  "validate committed\nvalidate committed cmd was run\n" \
699
676
  "add tag\nadd tag cmd was run\n"
700
677
  else
701
- ''
678
+ ""
702
679
  end
703
680
  exp += "Tagged #{@spec_spy.version_tag}.\n"
704
- exp += ENV['DEBUG'] == '1' ? "push\npush cmd was run\n" : ''
681
+ exp += ENV["DEBUG"] == "1" ? "push\npush cmd was run\n" : ""
705
682
  exp += "Pushed git commits and tags.\n"
706
683
  assert_equal exp, @stdout.read
707
684
 
708
- ENV['DEBUG'] = nil
685
+ ENV["DEBUG"] = nil
709
686
  end
710
687
 
711
688
  should "handle validation cmd errors when run" do
@@ -723,7 +700,7 @@ class GGem::CLI
723
700
  err_on = [:run_validate_clean_cmd, :run_validate_committed_cmd].sample
724
701
  Assert.stub(@repo_spy, err_on){ raise GGem::GitRepo::CmdError, err_msg }
725
702
 
726
- subject.run([['--force-tag', '-f'].sample], @stdout, @stderr)
703
+ subject.run([["--force-tag", "-f"].sample], @stdout, @stderr)
727
704
  exp = "There are files that need to be committed first.\n" \
728
705
  "Forcing tag anyway...\n"
729
706
  assert_equal exp, @stderr.read
@@ -757,7 +734,6 @@ class GGem::CLI
757
734
  assert_raises(CommandExitError){ subject.run([], @stdout, @stderr) }
758
735
  assert_equal "#{err_msg}\n", @stderr.read
759
736
  end
760
-
761
737
  end
762
738
 
763
739
  class ReleaseCommandTests < IOCommandTests
@@ -812,16 +788,15 @@ class GGem::CLI
812
788
  end
813
789
 
814
790
  should "pass any force-tag option to the tag cmd but not the release cmd" do
815
- force_tag_argv = [['--force-tag', '-f'].sample]
791
+ force_tag_argv = [["--force-tag", "-f"].sample]
816
792
  subject.run(force_tag_argv, @stdout, @stderr)
817
793
 
818
794
  assert_true @tag_spy.run_called
819
- assert_equal ['--force-tag'], @tag_spy.argv
795
+ assert_equal ["--force-tag"], @tag_spy.argv
820
796
 
821
797
  assert_true @push_spy.run_called
822
798
  assert_equal [], @push_spy.argv
823
799
  end
824
-
825
800
  end
826
801
 
827
802
  class CommandSetTests < UnitTests
@@ -836,41 +811,41 @@ class GGem::CLI
836
811
 
837
812
  should "add/rm commands, be able to look them up and know its size" do
838
813
  assert_equal 0, subject.size
839
- assert_equal '', subject.to_s
814
+ assert_equal "", subject.to_s
840
815
 
841
- subject.add(CommandSpy, 'test', 't', 'tst')
816
+ subject.add(CommandSpy, "test", "t", "tst")
842
817
  assert_equal 1, subject.size
843
818
 
844
- assert_instance_of CommandSpy, subject['test']
845
- assert_same subject['test'], subject['t']
846
- assert_same subject['test'], subject['tst']
819
+ assert_instance_of CommandSpy, subject["test"]
820
+ assert_same subject["test"], subject["t"]
821
+ assert_same subject["test"], subject["tst"]
847
822
 
848
- exp_strs = ["test (t, tst) # #{subject['test'].summary}"]
823
+ exp_strs = ["test (t, tst) # #{subject["test"].summary}"]
849
824
  assert_equal exp_strs.join("\n"), subject.to_s
850
825
 
851
- subject.add(CommandSpy, 'add1')
852
- exp_strs << "add1 # #{subject['add1'].summary}"
826
+ subject.add(CommandSpy, "add1")
827
+ exp_strs << "add1 # #{subject["add1"].summary}"
853
828
 
854
829
  @cmd_spy = CommandSpy.new
855
- Assert.stub(@cmd_spy, :summary){ [nil, ''].sample }
830
+ Assert.stub(@cmd_spy, :summary){ [nil, ""].sample }
856
831
  Assert.stub(CommandSpy, :new){ @cmd_spy }
857
832
 
858
- subject.add(CommandSpy, 'add2', 'add')
833
+ subject.add(CommandSpy, "add2", "add")
859
834
  exp_strs << "add2 (add) "
860
835
 
861
- subject.add(CommandSpy, 'add3')
862
- Assert.stub(subject['add3'], :summary){ [nil, ''].sample }
836
+ subject.add(CommandSpy, "add3")
837
+ Assert.stub(subject["add3"], :summary){ [nil, ""].sample }
863
838
  exp_strs << "add3 "
864
839
 
865
840
  assert_equal exp_strs.join("\n"), subject.to_s
866
841
 
867
- subject.remove('test')
868
- subject.remove('add1')
869
- subject.remove('add2')
870
- subject.remove('add3')
842
+ subject.remove("test")
843
+ subject.remove("add1")
844
+ subject.remove("add2")
845
+ subject.remove("add3")
871
846
 
872
847
  assert_equal 0, subject.size
873
- assert_equal '', subject.to_s
848
+ assert_equal "", subject.to_s
874
849
  end
875
850
 
876
851
  should "call the given block when looking up unknown command names" do
@@ -878,7 +853,6 @@ class GGem::CLI
878
853
  subject[unknown_cmd_name]
879
854
  assert_equal [unknown_cmd_name], @unknown_cmd_block_called_with
880
855
  end
881
-
882
856
  end
883
857
 
884
858
  class CLISpy
@@ -991,19 +965,18 @@ class GGem::CLI
991
965
 
992
966
  def run_build_cmd
993
967
  @run_build_cmd_called = true
994
- ['build', 0, 'build cmd was run']
968
+ ["build", 0, "build cmd was run"]
995
969
  end
996
970
 
997
971
  def run_install_cmd
998
972
  @run_install_cmd_called = true
999
- ['install', 0, 'install cmd was run']
973
+ ["install", 0, "install cmd was run"]
1000
974
  end
1001
975
 
1002
976
  def run_push_cmd
1003
977
  @run_push_cmd_called = true
1004
- ['push', 0, 'push cmd was run']
978
+ ["push", 0, "push cmd was run"]
1005
979
  end
1006
-
1007
980
  end
1008
981
 
1009
982
  class GitRepoSpy
@@ -1029,34 +1002,32 @@ class GGem::CLI
1029
1002
 
1030
1003
  def run_init_cmd
1031
1004
  @run_init_cmd_called = true
1032
- ['init', 0, 'init cmd was run']
1005
+ ["init", 0, "init cmd was run"]
1033
1006
  end
1034
1007
 
1035
1008
  def run_validate_clean_cmd
1036
1009
  @run_validate_clean_cmd_called = true
1037
- ['validate clean', 0, 'validate clean cmd was run']
1010
+ ["validate clean", 0, "validate clean cmd was run"]
1038
1011
  end
1039
1012
 
1040
1013
  def run_validate_committed_cmd
1041
1014
  @run_validate_committed_cmd_called = true
1042
- ['validate committed', 0, 'validate committed cmd was run']
1015
+ ["validate committed", 0, "validate committed cmd was run"]
1043
1016
  end
1044
1017
 
1045
1018
  def run_add_version_tag_cmd(*args)
1046
1019
  @run_add_version_tag_cmd_called_with = args
1047
- ['add tag', 0, 'add tag cmd was run']
1020
+ ["add tag", 0, "add tag cmd was run"]
1048
1021
  end
1049
1022
 
1050
1023
  def run_rm_tag_cmd(*args)
1051
1024
  @run_rm_tag_cmd_called_with = args
1052
- ['rm tag', 0, 'rm tag cmd was run']
1025
+ ["rm tag", 0, "rm tag cmd was run"]
1053
1026
  end
1054
1027
 
1055
1028
  def run_push_cmd
1056
1029
  @run_push_cmd_called = true
1057
- ['push', 0, 'push cmd was run']
1030
+ ["push", 0, "push cmd was run"]
1058
1031
  end
1059
-
1060
1032
  end
1061
-
1062
1033
  end