Skip to content

Commit 5040a73

Browse files
committed
+ Merged hoe/gemcutter into hoe/package. Distinction doesn't make sense.
[git-p4: depot-paths = "//src/hoe/dev/": change = 15092]
1 parent a54f573 commit 5040a73

6 files changed

Lines changed: 84 additions & 87 deletions

File tree

Manifest.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ lib/hoe/deps.rb
1414
lib/hoe/flay.rb
1515
lib/hoe/flog.rb
1616
lib/hoe/gem_prelude_sucks.rb
17-
lib/hoe/gemcutter.rb
1817
lib/hoe/git.rb
1918
lib/hoe/inline.rb
2019
lib/hoe/newb.rb
@@ -35,7 +34,6 @@ template/lib/file_name.rb.erb
3534
template/test/test_file_name.rb.erb
3635
test/test_hoe.rb
3736
test/test_hoe_debug.rb
38-
test/test_hoe_gemcutter.rb
3937
test/test_hoe_package.rb
4038
test/test_hoe_publish.rb
4139
test/test_hoe_test.rb

lib/hoe.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ class Hoe
9090
VERSION = "4.6.1"
9191

9292
@@plugins = [:clean, :debug, :deps, :flay, :flog, :newb, :package,
93-
:publish, :gemcutter, :signing, :test]
93+
:publish, :signing, :test]
9494

9595
@bad_plugins = []
9696

lib/hoe/gemcutter.rb

Lines changed: 0 additions & 44 deletions
This file was deleted.

lib/hoe/package.rb

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@
1818
# release:: Package and upload the release.
1919

2020
module Hoe::Package
21+
include Rake::DSL if defined?(Rake::DSL)
22+
23+
Hoe::DEFAULT_CONFIG["otp_command"] = false
24+
2125
##
2226
# Optional: Should package create a tarball? [default: true]
2327

@@ -80,6 +84,16 @@ def define_package_tasks
8084
abort "Versions don't match: %s vs %s" % [v, version] if v != version
8185
abort "Versions don't match %s: %s vs %s" % [history_file, v, c] if v != c
8286
end
87+
88+
desc "Push gem to package."
89+
task :release_to_rubygems => [:clean, :package, :release_sanity] do
90+
pkg = "pkg/#{spec.name}-#{spec.version}"
91+
gems = Dir["#{pkg}*.gem"]
92+
93+
gem_push gems
94+
end
95+
96+
task :release_to => :release_to_rubygems
8397
end
8498

8599
##
@@ -121,4 +135,19 @@ def prerelease_version # :nodoc:
121135
(Gem::VERSION < "1.4" and pre !~ /^[a-z]+(\.\d+)?$/) or
122136
(Gem::VERSION >= "1.4" and pre !~ /^[a-z]+(\.?\d+)?$/)
123137
end
138+
139+
##
140+
# Push gems to server.
141+
142+
def gem_push gems
143+
with_config do |config, _|
144+
otp_command = config["otp_command"]
145+
146+
ENV["GEM_HOST_OTP_CODE"] = `#{otp_command}`.chomp if otp_command
147+
end
148+
149+
gems.each do |g|
150+
sh Gem.ruby, "-S", "gem", "push", g
151+
end
152+
end
124153
end

test/test_hoe_gemcutter.rb

Lines changed: 0 additions & 38 deletions
This file was deleted.

test/test_hoe_package.rb

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
require "minitest/autorun"
22
require "hoe"
3-
4-
Hoe.load_plugins
3+
require_relative "../lib/hoe/package.rb"
54

65
class TestHoePackage < Minitest::Test
76
def setup
@@ -23,6 +22,10 @@ def setup
2322
end
2423

2524
attr_reader :spec
25+
26+
def with_config
27+
yield({ "otp_command" => "echo my_otp_code"}, "~/.hoerc")
28+
end
2629
end
2730
end
2831

@@ -31,6 +34,55 @@ def teardown
3134
ENV["PRERELEASE"] = @orig_PRERELEASE
3235
end
3336

37+
def assert_task name, *deps
38+
dep = Rake::Task[name]
39+
assert dep
40+
prereqs = dep.prerequisites.map(&:to_sym)
41+
deps.each do |dep|
42+
# not asserting existence of tasks because they might be in other plugins
43+
assert_includes prereqs, dep.to_sym
44+
end
45+
end
46+
47+
def test_package_tasks_defined
48+
@tester.define_package_tasks
49+
50+
assert_task :gem, :clean
51+
assert_task :install_gem, :clean, :package, :check_extra_deps
52+
assert_task :postrelease
53+
assert_task :prerelease
54+
assert_task :release, :prerelease, :release_to, :postrelease
55+
assert_task :release_sanity
56+
assert_task :release_to
57+
assert_task :release_to, :release_to_rubygems
58+
assert_task :release_to_rubygems, :clean, :package, :release_sanity
59+
end
60+
61+
def save_env
62+
orig_env = ENV.to_h
63+
yield
64+
ensure
65+
ENV.replace orig_env
66+
end
67+
68+
def test_gem_push
69+
def @tester.sh *cmd_args
70+
@cmd_args = cmd_args
71+
end
72+
73+
def @tester.cmd_args
74+
@cmd_args
75+
end
76+
77+
save_env do
78+
@tester.gem_push %w[pkg/blah-123.gem]
79+
80+
exp = %W[#{Gem.ruby} -S gem push pkg/blah-123.gem]
81+
assert_equal exp, @tester.cmd_args
82+
assert_equal "my_otp_code", ENV["GEM_HOST_OTP_CODE"]
83+
end
84+
end
85+
3486
def test_prerelease_version_pre
3587
ENV["PRE"] = "pre.0"
3688

0 commit comments

Comments
 (0)