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.
- checksums.yaml +7 -7
- data/Gemfile +5 -1
- data/README.md +2 -2
- data/bin/ggem +2 -1
- data/ggem.gemspec +9 -6
- data/lib/ggem.rb +4 -2
- data/lib/ggem/cli.rb +51 -54
- data/lib/ggem/cli/clirb.rb +46 -48
- data/lib/ggem/cli/commands.rb +21 -53
- data/lib/ggem/gem.rb +45 -43
- data/lib/ggem/gemspec.rb +62 -65
- data/lib/ggem/git_repo.rb +41 -44
- data/lib/ggem/template.rb +49 -49
- data/lib/ggem/template_file/Gemfile.erb +5 -1
- data/lib/ggem/template_file/README.md.erb +4 -4
- data/lib/ggem/template_file/gemspec.erb +12 -8
- data/lib/ggem/template_file/lib.rb.erb +4 -2
- data/lib/ggem/template_file/lib_version.rb.erb +3 -1
- data/lib/ggem/template_file/ruby-version.erb +1 -0
- data/lib/ggem/template_file/test_helper.rb.erb +8 -15
- data/lib/ggem/template_file/test_support_factory.rb.erb +3 -2
- data/lib/ggem/version.rb +3 -1
- data/log/.keep +0 -0
- data/test/helper.rb +12 -19
- data/test/support/cmd_tests_helpers.rb +36 -39
- data/test/support/factory.rb +3 -2
- data/test/support/gem1/gem1.gemspec +3 -1
- data/test/support/gem2/gem2.gemspec +4 -2
- data/test/support/name_set.rb +54 -52
- data/test/system/ggem_tests.rb +9 -12
- data/test/unit/cli_tests.rb +79 -108
- data/test/unit/gem_tests.rb +3 -5
- data/test/unit/gemspec_tests.rb +21 -26
- data/test/unit/git_repo_tests.rb +5 -14
- metadata +63 -56
- data/.gitignore +0 -19
data/test/unit/cli_tests.rb
CHANGED
@@ -1,15 +1,16 @@
|
|
1
|
-
|
2
|
-
require 'ggem/cli'
|
1
|
+
# frozen_string_literal: true
|
3
2
|
|
4
|
-
require
|
5
|
-
require
|
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
|
-
|
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[
|
37
|
-
assert_instance_of BuildCommand, COMMANDS[
|
38
|
-
assert_instance_of InstallCommand, COMMANDS[
|
39
|
-
assert_instance_of PushCommand, COMMANDS[
|
40
|
-
assert_instance_of TagCommand, COMMANDS[
|
41
|
-
assert_instance_of ReleaseCommand, COMMANDS[
|
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[
|
44
|
-
assert_same COMMANDS[
|
45
|
-
assert_same COMMANDS[
|
46
|
-
assert_same COMMANDS[
|
47
|
-
assert_same COMMANDS[
|
48
|
-
assert_same COMMANDS[
|
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 = "
|
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([
|
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([
|
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([
|
230
|
-
assert_raises(CLIRB::VersionExit){ subject.new.run([
|
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,
|
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
|
272
|
+
option "test", "testing", :abbrev => "t"
|
284
273
|
end
|
285
|
-
cmd.run([
|
286
|
-
assert_true cmd.clirb.opts[
|
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
|
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(
|
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(
|
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[
|
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[
|
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[
|
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[
|
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[
|
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[
|
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[
|
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[
|
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[
|
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([
|
649
|
-
assert_true subject.clirb.opts[
|
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[
|
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[
|
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[
|
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[
|
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([[
|
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 = [[
|
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 [
|
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
|
814
|
+
assert_equal "", subject.to_s
|
840
815
|
|
841
|
-
subject.add(CommandSpy,
|
816
|
+
subject.add(CommandSpy, "test", "t", "tst")
|
842
817
|
assert_equal 1, subject.size
|
843
818
|
|
844
|
-
assert_instance_of CommandSpy, subject[
|
845
|
-
assert_same subject[
|
846
|
-
assert_same subject[
|
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[
|
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,
|
852
|
-
exp_strs << "add1 # #{subject[
|
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,
|
830
|
+
Assert.stub(@cmd_spy, :summary){ [nil, ""].sample }
|
856
831
|
Assert.stub(CommandSpy, :new){ @cmd_spy }
|
857
832
|
|
858
|
-
subject.add(CommandSpy,
|
833
|
+
subject.add(CommandSpy, "add2", "add")
|
859
834
|
exp_strs << "add2 (add) "
|
860
835
|
|
861
|
-
subject.add(CommandSpy,
|
862
|
-
Assert.stub(subject[
|
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(
|
868
|
-
subject.remove(
|
869
|
-
subject.remove(
|
870
|
-
subject.remove(
|
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
|
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
|
-
[
|
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
|
-
[
|
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
|
-
[
|
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
|
-
[
|
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
|
-
[
|
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
|
-
[
|
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
|
-
[
|
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
|
-
[
|
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
|
-
[
|
1030
|
+
["push", 0, "push cmd was run"]
|
1058
1031
|
end
|
1059
|
-
|
1060
1032
|
end
|
1061
|
-
|
1062
1033
|
end
|