technicalpickles-jeweler 0.8.1 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog.markdown +27 -7
- data/README.markdown +9 -3
- data/Rakefile +30 -24
- data/TODO +2 -2
- data/VERSION.yml +2 -2
- data/bin/jeweler +1 -77
- data/lib/jeweler/commands/build_gem.rb +22 -0
- data/lib/jeweler/commands/install_gem.rb +19 -0
- data/lib/jeweler/commands/release.rb +45 -0
- data/lib/jeweler/commands/validate_gemspec.rb +21 -0
- data/lib/jeweler/commands/version/base.rb +30 -0
- data/lib/jeweler/commands/version/bump_major.rb +13 -0
- data/lib/jeweler/commands/version/bump_minor.rb +12 -0
- data/lib/jeweler/commands/version/bump_patch.rb +14 -0
- data/lib/jeweler/commands/version/write.rb +12 -0
- data/lib/jeweler/commands/write_gemspec.rb +26 -0
- data/lib/jeweler/commands.rb +10 -0
- data/lib/jeweler/{gemspec.rb → gemspec_helper.rb} +7 -1
- data/lib/jeweler/generator/application.rb +45 -0
- data/lib/jeweler/generator/options.rb +64 -0
- data/lib/jeweler/generator.rb +66 -26
- data/lib/jeweler/tasks.rb +11 -29
- data/lib/jeweler/templates/.gitignore +3 -1
- data/lib/jeweler/templates/LICENSE +1 -1
- data/lib/jeweler/templates/README.rdoc +7 -0
- data/lib/jeweler/templates/Rakefile +48 -31
- data/lib/jeweler/templates/bacon/flunking.rb +1 -1
- data/lib/jeweler/templates/bacon/helper.rb +1 -1
- data/lib/jeweler/templates/features/support/env.rb +0 -2
- data/lib/jeweler/templates/micronaut/flunking.rb +7 -0
- data/lib/jeweler/templates/micronaut/helper.rb +17 -0
- data/lib/jeweler/templates/minitest/flunking.rb +1 -1
- data/lib/jeweler/templates/minitest/helper.rb +1 -0
- data/lib/jeweler/templates/rspec/flunking.rb +1 -1
- data/lib/jeweler/templates/rspec/helper.rb +1 -1
- data/lib/jeweler/templates/shoulda/flunking.rb +2 -2
- data/lib/jeweler/templates/shoulda/helper.rb +1 -1
- data/lib/jeweler/templates/testunit/flunking.rb +1 -1
- data/lib/jeweler/templates/testunit/helper.rb +1 -1
- data/lib/jeweler/{version.rb → version_helper.rb} +1 -1
- data/lib/jeweler.rb +59 -141
- data/test/jeweler/commands/test_build_gem.rb +53 -0
- data/{lib/jeweler/templates/features/steps/default_steps.rb → test/jeweler/commands/test_install_gem.rb} +0 -0
- data/test/jeweler/commands/test_release.rb +145 -0
- data/test/jeweler/commands/test_write_gemspec.rb +58 -0
- data/test/jeweler/commands/version/test_bump_major.rb +21 -0
- data/test/jeweler/commands/version/test_bump_minor.rb +19 -0
- data/test/jeweler/commands/version/test_bump_patch.rb +20 -0
- data/test/jeweler/commands/version/test_write.rb +23 -0
- data/test/test_application.rb +109 -0
- data/test/{test_gemspec.rb → test_gemspec_helper.rb} +9 -5
- data/test/test_generator.rb +179 -0
- data/test/test_helper.rb +11 -23
- data/test/test_jeweler.rb +12 -9
- data/test/test_options.rb +90 -0
- data/test/test_tasks.rb +3 -4
- data/test/{test_version.rb → test_version_helper.rb} +16 -16
- metadata +44 -11
- data/lib/jeweler/templates/README +0 -9
@@ -0,0 +1,109 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestApplication < Test::Unit::TestCase
|
4
|
+
def run_application(*arguments)
|
5
|
+
original_stdout = $stdout
|
6
|
+
original_stderr = $stderr
|
7
|
+
|
8
|
+
fake_stdout = StringIO.new
|
9
|
+
fake_stderr = StringIO.new
|
10
|
+
|
11
|
+
$stdout = fake_stdout
|
12
|
+
$stderr = fake_stderr
|
13
|
+
|
14
|
+
result = nil
|
15
|
+
begin
|
16
|
+
result = Jeweler::Generator::Application.run!(*arguments)
|
17
|
+
ensure
|
18
|
+
$stdout = original_stdout
|
19
|
+
$stderr = original_stderr
|
20
|
+
end
|
21
|
+
|
22
|
+
@stdout = fake_stdout.string
|
23
|
+
@stderr = fake_stderr.string
|
24
|
+
|
25
|
+
result
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.should_exit_with_code(code)
|
29
|
+
should "exit with code #{code}" do
|
30
|
+
assert_equal code, @result
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context "called without any args" do
|
35
|
+
setup do
|
36
|
+
@result = run_application
|
37
|
+
end
|
38
|
+
|
39
|
+
should_exit_with_code 1
|
40
|
+
|
41
|
+
should 'display usage on stderr' do
|
42
|
+
assert_match 'Usage:', @stderr
|
43
|
+
end
|
44
|
+
|
45
|
+
should 'not display anything on stdout' do
|
46
|
+
assert_equal '', @stdout.squeeze.strip
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def build_generator(name = 'zomg', options = {:testing_framework => :shoulda})
|
51
|
+
Jeweler::Generator.new(name, options)
|
52
|
+
end
|
53
|
+
|
54
|
+
context "called with -h" do
|
55
|
+
setup do
|
56
|
+
@generator = build_generator
|
57
|
+
stub(@generator).run
|
58
|
+
stub(Jeweler::Generator).new { raise "Shouldn't have made this far"}
|
59
|
+
|
60
|
+
assert_nothing_raised do
|
61
|
+
@result = run_application("-h")
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
should_exit_with_code 1
|
66
|
+
|
67
|
+
should 'display usage on stderr' do
|
68
|
+
assert_match 'Usage:', @stderr
|
69
|
+
end
|
70
|
+
|
71
|
+
should 'not display anything on stdout' do
|
72
|
+
assert_equal '', @stdout.squeeze.strip
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
context "when called with repo name" do
|
77
|
+
setup do
|
78
|
+
@options = {:testing_framework => :shoulda}
|
79
|
+
@generator = build_generator('zomg', @options)
|
80
|
+
|
81
|
+
stub(@generator).run
|
82
|
+
stub(Jeweler::Generator).new { @generator }
|
83
|
+
end
|
84
|
+
|
85
|
+
should 'return exit code 0' do
|
86
|
+
result = run_application("zomg")
|
87
|
+
assert_equal 0, result
|
88
|
+
end
|
89
|
+
|
90
|
+
should 'create generator with repo name and no options' do
|
91
|
+
run_application("zomg")
|
92
|
+
|
93
|
+
assert_received Jeweler::Generator do |subject|
|
94
|
+
subject.new('zomg', @options)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
should 'run generator' do
|
99
|
+
run_application("zomg")
|
100
|
+
|
101
|
+
assert_received(@generator) {|subject| subject.run }
|
102
|
+
end
|
103
|
+
|
104
|
+
should 'not display usage on stderr' do
|
105
|
+
assert_no_match /Usage:/, @stderr
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
|
-
require
|
1
|
+
require 'test_helper'
|
2
2
|
|
3
|
-
class
|
4
|
-
context "
|
3
|
+
class TestGemspecHelper < Test::Unit::TestCase
|
4
|
+
context "given a gemspec" do
|
5
5
|
setup do
|
6
6
|
@spec = build_spec
|
7
7
|
@helper = Jeweler::GemSpecHelper.new(@spec, File.dirname(__FILE__))
|
@@ -12,15 +12,19 @@ class TestGemspec < Test::Unit::TestCase
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
context "
|
15
|
+
context "#write" do
|
16
16
|
setup do
|
17
17
|
@spec = build_spec
|
18
|
-
@helper = Jeweler::GemSpecHelper.new(@spec)
|
18
|
+
@helper = Jeweler::GemSpecHelper.new(@spec, File.dirname(__FILE__))
|
19
19
|
FileUtils.rm_f(@helper.path)
|
20
20
|
|
21
21
|
@helper.write
|
22
22
|
end
|
23
23
|
|
24
|
+
teardown do
|
25
|
+
FileUtils.rm_f(@helper.path)
|
26
|
+
end
|
27
|
+
|
24
28
|
should "create gemspec file" do
|
25
29
|
assert File.exists?(@helper.path)
|
26
30
|
end
|
@@ -0,0 +1,179 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestGenerator < Test::Unit::TestCase
|
4
|
+
def build_generator(testing_framework = nil, options = {})
|
5
|
+
options[:testing_framework] = testing_framework
|
6
|
+
Jeweler::Generator.new('the-perfect-gem', options)
|
7
|
+
end
|
8
|
+
|
9
|
+
context "initialize" do
|
10
|
+
should "raise error if nil repo name given" do
|
11
|
+
assert_raise Jeweler::NoGitHubRepoNameGiven do
|
12
|
+
Jeweler::Generator.new(nil)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
should "raise error if blank repo name given" do
|
17
|
+
assert_raise Jeweler::NoGitHubRepoNameGiven do
|
18
|
+
Jeweler::Generator.new("")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
should "have shoulda as default framework" do
|
23
|
+
assert_equal :shoulda, build_generator.testing_framework
|
24
|
+
end
|
25
|
+
|
26
|
+
should "have repository name as default target dir" do
|
27
|
+
assert_equal 'the-perfect-gem', build_generator.target_dir
|
28
|
+
end
|
29
|
+
|
30
|
+
should "have TODO as default summary" do
|
31
|
+
assert_equal "TODO", build_generator.summary
|
32
|
+
end
|
33
|
+
|
34
|
+
should "not create repo by default" do
|
35
|
+
assert ! build_generator.should_create_repo
|
36
|
+
end
|
37
|
+
|
38
|
+
should "not use cucumber by default" do
|
39
|
+
assert ! build_generator.should_use_cucumber
|
40
|
+
end
|
41
|
+
|
42
|
+
should "raise error for invalid testing frameworks" do
|
43
|
+
assert_raise ArgumentError do
|
44
|
+
build_generator(:zomg_invalid)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context "test_or_spec" do
|
50
|
+
should "be test for shoulda" do
|
51
|
+
assert_equal 'test', build_generator(:shoulda).test_or_spec
|
52
|
+
end
|
53
|
+
|
54
|
+
should "be test for testunit" do
|
55
|
+
assert_equal 'test', build_generator(:testunit).test_or_spec
|
56
|
+
end
|
57
|
+
|
58
|
+
should "be test for minitest" do
|
59
|
+
assert_equal 'test', build_generator(:minitest).test_or_spec
|
60
|
+
end
|
61
|
+
|
62
|
+
should "be spec for bacon" do
|
63
|
+
assert_equal 'spec', build_generator(:bacon).test_or_spec
|
64
|
+
end
|
65
|
+
|
66
|
+
should "be spec for rspec" do
|
67
|
+
assert_equal 'spec', build_generator(:rspec).test_or_spec
|
68
|
+
end
|
69
|
+
|
70
|
+
should "be example for micronaut" do
|
71
|
+
assert_equal 'example', build_generator(:micronaut).test_or_spec
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
context "test_dir" do
|
76
|
+
should "be test for shoulda" do
|
77
|
+
assert_equal 'test', build_generator(:shoulda).test_dir
|
78
|
+
end
|
79
|
+
|
80
|
+
should "be test for testunit" do
|
81
|
+
assert_equal 'test', build_generator(:testunit).test_dir
|
82
|
+
end
|
83
|
+
|
84
|
+
should "be test for minitest" do
|
85
|
+
assert_equal 'test', build_generator(:minitest).test_dir
|
86
|
+
end
|
87
|
+
|
88
|
+
should "be spec for bacon" do
|
89
|
+
assert_equal 'spec', build_generator(:bacon).test_dir
|
90
|
+
end
|
91
|
+
|
92
|
+
should "be spec for rspec" do
|
93
|
+
assert_equal 'spec', build_generator(:rspec).test_dir
|
94
|
+
end
|
95
|
+
|
96
|
+
should "be examples for micronaut" do
|
97
|
+
assert_equal 'examples', build_generator(:micronaut).test_dir
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
context "default_task" do
|
102
|
+
should "be test for shoulda" do
|
103
|
+
assert_equal 'test', build_generator(:shoulda).default_task
|
104
|
+
end
|
105
|
+
|
106
|
+
should "be test for testunit" do
|
107
|
+
assert_equal 'test', build_generator(:testunit).default_task
|
108
|
+
end
|
109
|
+
|
110
|
+
should "be test for minitest" do
|
111
|
+
assert_equal 'test', build_generator(:minitest).default_task
|
112
|
+
end
|
113
|
+
|
114
|
+
should "be spec for bacon" do
|
115
|
+
assert_equal 'spec', build_generator(:bacon).default_task
|
116
|
+
end
|
117
|
+
|
118
|
+
should "be spec for rspec" do
|
119
|
+
assert_equal 'spec', build_generator(:rspec).default_task
|
120
|
+
end
|
121
|
+
|
122
|
+
should "be examples for micronaut" do
|
123
|
+
assert_equal 'examples', build_generator(:micronaut).default_task
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
context "feature_support_require" do
|
128
|
+
should "be test/unit/assertions for shoulda" do
|
129
|
+
assert_equal 'test/unit/assertions', build_generator(:shoulda).feature_support_require
|
130
|
+
end
|
131
|
+
|
132
|
+
should "be test/unit/assertions for testunit" do
|
133
|
+
assert_equal 'test/unit/assertions', build_generator(:testunit).feature_support_require
|
134
|
+
end
|
135
|
+
|
136
|
+
should "be mini/test for minitest" do
|
137
|
+
assert_equal 'mini/test', build_generator(:minitest).feature_support_require
|
138
|
+
end
|
139
|
+
|
140
|
+
should "be test/unit/assertions for bacon" do
|
141
|
+
assert_equal 'test/unit/assertions', build_generator(:bacon).feature_support_require
|
142
|
+
end
|
143
|
+
|
144
|
+
should "be spec/expectations for rspec" do
|
145
|
+
assert_equal 'spec/expectations', build_generator(:rspec).feature_support_require
|
146
|
+
end
|
147
|
+
|
148
|
+
should "be micronaut/expectations for micronaut" do
|
149
|
+
assert_equal 'micronaut/expectations', build_generator(:micronaut).feature_support_require
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
context "feature_support_extend" do
|
154
|
+
should "be Test::Unit::Assertions for shoulda" do
|
155
|
+
assert_equal 'Test::Unit::Assertions', build_generator(:shoulda).feature_support_extend
|
156
|
+
end
|
157
|
+
|
158
|
+
should "be Test::Unit::Assertions for testunit" do
|
159
|
+
assert_equal 'Test::Unit::Assertions', build_generator(:testunit).feature_support_extend
|
160
|
+
end
|
161
|
+
|
162
|
+
should "be Mini::Test::Assertions for minitest" do
|
163
|
+
assert_equal 'Mini::Test::Assertions', build_generator(:minitest).feature_support_extend
|
164
|
+
end
|
165
|
+
|
166
|
+
should "be Test::Unit::Assertions for bacon" do
|
167
|
+
assert_equal 'Test::Unit::Assertions', build_generator(:bacon).feature_support_extend
|
168
|
+
end
|
169
|
+
|
170
|
+
should "be nil for rspec" do
|
171
|
+
assert_equal nil, build_generator(:rspec).feature_support_extend
|
172
|
+
end
|
173
|
+
|
174
|
+
should "be Micronaut::Matchers for micronaut" do
|
175
|
+
assert_equal 'Micronaut::Matchers', build_generator(:micronaut).feature_support_extend
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -1,14 +1,17 @@
|
|
1
1
|
require 'test/unit'
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
|
-
gem 'thoughtbot-shoulda'
|
5
4
|
require 'shoulda'
|
6
|
-
gem 'ruby-debug'
|
7
5
|
require 'ruby-debug'
|
8
|
-
|
9
|
-
require '
|
6
|
+
require 'rr'
|
7
|
+
require 'output_catcher'
|
8
|
+
require 'time'
|
10
9
|
|
11
|
-
|
10
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib')
|
11
|
+
require 'jeweler'
|
12
|
+
|
13
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
14
|
+
require 'shoulda_macros/jeweler_macros'
|
12
15
|
|
13
16
|
# Use vendored gem because of limited gem availability on runcoderun
|
14
17
|
# This is loosely based on 'vendor everything'.
|
@@ -17,24 +20,9 @@ Dir[File.join(File.dirname(__FILE__), '..', 'vendor', 'gems', '**')].each do |di
|
|
17
20
|
$LOAD_PATH.unshift(lib) if File.directory?(lib)
|
18
21
|
end
|
19
22
|
|
20
|
-
require 'output_catcher'
|
21
|
-
require 'time'
|
22
|
-
|
23
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib')
|
24
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
25
|
-
require 'jeweler'
|
26
|
-
|
27
|
-
# Fake out FileList from Rake
|
28
|
-
class FileList
|
29
|
-
def self.[](*args)
|
30
|
-
TMP_DIR.entries - ['.','..','.DS_STORE']
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
TMP_DIR = File.join(File.dirname(__FILE__), 'tmp')
|
35
|
-
FileUtils.rm_f(TMP_DIR) # GAH, dirty hax. Somewhere isn't tearing up correctly, so do some cleanup first
|
36
|
-
|
37
23
|
class Test::Unit::TestCase
|
24
|
+
include RR::Adapters::TestUnit unless include?(RR::Adapters::TestUnit)
|
25
|
+
|
38
26
|
def catch_out(&block)
|
39
27
|
OutputCatcher.catch_out do
|
40
28
|
block.call
|
@@ -56,7 +44,7 @@ class Test::Unit::TestCase
|
|
56
44
|
s.email = "josh@technicalpickles.com"
|
57
45
|
s.homepage = "http://github.com/technicalpickles/jeweler"
|
58
46
|
s.description = "Simple and opinionated helper for creating Rubygem projects on GitHub"
|
59
|
-
s.authors = ["Josh Nichols"
|
47
|
+
s.authors = ["Josh Nichols"]
|
60
48
|
s.files = FileList[*files] unless files.empty?
|
61
49
|
end
|
62
50
|
end
|
data/test/test_jeweler.rb
CHANGED
@@ -1,10 +1,11 @@
|
|
1
|
-
require
|
1
|
+
require 'test_helper'
|
2
2
|
|
3
3
|
class TestJeweler < Test::Unit::TestCase
|
4
4
|
|
5
5
|
def setup
|
6
6
|
@now = Time.now
|
7
|
-
Time.
|
7
|
+
stub(Time).now { @now }
|
8
|
+
|
8
9
|
FileUtils.rm_rf("#{File.dirname(__FILE__)}/tmp")
|
9
10
|
end
|
10
11
|
|
@@ -12,13 +13,13 @@ class TestJeweler < Test::Unit::TestCase
|
|
12
13
|
FileUtils.rm_rf("#{File.dirname(__FILE__)}/tmp")
|
13
14
|
end
|
14
15
|
|
15
|
-
context "
|
16
|
+
context "Initializing jewewler in a blank directory" do
|
16
17
|
setup do
|
17
18
|
FileUtils.mkdir_p(tmp_dir)
|
18
19
|
@jeweler = Jeweler.new(build_spec, tmp_dir)
|
19
20
|
end
|
20
21
|
|
21
|
-
should "not
|
22
|
+
should "not create a VERSION.yml" do
|
22
23
|
assert ! File.exists?(File.join(tmp_dir, 'VERSION.yml'))
|
23
24
|
end
|
24
25
|
end
|
@@ -29,6 +30,7 @@ class TestJeweler < Test::Unit::TestCase
|
|
29
30
|
FileUtils.cp_r(fixture_dir, tmp_dir)
|
30
31
|
|
31
32
|
@jeweler = Jeweler.new(build_spec, tmp_dir)
|
33
|
+
@jeweler.output = StringIO.new
|
32
34
|
end
|
33
35
|
|
34
36
|
should_have_major_version 1
|
@@ -38,14 +40,14 @@ class TestJeweler < Test::Unit::TestCase
|
|
38
40
|
|
39
41
|
context "bumping the patch version" do
|
40
42
|
setup do
|
41
|
-
@
|
43
|
+
@jeweler.bump_patch_version
|
42
44
|
end
|
43
45
|
should_bump_version 1, 5, 3
|
44
46
|
end
|
45
47
|
|
46
48
|
context "bumping the minor version" do
|
47
49
|
setup do
|
48
|
-
@
|
50
|
+
@jeweler.bump_minor_version
|
49
51
|
end
|
50
52
|
|
51
53
|
should_bump_version 1, 6, 0
|
@@ -53,13 +55,13 @@ class TestJeweler < Test::Unit::TestCase
|
|
53
55
|
|
54
56
|
context "bumping the major version" do
|
55
57
|
setup do
|
56
|
-
@
|
58
|
+
@jeweler.bump_major_version
|
57
59
|
end
|
58
60
|
|
59
61
|
should_bump_version 2, 0, 0
|
60
62
|
end
|
61
63
|
|
62
|
-
should "should
|
64
|
+
should "should populate gemspec's files" do
|
63
65
|
assert ! @jeweler.gemspec.files.empty?
|
64
66
|
end
|
65
67
|
|
@@ -90,7 +92,8 @@ class TestJeweler < Test::Unit::TestCase
|
|
90
92
|
|
91
93
|
context "writing the gemspec" do
|
92
94
|
setup do
|
93
|
-
@
|
95
|
+
@jeweler.write_gemspec
|
96
|
+
@output = @jeweler.output.string
|
94
97
|
end
|
95
98
|
|
96
99
|
should "create bar.gemspec" do
|
@@ -0,0 +1,90 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestOptions < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def self.should_have_testing_framework(testing_framework)
|
6
|
+
should "use #{testing_framework} for testing" do
|
7
|
+
assert_equal testing_framework.to_sym, @options[:testing_framework]
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def setup_options(*arguments)
|
12
|
+
@options = Jeweler::Generator::Options.new(arguments)
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.for_options(*options)
|
16
|
+
context options.join(' ') do
|
17
|
+
setup { setup_options *options }
|
18
|
+
yield
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context "default options" do
|
23
|
+
setup { setup_options }
|
24
|
+
should_have_testing_framework :shoulda
|
25
|
+
should 'not create repository' do
|
26
|
+
assert ! @options[:create_repo]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
for_options '--shoulda' do
|
31
|
+
should_have_testing_framework :shoulda
|
32
|
+
end
|
33
|
+
|
34
|
+
for_options "--bacon" do
|
35
|
+
should_have_testing_framework :bacon
|
36
|
+
end
|
37
|
+
|
38
|
+
for_options "--testunit" do
|
39
|
+
should_have_testing_framework :testunit
|
40
|
+
end
|
41
|
+
|
42
|
+
for_options '--minitest' do
|
43
|
+
should_have_testing_framework :minitest
|
44
|
+
end
|
45
|
+
|
46
|
+
for_options '--rspec' do
|
47
|
+
should_have_testing_framework :rspec
|
48
|
+
end
|
49
|
+
|
50
|
+
for_options '--micronaut' do
|
51
|
+
should_have_testing_framework :micronaut
|
52
|
+
end
|
53
|
+
|
54
|
+
for_options '--cucumber' do
|
55
|
+
should 'enable cucumber' do
|
56
|
+
assert_equal true, @options[:use_cucumber]
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
for_options '--create-repo' do
|
61
|
+
should 'create repository' do
|
62
|
+
assert @options[:create_repo]
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
for_options '--summary', 'zomg so awesome' do
|
67
|
+
should 'have summary zomg so awesome' do
|
68
|
+
assert_equal 'zomg so awesome', @options[:summary]
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
for_options '--directory', 'foo' do
|
73
|
+
should 'have directory foo' do
|
74
|
+
assert_equal 'foo', @options[:directory]
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
for_options '--help' do
|
79
|
+
should 'show help' do
|
80
|
+
assert @options[:show_help]
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
for_options '-h' do
|
85
|
+
should 'show help' do
|
86
|
+
assert @options[:show_help]
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
data/test/test_tasks.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require 'test_helper'
|
2
2
|
|
3
3
|
require 'rake'
|
4
4
|
class TestTasks < Test::Unit::TestCase
|
@@ -9,7 +9,6 @@ class TestTasks < Test::Unit::TestCase
|
|
9
9
|
Task.clear
|
10
10
|
|
11
11
|
@jt = Jeweler::Tasks.new do |s|
|
12
|
-
|
13
12
|
end
|
14
13
|
end
|
15
14
|
|
@@ -25,12 +24,12 @@ class TestTasks < Test::Unit::TestCase
|
|
25
24
|
assert Task.task_defined?(:build)
|
26
25
|
assert Task.task_defined?(:install)
|
27
26
|
assert Task.task_defined?(:gemspec)
|
27
|
+
assert Task.task_defined?(:build)
|
28
|
+
assert Task.task_defined?(:install)
|
28
29
|
assert Task.task_defined?(:'gemspec:validate')
|
29
30
|
assert Task.task_defined?(:'gemspec:generate')
|
30
31
|
assert Task.task_defined?(:version)
|
31
32
|
assert Task.task_defined?(:'version:write')
|
32
|
-
assert Task.task_defined?(:'version:display')
|
33
|
-
assert Task.task_defined?(:'version:bump')
|
34
33
|
assert Task.task_defined?(:'version:bump:major')
|
35
34
|
assert Task.task_defined?(:'version:bump:minor')
|
36
35
|
assert Task.task_defined?(:'version:bump:patch')
|
@@ -1,30 +1,30 @@
|
|
1
|
-
require
|
1
|
+
require 'test_helper'
|
2
2
|
|
3
|
-
class
|
3
|
+
class TestVersionHelper < Test::Unit::TestCase
|
4
4
|
|
5
5
|
VERSION_TMP_DIR = File.dirname(__FILE__) + '/version_tmp'
|
6
6
|
|
7
7
|
def self.should_have_version(major, minor, patch)
|
8
8
|
should "have major version #{major}" do
|
9
|
-
assert_equal major, @
|
9
|
+
assert_equal major, @version_helper.major
|
10
10
|
end
|
11
11
|
|
12
12
|
should "have minor version #{minor}" do
|
13
|
-
assert_equal minor, @
|
13
|
+
assert_equal minor, @version_helper.minor
|
14
14
|
end
|
15
15
|
|
16
16
|
should "have patch version #{patch}" do
|
17
|
-
assert_equal patch, @
|
17
|
+
assert_equal patch, @version_helper.patch
|
18
18
|
end
|
19
19
|
|
20
20
|
version_s = "#{major}.#{minor}.#{patch}"
|
21
21
|
should "render string as #{version_s.inspect}" do
|
22
|
-
assert_equal version_s, @
|
22
|
+
assert_equal version_s, @version_helper.to_s
|
23
23
|
end
|
24
24
|
|
25
25
|
version_hash = {:major => major, :minor => minor, :patch => patch}
|
26
26
|
should "render hash as #{version_hash.inspect}" do
|
27
|
-
assert_equal version_hash, @
|
27
|
+
assert_equal version_hash, @version_helper.to_hash
|
28
28
|
end
|
29
29
|
|
30
30
|
end
|
@@ -36,23 +36,23 @@ class TestVersion < Test::Unit::TestCase
|
|
36
36
|
|
37
37
|
build_version_yml VERSION_TMP_DIR, 3, 5, 4
|
38
38
|
|
39
|
-
@
|
39
|
+
@version_helper = Jeweler::VersionHelper.new VERSION_TMP_DIR
|
40
40
|
end
|
41
41
|
|
42
42
|
should_have_version 3, 5, 4
|
43
43
|
|
44
44
|
context "bumping major version" do
|
45
|
-
setup { @
|
45
|
+
setup { @version_helper.bump_major }
|
46
46
|
should_have_version 4, 0, 0
|
47
47
|
end
|
48
48
|
|
49
49
|
context "bumping the minor version" do
|
50
|
-
setup { @
|
50
|
+
setup { @version_helper.bump_minor }
|
51
51
|
should_have_version 3, 6, 0
|
52
52
|
end
|
53
53
|
|
54
54
|
context "bumping the patch version" do
|
55
|
-
setup { @
|
55
|
+
setup { @version_helper.bump_patch }
|
56
56
|
should_have_version 3, 5, 5
|
57
57
|
end
|
58
58
|
end
|
@@ -65,14 +65,14 @@ class TestVersion < Test::Unit::TestCase
|
|
65
65
|
|
66
66
|
should "not raise error if the VERSION.yml doesn't exist" do
|
67
67
|
assert_nothing_raised Jeweler::VersionYmlError do
|
68
|
-
Jeweler::
|
68
|
+
Jeweler::VersionHelper.new(VERSION_TMP_DIR)
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
72
|
context "setting an initial version" do
|
73
73
|
setup do
|
74
|
-
@
|
75
|
-
@
|
74
|
+
@version_helper = Jeweler::VersionHelper.new(VERSION_TMP_DIR)
|
75
|
+
@version_helper.update_to 0, 0, 1
|
76
76
|
end
|
77
77
|
|
78
78
|
should_have_version 0, 0, 1
|
@@ -82,7 +82,7 @@ class TestVersion < Test::Unit::TestCase
|
|
82
82
|
|
83
83
|
context "outputting" do
|
84
84
|
setup do
|
85
|
-
@
|
85
|
+
@version_helper.write
|
86
86
|
end
|
87
87
|
|
88
88
|
should "create VERSION.yml" do
|
@@ -91,7 +91,7 @@ class TestVersion < Test::Unit::TestCase
|
|
91
91
|
|
92
92
|
context "re-reading VERSION.yml" do
|
93
93
|
setup do
|
94
|
-
@
|
94
|
+
@version_helper = Jeweler::VersionHelper.new(VERSION_TMP_DIR)
|
95
95
|
end
|
96
96
|
|
97
97
|
should_have_version 0, 0, 1
|