hoe 3.6.0 → 3.6.1
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +2 -1
- data/History.txt +7 -0
- data/lib/hoe.rb +12 -4
- data/lib/hoe/deps.rb +96 -80
- data/lib/hoe/publish.rb +47 -35
- data/lib/hoe/signing.rb +48 -40
- data/lib/hoe/test.rb +2 -0
- data/test/test_hoe.rb +15 -43
- data/test/test_hoe_debug.rb +13 -20
- metadata +8 -8
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
|
1
|
+
-ܦ�6VFټ��?�^�N�_�7f�/� �gqyY����~�SĨ���@�jSr��y�����n��J%Ahf���ƨ�1�N�%��x��
|
2
|
+
^6.wp�0eU|�X�V��>,¡���>��(HK��J>�����3
|
data/History.txt
CHANGED
data/lib/hoe.rb
CHANGED
@@ -91,7 +91,7 @@ class Hoe
|
|
91
91
|
include Rake::DSL if defined?(Rake::DSL)
|
92
92
|
|
93
93
|
# duh
|
94
|
-
VERSION = "3.6.
|
94
|
+
VERSION = "3.6.1"
|
95
95
|
|
96
96
|
@@plugins = [:clean, :debug, :deps, :flay, :flog, :newb, :package,
|
97
97
|
:publish, :gemcutter, :signing, :test]
|
@@ -555,6 +555,14 @@ class Hoe
|
|
555
555
|
s.extra_rdoc_files += @extra_rdoc_files
|
556
556
|
end
|
557
557
|
|
558
|
+
check_for_version
|
559
|
+
|
560
|
+
spec.licenses = licenses unless licenses.empty?
|
561
|
+
|
562
|
+
run_spec_extras
|
563
|
+
end
|
564
|
+
|
565
|
+
def check_for_version # :nodoc:
|
558
566
|
unless self.version then
|
559
567
|
version = nil
|
560
568
|
version_re = /VERSION += +([\"\'])([\d][\w\.]+)\1/
|
@@ -574,11 +582,11 @@ class Hoe
|
|
574
582
|
warn " or fix your Manifest.txt"
|
575
583
|
end
|
576
584
|
end
|
585
|
+
end
|
577
586
|
|
578
|
-
|
579
|
-
|
587
|
+
def run_spec_extras # :nodoc:
|
580
588
|
# Do any extra stuff the user wants
|
581
|
-
spec_extras.each do |msg, val|
|
589
|
+
self.spec_extras.each do |msg, val|
|
582
590
|
case val
|
583
591
|
when Proc
|
584
592
|
val.call spec.send(msg)
|
data/lib/hoe/deps.rb
CHANGED
@@ -24,106 +24,122 @@ module Hoe::Deps
|
|
24
24
|
namespace :deps do
|
25
25
|
desc "List all the dependent gems of this gem"
|
26
26
|
task :list do
|
27
|
-
|
28
|
-
gem = gems[self.name]
|
29
|
-
|
30
|
-
abort "Couldn't find gem: #{self.name}" unless gem
|
31
|
-
|
32
|
-
deps = self.dependent_upon self.name
|
33
|
-
max = deps.map { |s| s.full_name.size }.max
|
34
|
-
|
35
|
-
puts " dependents:"
|
36
|
-
unless deps.empty? then
|
37
|
-
deps.sort_by { |spec| spec.full_name }.each do |spec|
|
38
|
-
vers = spec.dependencies.find {|s| s.name == name}.requirements_list
|
39
|
-
puts " %-*s - %s" % [max, spec.full_name, vers.join(", ")]
|
40
|
-
end
|
41
|
-
else
|
42
|
-
puts " none"
|
43
|
-
end
|
27
|
+
deps_list_task
|
44
28
|
end
|
45
29
|
|
46
30
|
desc "Print a contact list for gems dependent on this gem"
|
47
31
|
task :email do
|
48
|
-
|
49
|
-
|
32
|
+
deps_email_task
|
33
|
+
end
|
50
34
|
|
51
|
-
|
35
|
+
desc "Fetch all the dependent gems of this gem into tarballs"
|
36
|
+
task :fetch do
|
37
|
+
deps_fetch_task
|
38
|
+
end
|
39
|
+
end
|
52
40
|
|
53
|
-
|
54
|
-
|
55
|
-
|
41
|
+
desc 'Install missing dependencies.'
|
42
|
+
task :check_extra_deps do
|
43
|
+
check_extra_deps_task
|
44
|
+
end
|
56
45
|
|
57
|
-
|
58
|
-
|
59
|
-
|
46
|
+
desc 'Install missing plugins.'
|
47
|
+
task :install_plugins do
|
48
|
+
install_missing_plugins
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def check_extra_deps_task # :nodoc:
|
53
|
+
# extra_deps = [["rubyforge", ">= 1.0.0"], ["rake", ">= 0.8.1"]]
|
54
|
+
(extra_deps + extra_dev_deps).each do |dep|
|
55
|
+
begin
|
56
|
+
gem(*dep)
|
57
|
+
rescue Gem::LoadError
|
58
|
+
name, req, = dep
|
60
59
|
|
61
|
-
|
60
|
+
install_gem name, req, false
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
62
64
|
|
63
|
-
|
64
|
-
|
65
|
+
def deps_list_task # :nodoc:
|
66
|
+
gems = self.get_gems_by_name
|
67
|
+
gem = gems[self.name]
|
65
68
|
|
66
|
-
|
69
|
+
abort "Couldn't find gem: #{self.name}" unless gem
|
67
70
|
|
68
|
-
|
71
|
+
deps = self.dependent_upon self.name
|
72
|
+
max = deps.map { |s| s.full_name.size }.max
|
73
|
+
|
74
|
+
puts " dependents:"
|
75
|
+
unless deps.empty? then
|
76
|
+
deps.sort_by { |spec| spec.full_name }.each do |spec|
|
77
|
+
vers = spec.dependencies.find {|s| s.name == name}.requirements_list
|
78
|
+
puts " %-*s - %s" % [max, spec.full_name, vers.join(", ")]
|
69
79
|
end
|
80
|
+
else
|
81
|
+
puts " none"
|
82
|
+
end
|
83
|
+
end
|
70
84
|
|
71
|
-
|
72
|
-
|
73
|
-
|
85
|
+
def deps_email_task # :nodoc:
|
86
|
+
gems = self.get_gems_by_name
|
87
|
+
gem = gems[self.name]
|
88
|
+
|
89
|
+
abort "Couldn't find gem: #{self.name}" unless gem
|
90
|
+
|
91
|
+
deps = self.dependent_upon self.name
|
92
|
+
email = deps.map { |s| s.email }.compact.flatten.sort.uniq
|
93
|
+
email = email.map { |s| s.split(/,\s*/) }.flatten.sort.uniq
|
94
|
+
|
95
|
+
email.map! { |s| # don't you people realize how easy this is?
|
96
|
+
s.gsub(/ at | _at_ |\s*(atmark|@nospam@|-at?-|@at?@|<at?>|\[at?\]|\(at?\))\s*/i, '@').gsub(/\s*(dot|\[d(ot)?\]|\.dot\.)\s*/i, '.').gsub(/\s+com$/, '.com')
|
97
|
+
}
|
98
|
+
|
99
|
+
bad, good = email.partition { |e| e !~ /^[\w.+-]+\@[\w.+-]+$/ }
|
100
|
+
|
101
|
+
warn "Rejecting #{bad.size} email. I couldn't unmunge them." unless
|
102
|
+
bad.empty?
|
103
|
+
|
104
|
+
puts good.join(", ")
|
105
|
+
|
106
|
+
warn "Warning: couldn't extract any email addresses" if good.empty?
|
107
|
+
end
|
108
|
+
|
109
|
+
def deps_fetch_task # :nodoc:
|
110
|
+
deps = self.dependent_upon self.name
|
111
|
+
|
112
|
+
mkdir "deps" unless File.directory? "deps"
|
113
|
+
Dir.chdir "deps" do
|
114
|
+
begin
|
115
|
+
deps.sort_by { |spec| spec.full_name }.each do |spec|
|
116
|
+
full_name = spec.full_name
|
117
|
+
tgz_name = "#{full_name}.tgz"
|
118
|
+
gem_name = "#{full_name}.gem"
|
119
|
+
|
120
|
+
next if File.exist? tgz_name
|
121
|
+
FileUtils.rm_rf [full_name, gem_name]
|
74
122
|
|
75
|
-
mkdir "deps" unless File.directory? "deps"
|
76
|
-
Dir.chdir "deps" do
|
77
123
|
begin
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
FileUtils.rm_rf [full_name, gem_name]
|
85
|
-
|
86
|
-
begin
|
87
|
-
warn "downloading #{full_name}"
|
88
|
-
Gem::RemoteFetcher.fetcher.download(spec, GEMURL, Dir.pwd)
|
89
|
-
FileUtils.mv "cache/#{gem_name}", '.'
|
90
|
-
rescue Gem::RemoteFetcher::FetchError
|
91
|
-
warn " failed"
|
92
|
-
next
|
93
|
-
end
|
94
|
-
|
95
|
-
warn "converting #{gem_name} to tarball"
|
96
|
-
|
97
|
-
system "gem unpack #{gem_name} 2> /dev/null"
|
98
|
-
system "gem spec -l #{gem_name} > #{full_name}/gemspec.rb"
|
99
|
-
system "tar zmcf #{tgz_name} #{full_name}"
|
100
|
-
FileUtils.rm_rf [full_name, gem_name, "cache"]
|
101
|
-
end
|
102
|
-
ensure
|
103
|
-
FileUtils.rm_rf "cache"
|
124
|
+
warn "downloading #{full_name}"
|
125
|
+
Gem::RemoteFetcher.fetcher.download(spec, GEMURL, Dir.pwd)
|
126
|
+
FileUtils.mv "cache/#{gem_name}", '.'
|
127
|
+
rescue Gem::RemoteFetcher::FetchError
|
128
|
+
warn " failed"
|
129
|
+
next
|
104
130
|
end
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|
108
131
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
rescue Gem::LoadError
|
116
|
-
name, req, = dep
|
117
|
-
|
118
|
-
install_gem name, req, false
|
132
|
+
warn "converting #{gem_name} to tarball"
|
133
|
+
|
134
|
+
system "gem unpack #{gem_name} 2> /dev/null"
|
135
|
+
system "gem spec -l #{gem_name} > #{full_name}/gemspec.rb"
|
136
|
+
system "tar zmcf #{tgz_name} #{full_name}"
|
137
|
+
FileUtils.rm_rf [full_name, gem_name, "cache"]
|
119
138
|
end
|
139
|
+
ensure
|
140
|
+
FileUtils.rm_rf "cache"
|
120
141
|
end
|
121
142
|
end
|
122
|
-
|
123
|
-
desc 'Install missing plugins.'
|
124
|
-
task :install_plugins do
|
125
|
-
install_missing_plugins
|
126
|
-
end
|
127
143
|
end
|
128
144
|
|
129
145
|
##
|
data/lib/hoe/publish.rb
CHANGED
@@ -136,17 +136,12 @@ module Hoe::Publish
|
|
136
136
|
|
137
137
|
desc "Publish RDoc to wherever you want."
|
138
138
|
task :publish_docs => [:clean, :docs] do
|
139
|
-
|
140
|
-
self.rdoc_locations.each do |dest|
|
141
|
-
sh %{rsync #{rsync_args} #{local_rdoc_dir}/ #{dest}}
|
142
|
-
end
|
139
|
+
publish_docs_task
|
143
140
|
end
|
144
141
|
|
145
142
|
# no doco for this one
|
146
143
|
task :publish_on_announce do
|
147
|
-
|
148
|
-
Rake::Task['publish_docs'].invoke if config["publish_on_announce"]
|
149
|
-
end
|
144
|
+
publish_on_announce_task
|
150
145
|
end
|
151
146
|
|
152
147
|
desc 'Generate email announcement file.'
|
@@ -156,40 +151,57 @@ module Hoe::Publish
|
|
156
151
|
|
157
152
|
desc 'Post announcement to blog. Uses the "blogs" array in your hoerc.'
|
158
153
|
task :post_blog do
|
159
|
-
|
160
|
-
break unless config['blogs']
|
161
|
-
|
162
|
-
config['blogs'].each do |site|
|
163
|
-
if site['path'] then
|
164
|
-
msg = "post_blog_#{site['type']}"
|
165
|
-
send msg, site
|
166
|
-
system site["cmd"] if site["cmd"]
|
167
|
-
else
|
168
|
-
require 'xmlrpc/client'
|
169
|
-
|
170
|
-
_, title, body, urls = announcement
|
171
|
-
body += "\n\n#{urls}"
|
172
|
-
|
173
|
-
server = XMLRPC::Client.new2(site['url'])
|
174
|
-
content = site['extra_headers'].merge(:title => title,
|
175
|
-
:description => body,
|
176
|
-
:categories => blog_categories)
|
177
|
-
|
178
|
-
server.call('metaWeblog.newPost',
|
179
|
-
site['blog_id'],
|
180
|
-
site['user'],
|
181
|
-
site['password'],
|
182
|
-
content,
|
183
|
-
true)
|
184
|
-
end
|
185
|
-
end
|
186
|
-
end
|
154
|
+
post_blog_task
|
187
155
|
end
|
188
156
|
|
189
157
|
desc 'Announce your release.'
|
190
158
|
task :announce => [:post_blog, :publish_on_announce ]
|
191
159
|
end
|
192
160
|
|
161
|
+
def publish_docs_task # :nodoc:
|
162
|
+
warn "no rdoc_location values" if rdoc_locations.empty?
|
163
|
+
self.rdoc_locations.each do |dest|
|
164
|
+
sh %{rsync #{rsync_args} #{local_rdoc_dir}/ #{dest}}
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
def publish_on_announce_task # :nodoc:
|
169
|
+
with_config do |config, _|
|
170
|
+
Rake::Task['publish_docs'].invoke if config["publish_on_announce"]
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
def post_blog_task # :nodoc:
|
175
|
+
with_config do |config, path|
|
176
|
+
break unless config['blogs']
|
177
|
+
|
178
|
+
config['blogs'].each do |site|
|
179
|
+
if site['path'] then
|
180
|
+
msg = "post_blog_#{site['type']}"
|
181
|
+
send msg, site
|
182
|
+
system site["cmd"] if site["cmd"]
|
183
|
+
else
|
184
|
+
require 'xmlrpc/client'
|
185
|
+
|
186
|
+
_, title, body, urls = announcement
|
187
|
+
body += "\n\n#{urls}"
|
188
|
+
|
189
|
+
server = XMLRPC::Client.new2(site['url'])
|
190
|
+
content = site['extra_headers'].merge(:title => title,
|
191
|
+
:description => body,
|
192
|
+
:categories => blog_categories)
|
193
|
+
|
194
|
+
server.call('metaWeblog.newPost',
|
195
|
+
site['blog_id'],
|
196
|
+
site['user'],
|
197
|
+
site['password'],
|
198
|
+
content,
|
199
|
+
true)
|
200
|
+
end
|
201
|
+
end
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
193
205
|
def make_rdoc_cmd(*extra_args) # :nodoc:
|
194
206
|
title = "#{name}-#{version} Documentation"
|
195
207
|
title = "#{group_name}'s #{title}" if group_name != name
|
data/lib/hoe/signing.rb
CHANGED
@@ -44,6 +44,15 @@ module Hoe::Signing
|
|
44
44
|
# Define tasks for plugin.
|
45
45
|
|
46
46
|
def define_signing_tasks
|
47
|
+
set_up_signing
|
48
|
+
|
49
|
+
desc 'Generate a key for signing your gems.'
|
50
|
+
task :generate_key do
|
51
|
+
generate_key_task
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def set_up_signing # :nodoc:
|
47
56
|
signing_key = nil
|
48
57
|
cert_chain = []
|
49
58
|
|
@@ -60,60 +69,59 @@ module Hoe::Signing
|
|
60
69
|
spec.signing_key = signing_key
|
61
70
|
spec.cert_chain = cert_chain
|
62
71
|
end
|
72
|
+
end
|
63
73
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
abort "No email in your gemspec" if email.nil? or email.empty?
|
74
|
+
def generate_key_task # :nodoc:
|
75
|
+
email = Array(spec.email)
|
76
|
+
abort "No email in your gemspec" if email.nil? or email.empty?
|
68
77
|
|
69
|
-
|
70
|
-
|
78
|
+
key_file = with_config { |config, _| config['signing_key_file'] }
|
79
|
+
cert_file = with_config { |config, _| config['signing_cert_file'] }
|
71
80
|
|
72
|
-
|
73
|
-
|
74
|
-
|
81
|
+
if key_file.nil? or cert_file.nil? then
|
82
|
+
ENV['SHOW_EDITOR'] ||= 'no'
|
83
|
+
Rake::Task['config_hoe'].invoke
|
75
84
|
|
76
|
-
|
77
|
-
|
78
|
-
|
85
|
+
key_file = with_config { |config, _| config['signing_key_file'] }
|
86
|
+
cert_file = with_config { |config, _| config['signing_cert_file'] }
|
87
|
+
end
|
79
88
|
|
80
|
-
|
81
|
-
|
89
|
+
key_file = File.expand_path key_file
|
90
|
+
cert_file = File.expand_path cert_file
|
82
91
|
|
83
|
-
|
84
|
-
|
92
|
+
unless File.exist? key_file then
|
93
|
+
puts "Generating certificate"
|
85
94
|
|
86
|
-
|
87
|
-
|
88
|
-
|
95
|
+
if File.exist? key_file then
|
96
|
+
abort "Have #{key_file} but no #{cert_file}, aborting as a precaution"
|
97
|
+
end
|
89
98
|
|
90
|
-
|
99
|
+
warn "NOTICE: using #{email.first} for certificate" if email.size > 1
|
91
100
|
|
92
|
-
|
93
|
-
|
94
|
-
|
101
|
+
sh "gem cert --build #{email.first}"
|
102
|
+
mv "gem-private_key.pem", key_file, :verbose => true
|
103
|
+
mv "gem-public_cert.pem", cert_file, :verbose => true
|
95
104
|
|
96
|
-
|
97
|
-
|
105
|
+
puts "Installed key and certificate."
|
106
|
+
end
|
98
107
|
|
99
|
-
|
100
|
-
|
108
|
+
rf = RubyForge.new.configure
|
109
|
+
rf.login
|
101
110
|
|
102
|
-
|
111
|
+
cert_package = "#{rubyforge_name}-certificates"
|
103
112
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
113
|
+
begin
|
114
|
+
rf.lookup 'package', cert_package
|
115
|
+
rescue
|
116
|
+
rf.create_package rubyforge_name, cert_package
|
117
|
+
end
|
109
118
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
end
|
119
|
+
unless rf.lookup('release', cert_package)['certificates'] then
|
120
|
+
rf.add_release rubyforge_name, cert_package, 'certificates', cert_file
|
121
|
+
puts "Uploaded certificates to release \"certificates\" in package #{cert_package}"
|
122
|
+
else
|
123
|
+
puts '"certificates" release exists, adding file anyway (will not overwrite)'
|
124
|
+
rf.add_file rubyforge_name, cert_package, 'certificates', cert_file
|
117
125
|
end
|
118
126
|
end
|
119
127
|
end
|
data/lib/hoe/test.rb
CHANGED
data/test/test_hoe.rb
CHANGED
@@ -78,9 +78,7 @@ class TestHoe < MiniTest::Unit::TestCase
|
|
78
78
|
EOM
|
79
79
|
end
|
80
80
|
|
81
|
-
|
82
|
-
io.write YAML.dump('plugins' => %w[hoerc])
|
83
|
-
end
|
81
|
+
write_hoerc path, 'plugins' => %w[hoerc]
|
84
82
|
|
85
83
|
methods = hoe.methods.grep(/^initialize/).map { |s| s.to_s }
|
86
84
|
|
@@ -88,40 +86,7 @@ class TestHoe < MiniTest::Unit::TestCase
|
|
88
86
|
assert_includes Hoe.plugins, :hoerc
|
89
87
|
end
|
90
88
|
ensure
|
91
|
-
|
92
|
-
Hoe.plugins.delete :hoerc
|
93
|
-
Hoe.send :remove_const, :Hoerc
|
94
|
-
$LOAD_PATH.replace load_path
|
95
|
-
ENV['HOME'] = home
|
96
|
-
end
|
97
|
-
|
98
|
-
def test_perproject_hoerc
|
99
|
-
overrides = {
|
100
|
-
'exclude' => Regexp.union( Hoe::DEFAULT_CONFIG["exclude"], /\.hg/ ),
|
101
|
-
'plugins' => ['tweedledee', 'tweedledum']
|
102
|
-
}
|
103
|
-
overrides_rcfile = File.join(Dir.pwd, '.hoerc')
|
104
|
-
|
105
|
-
home = ENV['HOME']
|
106
|
-
Hoe.files = nil
|
107
|
-
|
108
|
-
Dir.mktmpdir do |path|
|
109
|
-
ENV['HOME'] = path
|
110
|
-
|
111
|
-
open File.join(path, '.hoerc'), 'w' do |io|
|
112
|
-
io.write YAML.dump( Hoe::DEFAULT_CONFIG )
|
113
|
-
end
|
114
|
-
open overrides_rcfile, File::CREAT|File::EXCL|File::WRONLY do |io|
|
115
|
-
io.write YAML.dump( overrides )
|
116
|
-
end
|
117
|
-
|
118
|
-
hoeconfig = hoe.with_config {|config, _| config }
|
119
|
-
|
120
|
-
assert_equal Hoe::DEFAULT_CONFIG.merge(overrides), hoeconfig
|
121
|
-
end
|
122
|
-
ensure
|
123
|
-
File.delete overrides_rcfile if File.exist?( overrides_rcfile )
|
124
|
-
ENV['HOME'] = home
|
89
|
+
reset_hoe load_path, home
|
125
90
|
end
|
126
91
|
|
127
92
|
def test_have_gem_eh
|
@@ -148,9 +113,7 @@ class TestHoe < MiniTest::Unit::TestCase
|
|
148
113
|
EOM
|
149
114
|
end
|
150
115
|
|
151
|
-
|
152
|
-
io.write YAML.dump('plugins' => %w[hoerc])
|
153
|
-
end
|
116
|
+
write_hoerc path, 'plugins' => %w[hoerc]
|
154
117
|
|
155
118
|
methods = hoe.instance_variables.map(&:to_s)
|
156
119
|
assert_includes(methods, '@hoerc_plugin_initialized',
|
@@ -158,6 +121,16 @@ class TestHoe < MiniTest::Unit::TestCase
|
|
158
121
|
assert_includes Hoe.plugins, :hoerc
|
159
122
|
end
|
160
123
|
ensure
|
124
|
+
reset_hoe load_path, home
|
125
|
+
end
|
126
|
+
|
127
|
+
def write_hoerc path, data
|
128
|
+
open File.join(path, '.hoerc'), 'w' do |io|
|
129
|
+
io.write YAML.dump data
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
def reset_hoe load_path, home
|
161
134
|
Hoe.instance_variable_get(:@loaded).delete :hoerc
|
162
135
|
Hoe.plugins.delete :hoerc
|
163
136
|
Hoe.send :remove_const, :Hoerc
|
@@ -443,9 +416,8 @@ class TestHoe < MiniTest::Unit::TestCase
|
|
443
416
|
Dir.mktmpdir do |path|
|
444
417
|
ENV['HOME'] = path
|
445
418
|
|
446
|
-
|
447
|
-
|
448
|
-
end
|
419
|
+
write_hoerc path, Hoe::DEFAULT_CONFIG
|
420
|
+
|
449
421
|
open overrides_rcfile, File::CREAT|File::EXCL|File::WRONLY do |io|
|
450
422
|
io.write YAML.dump( overrides )
|
451
423
|
end
|
data/test/test_hoe_debug.rb
CHANGED
@@ -19,11 +19,20 @@ class TestHoeDebug < MiniTest::Unit::TestCase
|
|
19
19
|
@generated_files = []
|
20
20
|
end
|
21
21
|
|
22
|
+
def assert_subprocess_silent
|
23
|
+
out, err = capture_subprocess_io do
|
24
|
+
yield
|
25
|
+
end
|
26
|
+
|
27
|
+
assert_equal "", out
|
28
|
+
assert_equal "", err
|
29
|
+
end
|
30
|
+
|
22
31
|
def test_check_manifest
|
23
32
|
in_tmpdir do
|
24
33
|
manifest
|
25
34
|
|
26
|
-
|
35
|
+
assert_subprocess_silent do
|
27
36
|
check_manifest
|
28
37
|
end
|
29
38
|
end
|
@@ -35,7 +44,7 @@ class TestHoeDebug < MiniTest::Unit::TestCase
|
|
35
44
|
|
36
45
|
open 'generated.rb', 'w' do |io| io.puts 'generated = true' end
|
37
46
|
|
38
|
-
|
47
|
+
assert_subprocess_silent do
|
39
48
|
check_manifest
|
40
49
|
end
|
41
50
|
end
|
@@ -51,34 +60,18 @@ class TestHoeDebug < MiniTest::Unit::TestCase
|
|
51
60
|
|
52
61
|
e = nil
|
53
62
|
|
54
|
-
out =
|
63
|
+
out, err = capture_subprocess_io do
|
55
64
|
e = assert_raises RuntimeError do
|
56
65
|
check_manifest
|
57
66
|
end
|
58
67
|
end
|
59
68
|
|
60
69
|
assert_match %r%^Command failed with status%, e.message
|
61
|
-
|
62
70
|
assert_match %r%^\+missing.rb%, out
|
71
|
+
assert_equal "", err
|
63
72
|
end
|
64
73
|
end
|
65
74
|
|
66
|
-
def capture_STDOUT
|
67
|
-
orig_STDOUT = STDOUT.dup
|
68
|
-
|
69
|
-
Tempfile.open __name__ do |io|
|
70
|
-
STDOUT.reopen io
|
71
|
-
|
72
|
-
yield
|
73
|
-
|
74
|
-
io.flush
|
75
|
-
|
76
|
-
return File.read io.path
|
77
|
-
end
|
78
|
-
ensure
|
79
|
-
STDOUT.reopen orig_STDOUT
|
80
|
-
end
|
81
|
-
|
82
75
|
def in_tmpdir
|
83
76
|
old_LOAD_PATH = $LOAD_PATH.dup
|
84
77
|
$LOAD_PATH.map! { |path| File.expand_path path }
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hoe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 29
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 6
|
9
|
-
-
|
10
|
-
version: 3.6.
|
9
|
+
- 1
|
10
|
+
version: 3.6.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ryan Davis
|
@@ -36,7 +36,7 @@ cert_chain:
|
|
36
36
|
FBHgymkyj/AOSqKRIpXPhjC6
|
37
37
|
-----END CERTIFICATE-----
|
38
38
|
|
39
|
-
date: 2013-
|
39
|
+
date: 2013-05-10 00:00:00 Z
|
40
40
|
dependencies:
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
@@ -68,11 +68,11 @@ dependencies:
|
|
68
68
|
requirements:
|
69
69
|
- - ~>
|
70
70
|
- !ruby/object:Gem::Version
|
71
|
-
hash:
|
71
|
+
hash: 31
|
72
72
|
segments:
|
73
|
-
-
|
74
|
-
-
|
75
|
-
version: "
|
73
|
+
- 5
|
74
|
+
- 0
|
75
|
+
version: "5.0"
|
76
76
|
type: :development
|
77
77
|
version_requirements: *id002
|
78
78
|
- !ruby/object:Gem::Dependency
|
metadata.gz.sig
CHANGED
Binary file
|