ggem 1.9.1 → 1.9.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -2
- data/README.md +0 -3
- data/ggem.gemspec +3 -3
- data/lib/ggem/cli.rb +45 -50
- data/lib/ggem/cli/clirb.rb +44 -48
- data/lib/ggem/cli/commands.rb +5 -39
- data/lib/ggem/gem.rb +41 -41
- data/lib/ggem/gemspec.rb +65 -70
- data/lib/ggem/git_repo.rb +37 -42
- data/lib/ggem/template.rb +50 -58
- data/lib/ggem/template_file/Gemfile.erb +2 -2
- data/lib/ggem/template_file/README.md.erb +3 -3
- data/lib/ggem/template_file/gemspec.erb +5 -6
- data/lib/ggem/template_file/lib.rb.erb +2 -2
- data/lib/ggem/template_file/lib_version.rb.erb +1 -1
- data/lib/ggem/template_file/ruby-version.erb +1 -1
- data/lib/ggem/template_file/test_support_factory.rb.erb +0 -1
- data/lib/ggem/version.rb +1 -1
- data/log/{.gitkeep → .keep} +0 -0
- data/test/support/cmd_tests_helpers.rb +33 -38
- data/test/support/factory.rb +0 -1
- data/test/support/name_set.rb +53 -59
- data/test/system/ggem_tests.rb +0 -5
- data/test/unit/cli_tests.rb +0 -31
- data/test/unit/gem_tests.rb +0 -4
- data/test/unit/gemspec_tests.rb +1 -8
- data/test/unit/git_repo_tests.rb +1 -12
- metadata +10 -12
- data/lib/ggem/template_file/circleci_config.yml.erb +0 -82
data/lib/ggem/version.rb
CHANGED
data/log/{.gitkeep → .keep}
RENAMED
File without changes
|
@@ -1,53 +1,48 @@
|
|
1
1
|
require "much-plugin"
|
2
2
|
require "scmd"
|
3
3
|
|
4
|
-
module GGem
|
4
|
+
module GGem; end
|
5
|
+
module GGem::CmdTestsHelpers
|
6
|
+
include MuchPlugin
|
5
7
|
|
6
|
-
|
7
|
-
|
8
|
+
plugin_included do
|
9
|
+
setup do
|
10
|
+
ENV["SCMD_TEST_MODE"] = "1"
|
8
11
|
|
9
|
-
|
10
|
-
|
11
|
-
ENV["SCMD_TEST_MODE"] = "1"
|
12
|
+
@cmd_spy = nil
|
13
|
+
Scmd.reset
|
12
14
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
Scmd.reset
|
20
|
-
ENV.delete("SCMD_TEST_MODE")
|
21
|
-
end
|
15
|
+
@exp_cmds_run = []
|
16
|
+
end
|
17
|
+
teardown do
|
18
|
+
Scmd.reset
|
19
|
+
ENV.delete("SCMD_TEST_MODE")
|
20
|
+
end
|
22
21
|
|
23
|
-
|
22
|
+
private
|
24
23
|
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
def assert_exp_cmds_run(&run_cmd_block)
|
25
|
+
cmd_str, exitstatus, stdout = run_cmd_block.call
|
26
|
+
assert_equal @exp_cmds_run, Scmd.calls.map(&:cmd_str)
|
28
27
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
28
|
+
assert_equal Scmd.calls.first.cmd_str, cmd_str
|
29
|
+
assert_equal Scmd.calls.first.cmd.exitstatus, exitstatus
|
30
|
+
assert_equal Scmd.calls.first.cmd.stdout, stdout
|
31
|
+
end
|
33
32
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
end
|
41
|
-
err = nil
|
42
|
-
begin; run_cmd_block.call; rescue StandardError => err; end
|
43
|
-
|
44
|
-
assert_kind_of cmd_error_class, err
|
45
|
-
exp = "#{@cmd_spy.cmd_str}\n#{@cmd_spy.stderr}"
|
46
|
-
assert_equal exp, err.message
|
33
|
+
def assert_exp_cmds_error(cmd_error_class, &run_cmd_block)
|
34
|
+
err_cmd_str = @exp_cmds_run.sample
|
35
|
+
Scmd.add_command(err_cmd_str) do |cmd|
|
36
|
+
cmd.exitstatus = 1
|
37
|
+
cmd.stderr = Factory.string
|
38
|
+
@cmd_spy = cmd
|
47
39
|
end
|
40
|
+
err = nil
|
41
|
+
begin; run_cmd_block.call; rescue StandardError => err; end
|
48
42
|
|
43
|
+
assert_kind_of cmd_error_class, err
|
44
|
+
exp = "#{@cmd_spy.cmd_str}\n#{@cmd_spy.stderr}"
|
45
|
+
assert_equal exp, err.message
|
49
46
|
end
|
50
|
-
|
51
47
|
end
|
52
|
-
|
53
48
|
end
|
data/test/support/factory.rb
CHANGED
data/test/support/name_set.rb
CHANGED
@@ -1,73 +1,67 @@
|
|
1
|
-
module GGem
|
2
|
-
|
1
|
+
module GGem; end
|
2
|
+
module GGem::NameSet
|
3
|
+
class Base
|
4
|
+
attr_reader :variations, :name, :module_name, :ruby_name
|
3
5
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
"log",
|
17
|
-
"tmp"
|
18
|
-
]
|
19
|
-
end
|
20
|
-
|
21
|
-
def expected_files
|
22
|
-
[ ".circleci/config.yml",
|
6
|
+
def expected_folders
|
7
|
+
[ "",
|
8
|
+
"lib",
|
9
|
+
"lib/#{@ruby_name}",
|
10
|
+
"test",
|
11
|
+
"test/support",
|
12
|
+
"test/system",
|
13
|
+
"test/unit",
|
14
|
+
"log",
|
15
|
+
"tmp"
|
16
|
+
]
|
17
|
+
end
|
23
18
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
19
|
+
def expected_files
|
20
|
+
[ ".ruby-version",
|
21
|
+
".gitignore",
|
22
|
+
"Gemfile",
|
23
|
+
"#{@name}.gemspec",
|
24
|
+
"README.md",
|
25
|
+
"LICENSE",
|
30
26
|
|
31
|
-
|
32
|
-
|
27
|
+
"lib/#{@ruby_name}.rb",
|
28
|
+
"lib/#{@ruby_name}/version.rb",
|
33
29
|
|
34
|
-
|
35
|
-
|
30
|
+
"test/helper.rb",
|
31
|
+
"test/support/factory.rb",
|
36
32
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
end
|
33
|
+
"log/.keep",
|
34
|
+
"test/system/.keep",
|
35
|
+
"test/unit/.keep",
|
36
|
+
"tmp/.keep",
|
37
|
+
]
|
43
38
|
end
|
39
|
+
end
|
44
40
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
end
|
41
|
+
class Simple < Base
|
42
|
+
def initialize
|
43
|
+
@variations = ["simple"]
|
44
|
+
@name = "simple"
|
45
|
+
@module_name = "Simple"
|
46
|
+
@ruby_name = "simple"
|
52
47
|
end
|
48
|
+
end
|
53
49
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
end
|
50
|
+
class Underscored < Base
|
51
|
+
def initialize
|
52
|
+
@variations = ["my_gem", "my__gem", "MyGem", "myGem", "My_Gem"]
|
53
|
+
@name = "my_gem"
|
54
|
+
@module_name = "MyGem"
|
55
|
+
@ruby_name = "my_gem"
|
61
56
|
end
|
57
|
+
end
|
62
58
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
end
|
59
|
+
class HyphenatedOther < Base
|
60
|
+
def initialize
|
61
|
+
@variations = ["my-gem"]
|
62
|
+
@name = "my-gem"
|
63
|
+
@module_name = "MyGem"
|
64
|
+
@ruby_name = "my-gem"
|
70
65
|
end
|
71
|
-
|
72
66
|
end
|
73
67
|
end
|
data/test/system/ggem_tests.rb
CHANGED
@@ -4,7 +4,6 @@ require "ggem"
|
|
4
4
|
require "test/support/name_set"
|
5
5
|
|
6
6
|
module GGem
|
7
|
-
|
8
7
|
class SystemTests < Assert::Context
|
9
8
|
|
10
9
|
NS_SIMPLE = GGem::NameSet::Simple
|
@@ -12,7 +11,6 @@ module GGem
|
|
12
11
|
NS_HYPHEN = GGem::NameSet::HyphenatedOther
|
13
12
|
|
14
13
|
desc "GGem"
|
15
|
-
|
16
14
|
end
|
17
15
|
|
18
16
|
class GemTests < SystemTests
|
@@ -34,7 +32,6 @@ module GGem
|
|
34
32
|
assert_equal name_set.ruby_name, the_gem.ruby_name
|
35
33
|
end
|
36
34
|
end
|
37
|
-
|
38
35
|
end
|
39
36
|
|
40
37
|
class GemSaveTests < GemTests
|
@@ -67,7 +64,5 @@ module GGem
|
|
67
64
|
assert File.exists?(path), "`#{path}` does not exist"
|
68
65
|
end
|
69
66
|
end
|
70
|
-
|
71
67
|
end
|
72
|
-
|
73
68
|
end
|
data/test/unit/cli_tests.rb
CHANGED
@@ -9,7 +9,6 @@ require "ggem/git_repo"
|
|
9
9
|
require "much-plugin"
|
10
10
|
|
11
11
|
class GGem::CLI
|
12
|
-
|
13
12
|
class UnitTests < Assert::Context
|
14
13
|
desc "GGem::CLI"
|
15
14
|
setup do
|
@@ -47,7 +46,6 @@ class GGem::CLI
|
|
47
46
|
assert_same COMMANDS["tag"], COMMANDS["t"]
|
48
47
|
assert_same COMMANDS["release"], COMMANDS["r"]
|
49
48
|
end
|
50
|
-
|
51
49
|
end
|
52
50
|
|
53
51
|
class InitTests < UnitTests
|
@@ -62,7 +60,6 @@ class GGem::CLI
|
|
62
60
|
subject{ @cli }
|
63
61
|
|
64
62
|
should have_imeths :run
|
65
|
-
|
66
63
|
end
|
67
64
|
|
68
65
|
class RunSetupTests < InitTests
|
@@ -80,7 +77,6 @@ class GGem::CLI
|
|
80
77
|
teardown do
|
81
78
|
COMMANDS.remove(@command_name)
|
82
79
|
end
|
83
|
-
|
84
80
|
end
|
85
81
|
|
86
82
|
class RunTests < RunSetupTests
|
@@ -96,7 +92,6 @@ class GGem::CLI
|
|
96
92
|
should "have successfully exited" do
|
97
93
|
assert_equal 0, @kernel_spy.exit_status
|
98
94
|
end
|
99
|
-
|
100
95
|
end
|
101
96
|
|
102
97
|
class RunWithNoArgsTests < RunSetupTests
|
@@ -113,7 +108,6 @@ class GGem::CLI
|
|
113
108
|
should "have successfully exited" do
|
114
109
|
assert_equal 0, @kernel_spy.exit_status
|
115
110
|
end
|
116
|
-
|
117
111
|
end
|
118
112
|
|
119
113
|
class RunWithInvalidCommandTests < RunSetupTests
|
@@ -133,7 +127,6 @@ class GGem::CLI
|
|
133
127
|
should "have unsuccessfully exited" do
|
134
128
|
assert_equal 1, @kernel_spy.exit_status
|
135
129
|
end
|
136
|
-
|
137
130
|
end
|
138
131
|
|
139
132
|
class RunWithCommandExitErrorTests < RunSetupTests
|
@@ -147,7 +140,6 @@ class GGem::CLI
|
|
147
140
|
assert_equal 1, @kernel_spy.exit_status
|
148
141
|
assert_empty @stderr.read
|
149
142
|
end
|
150
|
-
|
151
143
|
end
|
152
144
|
|
153
145
|
class RunWithHelpTests < RunSetupTests
|
@@ -164,7 +156,6 @@ class GGem::CLI
|
|
164
156
|
should "have successfully exited" do
|
165
157
|
assert_equal 0, @kernel_spy.exit_status
|
166
158
|
end
|
167
|
-
|
168
159
|
end
|
169
160
|
|
170
161
|
class RunWithVersionTests < RunSetupTests
|
@@ -181,7 +172,6 @@ class GGem::CLI
|
|
181
172
|
should "have successfully exited" do
|
182
173
|
assert_equal 0, @kernel_spy.exit_status
|
183
174
|
end
|
184
|
-
|
185
175
|
end
|
186
176
|
|
187
177
|
class RunWithErrorTests < RunSetupTests
|
@@ -201,7 +191,6 @@ class GGem::CLI
|
|
201
191
|
should "have unsuccessfully exited" do
|
202
192
|
assert_equal 1, @kernel_spy.exit_status
|
203
193
|
end
|
204
|
-
|
205
194
|
end
|
206
195
|
|
207
196
|
class InvalidCommandTests < UnitTests
|
@@ -247,7 +236,6 @@ class GGem::CLI
|
|
247
236
|
"#{COMMANDS.to_s.split("\n").map{ |l| " #{l}" }.join("\n")}\n"
|
248
237
|
assert_equal exp, subject.help
|
249
238
|
end
|
250
|
-
|
251
239
|
end
|
252
240
|
|
253
241
|
class IOCommandTests < UnitTests
|
@@ -256,7 +244,6 @@ class GGem::CLI
|
|
256
244
|
@stdout, @stderr = IOSpy.new, IOSpy.new
|
257
245
|
end
|
258
246
|
subject{ @cmd }
|
259
|
-
|
260
247
|
end
|
261
248
|
|
262
249
|
class ValidCommandTests < IOCommandTests
|
@@ -289,7 +276,6 @@ class GGem::CLI
|
|
289
276
|
should "default its summary" do
|
290
277
|
assert_equal "", subject.summary
|
291
278
|
end
|
292
|
-
|
293
279
|
end
|
294
280
|
|
295
281
|
class GitRepoCommandTests < IOCommandTests
|
@@ -314,7 +300,6 @@ class GGem::CLI
|
|
314
300
|
@command_class.new
|
315
301
|
assert_equal [Dir.pwd], gitrepo_new_called_with
|
316
302
|
end
|
317
|
-
|
318
303
|
end
|
319
304
|
|
320
305
|
module RootPathTests
|
@@ -326,7 +311,6 @@ class GGem::CLI
|
|
326
311
|
Assert.stub(Dir, :pwd){ @root_path }
|
327
312
|
end
|
328
313
|
end
|
329
|
-
|
330
314
|
end
|
331
315
|
|
332
316
|
module GitRepoSpyTests
|
@@ -339,9 +323,7 @@ class GGem::CLI
|
|
339
323
|
@repo_spy = nil
|
340
324
|
Assert.stub(GGem::GitRepo, :new){ |*args| @repo_spy = GitRepoSpy.new(*args) }
|
341
325
|
end
|
342
|
-
|
343
326
|
end
|
344
|
-
|
345
327
|
end
|
346
328
|
|
347
329
|
class GenerateCommandTests < IOCommandTests
|
@@ -411,7 +393,6 @@ class GGem::CLI
|
|
411
393
|
assert_equal exp, err.message
|
412
394
|
assert_not_empty err.backtrace
|
413
395
|
end
|
414
|
-
|
415
396
|
end
|
416
397
|
|
417
398
|
class GemspecCommandTests < IOCommandTests
|
@@ -449,7 +430,6 @@ class GGem::CLI
|
|
449
430
|
exp = "There are no gemspecs at #{Dir.pwd}"
|
450
431
|
assert_equal exp, err.message
|
451
432
|
end
|
452
|
-
|
453
433
|
end
|
454
434
|
|
455
435
|
module GemspecSpyTests
|
@@ -463,7 +443,6 @@ class GGem::CLI
|
|
463
443
|
Assert.stub(GGem::Gemspec, :new){ |*args| @spec_spy = GemspecSpy.new(*args) }
|
464
444
|
end
|
465
445
|
end
|
466
|
-
|
467
446
|
end
|
468
447
|
|
469
448
|
class BuildCommandTests < IOCommandTests
|
@@ -513,7 +492,6 @@ class GGem::CLI
|
|
513
492
|
assert_raises(CommandExitError){ subject.run([], @stdout, @stderr) }
|
514
493
|
assert_equal "#{err_msg}\n", @stderr.read
|
515
494
|
end
|
516
|
-
|
517
495
|
end
|
518
496
|
|
519
497
|
class InstallCommandTests < IOCommandTests
|
@@ -571,7 +549,6 @@ class GGem::CLI
|
|
571
549
|
assert_raises(CommandExitError){ subject.run(@argv, @stdout, @stderr) }
|
572
550
|
assert_equal "#{err_msg}\n", @stderr.read
|
573
551
|
end
|
574
|
-
|
575
552
|
end
|
576
553
|
|
577
554
|
class PushCommandTests < IOCommandTests
|
@@ -630,7 +607,6 @@ class GGem::CLI
|
|
630
607
|
assert_raises(CommandExitError){ subject.run(@argv, @stdout, @stderr) }
|
631
608
|
assert_equal "#{err_msg}\n", @stderr.read
|
632
609
|
end
|
633
|
-
|
634
610
|
end
|
635
611
|
|
636
612
|
class ForceTagOptionCommandTests < IOCommandTests
|
@@ -648,7 +624,6 @@ class GGem::CLI
|
|
648
624
|
subject.run(["-f"], @stdout, @stderr)
|
649
625
|
assert_true subject.clirb.opts["force-tag"]
|
650
626
|
end
|
651
|
-
|
652
627
|
end
|
653
628
|
|
654
629
|
class TagCommandTests < IOCommandTests
|
@@ -757,7 +732,6 @@ class GGem::CLI
|
|
757
732
|
assert_raises(CommandExitError){ subject.run([], @stdout, @stderr) }
|
758
733
|
assert_equal "#{err_msg}\n", @stderr.read
|
759
734
|
end
|
760
|
-
|
761
735
|
end
|
762
736
|
|
763
737
|
class ReleaseCommandTests < IOCommandTests
|
@@ -821,7 +795,6 @@ class GGem::CLI
|
|
821
795
|
assert_true @push_spy.run_called
|
822
796
|
assert_equal [], @push_spy.argv
|
823
797
|
end
|
824
|
-
|
825
798
|
end
|
826
799
|
|
827
800
|
class CommandSetTests < UnitTests
|
@@ -878,7 +851,6 @@ class GGem::CLI
|
|
878
851
|
subject[unknown_cmd_name]
|
879
852
|
assert_equal [unknown_cmd_name], @unknown_cmd_block_called_with
|
880
853
|
end
|
881
|
-
|
882
854
|
end
|
883
855
|
|
884
856
|
class CLISpy
|
@@ -1003,7 +975,6 @@ class GGem::CLI
|
|
1003
975
|
@run_push_cmd_called = true
|
1004
976
|
["push", 0, "push cmd was run"]
|
1005
977
|
end
|
1006
|
-
|
1007
978
|
end
|
1008
979
|
|
1009
980
|
class GitRepoSpy
|
@@ -1056,7 +1027,5 @@ class GGem::CLI
|
|
1056
1027
|
@run_push_cmd_called = true
|
1057
1028
|
["push", 0, "push cmd was run"]
|
1058
1029
|
end
|
1059
|
-
|
1060
1030
|
end
|
1061
|
-
|
1062
1031
|
end
|