hoe 3.19.0 → 3.22.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/History.rdoc +48 -0
- data/Rakefile +2 -1
- data/lib/hoe.rb +22 -18
- data/lib/hoe/debug.rb +16 -1
- data/lib/hoe/publish.rb +1 -1
- data/lib/hoe/signing.rb +7 -1
- data/lib/hoe/test.rb +2 -1
- data/lib/minitest/test_task.rb +110 -34
- data/test/test_hoe.rb +107 -1
- data/test/test_hoe_package.rb +1 -0
- data/test/test_hoe_publish.rb +5 -0
- data/test/test_hoe_test.rb +54 -13
- metadata +17 -14
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4967a1340b8eb2b55d288bee2557b2e578f2499db26fff69b94039024f58238b
|
4
|
+
data.tar.gz: e29e19572612d9faf06e1a4d05dfa23f0f22e5b8074756a3517a6231dce57eca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f478484bc6186cbebdfd4c739041254a66a235f5f6b49a1c4d6dc5ea82674a7587838ffe0c46400a38965134897e06e68245c4210619e203fcb4923897a3a6cc
|
7
|
+
data.tar.gz: bfa4732c2086479edaca5761f85924df6e3b377c9edaa37350273149a126f92151bef5508a46197489629f11ae2b058683a8a18e88cac88470db634ffc54eafe
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/History.rdoc
CHANGED
@@ -1,3 +1,51 @@
|
|
1
|
+
=== 3.22.2 / 2020-08-31
|
2
|
+
|
3
|
+
* 1 bug fix:
|
4
|
+
|
5
|
+
* Bumped ruby version to include 3.0 (trunk).
|
6
|
+
|
7
|
+
=== 3.22.1 / 2020-02-12
|
8
|
+
|
9
|
+
* 1 bug fix:
|
10
|
+
|
11
|
+
* Avoid calling parse_urls if URL metadata are already set. (flavorjones)
|
12
|
+
|
13
|
+
=== 2.22.0 / 2020-02-09
|
14
|
+
|
15
|
+
* 4 minor enhancements:
|
16
|
+
|
17
|
+
* Added metadate mapping for 'docs'.
|
18
|
+
* Added rdoc extension to the history and readme file finder globs.
|
19
|
+
* Extended readme parsing to more intelligently deal with markup sections.
|
20
|
+
* Refactored intuit_values to take the file content as an arg.
|
21
|
+
|
22
|
+
* 2 bug fixes:
|
23
|
+
|
24
|
+
* Fixed ordering of test_prelude vs framework in Minitest::TestTask. (flavorjones)
|
25
|
+
* Fixed wiring of test_prelude into Minitest::TestTask.create. (flavorjones)
|
26
|
+
|
27
|
+
=== 3.21.0 / 2020-01-11
|
28
|
+
|
29
|
+
* 2 minor enhancements:
|
30
|
+
|
31
|
+
* Added support for wiki_uri and mailing_list_uri. (JuanitoFatas)
|
32
|
+
* Load encrypted private key using ENV['GEM_PRIVATE_KEY_PASSPHRASE'] as passphrase. (larskanis)
|
33
|
+
|
34
|
+
* 5 bug fixes:
|
35
|
+
|
36
|
+
* Add require_ruby_version for 2.1+. (MSP-Greg)
|
37
|
+
* Fix a ruby 2.7 keyword arg deprecation. (anatol)
|
38
|
+
* Fix debug_gem task when you have a signing_key and broken rubygems (< 3.1.0).
|
39
|
+
* Fixed shadowed variable and json output for minitest's test:isolated task.
|
40
|
+
* Minor tweak to make hoe load when openssl isn't available.
|
41
|
+
|
42
|
+
=== 3.20.0 / 2019-11-09
|
43
|
+
|
44
|
+
* 2 minor enhancements:
|
45
|
+
|
46
|
+
* Added <test>:isolated task that runs tests in parallel. Replaces <test>:dep task.
|
47
|
+
* Bumped rake dependency to be < 15.
|
48
|
+
|
1
49
|
=== 3.19.0 / 2019-10-29
|
2
50
|
|
3
51
|
* 4 minor enhancements:
|
data/Rakefile
CHANGED
@@ -18,8 +18,9 @@ Hoe.spec "hoe" do
|
|
18
18
|
|
19
19
|
pluggable!
|
20
20
|
require_rubygems_version ">= 1.4"
|
21
|
+
require_ruby_version [">= 2.1", "< 3.1"]
|
21
22
|
|
22
|
-
dependency "rake", [">= 0.8", "<
|
23
|
+
dependency "rake", [">= 0.8", "< 15.0"] # FIX: to force it to exist pre-isolate
|
23
24
|
end
|
24
25
|
|
25
26
|
task :plugins do
|
data/lib/hoe.rb
CHANGED
@@ -1,7 +1,3 @@
|
|
1
|
-
# -*- mode: ruby; coding: us-ascii; -*-
|
2
|
-
|
3
|
-
require "rubygems"
|
4
|
-
|
5
1
|
begin
|
6
2
|
gem "rake"
|
7
3
|
rescue Gem::LoadError
|
@@ -91,7 +87,7 @@ class Hoe
|
|
91
87
|
include Rake::DSL if defined?(Rake::DSL)
|
92
88
|
|
93
89
|
# duh
|
94
|
-
VERSION = "3.
|
90
|
+
VERSION = "3.22.2"
|
95
91
|
|
96
92
|
@@plugins = [:clean, :debug, :deps, :flay, :flog, :newb, :package,
|
97
93
|
:publish, :gemcutter, :signing, :test]
|
@@ -119,8 +115,11 @@ class Hoe
|
|
119
115
|
"bugs" => "bug_tracker_uri",
|
120
116
|
"clog" => "changelog_uri",
|
121
117
|
"doco" => "documentation_uri",
|
118
|
+
"docs" => "documentation_uri",
|
122
119
|
"home" => "homepage_uri",
|
123
120
|
"code" => "source_code_uri",
|
121
|
+
"wiki" => "wiki_uri",
|
122
|
+
"mail" => "mailing_list_uri",
|
124
123
|
}
|
125
124
|
|
126
125
|
##
|
@@ -476,7 +475,7 @@ class Hoe
|
|
476
475
|
|
477
476
|
case name
|
478
477
|
when "hoe" then
|
479
|
-
|
478
|
+
# do nothing? these deps are already in the hoe spec in the Rakefile
|
480
479
|
else
|
481
480
|
version = VERSION.split(/\./).first(2).join(".")
|
482
481
|
dependency "hoe", "~> #{version}", :development
|
@@ -648,8 +647,8 @@ class Hoe
|
|
648
647
|
self.history_file = manifest.grep(/^History\./).first
|
649
648
|
end
|
650
649
|
|
651
|
-
self.history_file ||= Dir.glob("History.{txt,md}").first || "History.txt"
|
652
|
-
self.readme_file ||= Dir.glob("README.{txt,md}").first || "README.txt"
|
650
|
+
self.history_file ||= Dir.glob("History.{rdoc,txt,md}").first || "History.txt"
|
651
|
+
self.readme_file ||= Dir.glob("README.{rdoc,txt,md}").first || "README.txt"
|
653
652
|
|
654
653
|
abort "Hoe.new {...} removed. Switch to Hoe.spec." if block_given?
|
655
654
|
end
|
@@ -657,19 +656,24 @@ class Hoe
|
|
657
656
|
##
|
658
657
|
# Intuit values from the readme and history files.
|
659
658
|
|
660
|
-
def intuit_values
|
661
|
-
|
662
|
-
|
659
|
+
def intuit_values input
|
660
|
+
readme = input
|
661
|
+
.lines
|
662
|
+
.chunk { |l| l[/^(?:=+|#+)/] || "" }
|
663
|
+
.map(&:last)
|
664
|
+
.each_slice(2)
|
665
|
+
.map { |k, v|
|
666
|
+
kp = k.join
|
667
|
+
kp = kp.strip.chomp(":").split.last.downcase if k.size == 1
|
668
|
+
[kp, v.join.strip]
|
669
|
+
}
|
670
|
+
.to_h
|
663
671
|
|
664
672
|
unless readme.empty? then
|
665
|
-
|
666
|
-
s =~ /^[=#]/ ? s.strip.downcase.chomp(":").split.last : s.strip
|
667
|
-
}]
|
668
|
-
desc = sections.values_at(*description_sections).join("\n\n")
|
673
|
+
desc = readme.values_at(*description_sections).join("\n\n")
|
669
674
|
summ = desc.split(/\.\s+/).first(summary_sentences).join(". ")
|
670
|
-
urls = parse_urls(readme[1])
|
671
675
|
|
672
|
-
self.urls ||=
|
676
|
+
self.urls ||= parse_urls(readme.values.first)
|
673
677
|
self.description ||= desc
|
674
678
|
self.summary ||= summ
|
675
679
|
else
|
@@ -806,7 +810,7 @@ class Hoe
|
|
806
810
|
|
807
811
|
def post_initialize
|
808
812
|
activate_plugin_deps
|
809
|
-
intuit_values
|
813
|
+
intuit_values File.read_utf readme_file if readme_file
|
810
814
|
validate_fields
|
811
815
|
define_spec
|
812
816
|
load_plugin_tasks
|
data/lib/hoe/debug.rb
CHANGED
@@ -91,8 +91,23 @@ module Hoe::Debug
|
|
91
91
|
begin
|
92
92
|
sh "#{DIFF} -du Manifest.txt #{f}", verbose
|
93
93
|
ensure
|
94
|
-
rm f, verbose
|
94
|
+
rm f, **verbose
|
95
95
|
end
|
96
96
|
end
|
97
97
|
end
|
98
98
|
end
|
99
|
+
|
100
|
+
class Gem::Specification < Gem::BasicSpecification
|
101
|
+
alias old_ruby_code ruby_code
|
102
|
+
|
103
|
+
def ruby_code(obj)
|
104
|
+
old_ruby_code obj
|
105
|
+
rescue Gem::Exception => e
|
106
|
+
case e.message
|
107
|
+
when /OpenSSL/
|
108
|
+
"nil"
|
109
|
+
else
|
110
|
+
raise
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end unless Gem::VERSION >= "3.1.0"
|
data/lib/hoe/publish.rb
CHANGED
data/lib/hoe/signing.rb
CHANGED
@@ -24,6 +24,9 @@
|
|
24
24
|
#
|
25
25
|
# Keep your private key secret! Keep your private key safe!
|
26
26
|
#
|
27
|
+
# You can provide your private key passphrase via the
|
28
|
+
# GEM_PRIVATE_KEY_PASSPHRASE environment variable.
|
29
|
+
#
|
27
30
|
# To make sure your gems are signed run:
|
28
31
|
#
|
29
32
|
# rake package; tar tf pkg/yourproject-1.2.3.gem
|
@@ -54,6 +57,8 @@ module Hoe::Signing
|
|
54
57
|
task :check_key do
|
55
58
|
check_key_task
|
56
59
|
end
|
60
|
+
rescue NameError
|
61
|
+
warn "Couldn't set up signing (openssl error?). Skipping."
|
57
62
|
end
|
58
63
|
|
59
64
|
def set_up_signing # :nodoc:
|
@@ -70,7 +75,8 @@ module Hoe::Signing
|
|
70
75
|
end
|
71
76
|
|
72
77
|
if signing_key and cert_chain then
|
73
|
-
|
78
|
+
passphrase = ENV['GEM_PRIVATE_KEY_PASSPHRASE']
|
79
|
+
spec.signing_key = OpenSSL::PKey::RSA.new(File.read(signing_key), passphrase)
|
74
80
|
spec.cert_chain = cert_chain
|
75
81
|
end
|
76
82
|
end
|
data/lib/hoe/test.rb
CHANGED
@@ -80,8 +80,9 @@ module Hoe::Test
|
|
80
80
|
when :minitest then
|
81
81
|
require "minitest/test_task" # currently in hoe, but will move
|
82
82
|
|
83
|
+
test_prelude = self.test_prelude
|
83
84
|
Minitest::TestTask.create :test do |t|
|
84
|
-
t.test_prelude =
|
85
|
+
t.test_prelude = test_prelude
|
85
86
|
t.libs += Hoe.include_dirs.uniq
|
86
87
|
end
|
87
88
|
when :testunit then
|
data/lib/minitest/test_task.rb
CHANGED
@@ -19,20 +19,19 @@ module Minitest # :nodoc:
|
|
19
19
|
#
|
20
20
|
# The most basic and default setup.
|
21
21
|
#
|
22
|
-
# Minitest::TestTask.create :
|
22
|
+
# Minitest::TestTask.create :my_tests
|
23
23
|
#
|
24
24
|
# The most basic/default setup, but with a custom name
|
25
25
|
#
|
26
|
-
# Minitest::TestTask.create :
|
27
|
-
# t.test_globs = ["
|
28
|
-
# t.
|
26
|
+
# Minitest::TestTask.create :unit do |t|
|
27
|
+
# t.test_globs = ["test/unit/**/*_test.rb"]
|
28
|
+
# t.warning = false
|
29
29
|
# end
|
30
30
|
#
|
31
|
-
# Customize the name
|
32
|
-
# of test.
|
31
|
+
# Customize the name and only run unit tests.
|
33
32
|
|
34
33
|
class TestTask < Rake::TaskLib
|
35
|
-
WINDOWS = RbConfig::CONFIG["host_os"] =~ /mswin|mingw/ # :nodoc:
|
34
|
+
WINDOWS = RbConfig::CONFIG["host_os"] =~ /mswin|mingw/ # :nodoc:
|
36
35
|
|
37
36
|
##
|
38
37
|
# Create several test-oriented tasks under +name+. Takes an
|
@@ -50,10 +49,11 @@ module Minitest # :nodoc:
|
|
50
49
|
# Extra arguments to pass to the tests. Defaults empty but gets
|
51
50
|
# populated by a number of enviroment variables:
|
52
51
|
#
|
53
|
-
#
|
54
|
-
#
|
55
|
-
#
|
56
|
-
#
|
52
|
+
# N (-n flag) :: a string or regexp of tests to run.
|
53
|
+
# X (-e flag) :: a string or regexp of tests to exclude.
|
54
|
+
# A (arg) :: quick way to inject an arbitrary argument (eg A=--help).
|
55
|
+
#
|
56
|
+
# See #process_env
|
57
57
|
|
58
58
|
attr_accessor :extra_args
|
59
59
|
|
@@ -94,11 +94,14 @@ module Minitest # :nodoc:
|
|
94
94
|
attr_accessor :test_prelude
|
95
95
|
|
96
96
|
##
|
97
|
-
# Print out commands as they run. Defaults to Rake's trace (-t
|
97
|
+
# Print out commands as they run. Defaults to Rake's +trace+ (-t
|
98
98
|
# flag) option.
|
99
99
|
|
100
100
|
attr_accessor :verbose
|
101
101
|
|
102
|
+
##
|
103
|
+
# Use TestTask.create instead.
|
104
|
+
|
102
105
|
def initialize name = :test # :nodoc:
|
103
106
|
self.extra_args = []
|
104
107
|
self.framework = %(require "minitest/autorun")
|
@@ -113,20 +116,20 @@ module Minitest # :nodoc:
|
|
113
116
|
|
114
117
|
##
|
115
118
|
# Extract variables from the environment and convert them to
|
116
|
-
# command line arguments. See
|
119
|
+
# command line arguments. See #extra_args.
|
117
120
|
#
|
118
121
|
# Environment Variables:
|
119
122
|
#
|
120
|
-
#
|
121
|
-
#
|
122
|
-
#
|
123
|
-
#
|
123
|
+
# MT_LIB_EXTRAS :: Extra libs to dynamically override/inject for custom runs.
|
124
|
+
# N :: Tests to run (string or /regexp/).
|
125
|
+
# X :: Tests to exclude (string or /regexp/).
|
126
|
+
# A :: Any extra arguments. Honors shell quoting.
|
124
127
|
#
|
125
128
|
# Deprecated:
|
126
129
|
#
|
127
|
-
#
|
128
|
-
#
|
129
|
-
#
|
130
|
+
# TESTOPTS :: For argument passing, use +A+.
|
131
|
+
# N :: For parallel testing, use +MT_CPU+.
|
132
|
+
# FILTER :: Same as +TESTOPTS+.
|
130
133
|
|
131
134
|
def process_env
|
132
135
|
warn "TESTOPTS is deprecated in Minitest::TestTask. Use A instead" if
|
@@ -153,10 +156,7 @@ module Minitest # :nodoc:
|
|
153
156
|
extra_args.compact!
|
154
157
|
end
|
155
158
|
|
156
|
-
|
157
|
-
# Create the tasks.
|
158
|
-
|
159
|
-
def define
|
159
|
+
def define # :nodoc:
|
160
160
|
default_tasks = []
|
161
161
|
|
162
162
|
desc "Run the test suite. Use N, X, A, and TESTOPTS to add flags/args."
|
@@ -169,24 +169,73 @@ module Minitest # :nodoc:
|
|
169
169
|
puts "ruby #{make_test_cmd}"
|
170
170
|
end
|
171
171
|
|
172
|
-
desc "Show which test files fail when run
|
173
|
-
task "#{name}:
|
172
|
+
desc "Show which test files fail when run in isolation."
|
173
|
+
task "#{name}:isolated" do
|
174
174
|
tests = Dir[*self.test_globs].uniq
|
175
175
|
|
176
|
-
|
176
|
+
# 3 seems to be the magic number... (tho not by that much)
|
177
|
+
bad, good, n = {}, [], (ENV.delete("K") || 3).to_i
|
178
|
+
file = ENV.delete("F")
|
179
|
+
times = {}
|
177
180
|
|
178
|
-
|
179
|
-
cmd = make_test_cmd test
|
181
|
+
tt0 = Time.now
|
180
182
|
|
181
|
-
|
182
|
-
|
183
|
+
n.threads_do tests.sort do |path|
|
184
|
+
t0 = Time.now
|
185
|
+
output = `#{Gem.ruby} #{make_test_cmd path} 2>&1`
|
186
|
+
t1 = Time.now - t0
|
187
|
+
|
188
|
+
times[path] = t1
|
189
|
+
|
190
|
+
if $?.success?
|
191
|
+
$stderr.print "."
|
192
|
+
good << path
|
183
193
|
else
|
184
|
-
|
185
|
-
|
194
|
+
$stderr.print "x"
|
195
|
+
bad[path] = output
|
186
196
|
end
|
187
197
|
end
|
198
|
+
|
199
|
+
puts "done"
|
200
|
+
puts "Ran in %.2f seconds" % [ Time.now - tt0 ]
|
201
|
+
|
202
|
+
if file then
|
203
|
+
require "json"
|
204
|
+
File.open file, "w" do |io|
|
205
|
+
io.puts JSON.pretty_generate times
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
unless good.empty?
|
210
|
+
puts
|
211
|
+
puts "# Good tests:"
|
212
|
+
puts
|
213
|
+
good.sort.each do |path|
|
214
|
+
puts "%.2fs: %s" % [times[path], path]
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
unless bad.empty?
|
219
|
+
puts
|
220
|
+
puts "# Bad tests:"
|
221
|
+
puts
|
222
|
+
bad.keys.sort.each do |path|
|
223
|
+
puts "%.2fs: %s" % [times[path], path]
|
224
|
+
end
|
225
|
+
puts
|
226
|
+
puts "# Bad Test Output:"
|
227
|
+
puts
|
228
|
+
bad.sort.each do |path, output|
|
229
|
+
puts
|
230
|
+
puts "# #{path}:"
|
231
|
+
puts output
|
232
|
+
end
|
233
|
+
exit 1
|
234
|
+
end
|
188
235
|
end
|
189
236
|
|
237
|
+
task "#{name}:deps" => "#{name}:isolated" # now just an alias
|
238
|
+
|
190
239
|
desc "Show bottom 25 tests wrt time."
|
191
240
|
task "#{name}:slow" do
|
192
241
|
sh ["rake #{name} TESTOPTS=-v",
|
@@ -210,8 +259,8 @@ module Minitest # :nodoc:
|
|
210
259
|
tests.map! { |f| %(require "#{f}") }
|
211
260
|
|
212
261
|
runner = []
|
213
|
-
runner << framework
|
214
262
|
runner << test_prelude if test_prelude
|
263
|
+
runner << framework
|
215
264
|
runner.concat tests
|
216
265
|
runner = runner.join "; "
|
217
266
|
|
@@ -227,3 +276,30 @@ module Minitest # :nodoc:
|
|
227
276
|
end
|
228
277
|
end
|
229
278
|
end
|
279
|
+
|
280
|
+
class Work < Queue
|
281
|
+
def initialize jobs = []
|
282
|
+
super()
|
283
|
+
|
284
|
+
jobs.each do |job|
|
285
|
+
self << job
|
286
|
+
end
|
287
|
+
|
288
|
+
close
|
289
|
+
end
|
290
|
+
end
|
291
|
+
|
292
|
+
class Integer
|
293
|
+
def threads_do(jobs) # :nodoc:
|
294
|
+
require "thread"
|
295
|
+
q = Work.new jobs
|
296
|
+
|
297
|
+
self.times.map {
|
298
|
+
Thread.new do
|
299
|
+
while job = q.pop # go until quit value
|
300
|
+
yield job
|
301
|
+
end
|
302
|
+
end
|
303
|
+
}.each(&:join)
|
304
|
+
end
|
305
|
+
end
|
data/test/test_hoe.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# coding: utf-8
|
1
2
|
require "minitest/autorun"
|
2
3
|
require "hoe"
|
3
4
|
require "tempfile"
|
@@ -217,6 +218,109 @@ class TestHoe < Minitest::Test
|
|
217
218
|
assert_equal exp, hoe.parse_urls(hash)
|
218
219
|
end
|
219
220
|
|
221
|
+
def test_parse_mrww
|
222
|
+
h = nil
|
223
|
+
mrww_readme = <<~EOM
|
224
|
+
= make
|
225
|
+
= rake
|
226
|
+
= work
|
227
|
+
= well
|
228
|
+
|
229
|
+
home :: https://github.com/seattlerb/makerakeworkwell
|
230
|
+
rdoc :: http://docs.seattlerb.org/makerakeworkwell
|
231
|
+
|
232
|
+
== DESCRIPTION:
|
233
|
+
|
234
|
+
make/rake/work/well provides two simple modifications to rake that
|
235
|
+
make working with file tasks cleaner, easier, and faster.
|
236
|
+
EOM
|
237
|
+
|
238
|
+
|
239
|
+
|
240
|
+
assert_silent do
|
241
|
+
h = Hoe.spec "blah" do
|
242
|
+
developer "author", "email"
|
243
|
+
license "MIT"
|
244
|
+
self.version = "1.0"
|
245
|
+
self.readme_file = nil
|
246
|
+
self.history_file = nil
|
247
|
+
self.changes = true
|
248
|
+
|
249
|
+
self.intuit_values mrww_readme
|
250
|
+
end
|
251
|
+
end
|
252
|
+
|
253
|
+
desc = mrww_readme.lines[10..11].join.chomp
|
254
|
+
urls = {
|
255
|
+
"home" => "https://github.com/seattlerb/makerakeworkwell",
|
256
|
+
"rdoc" => "http://docs.seattlerb.org/makerakeworkwell"
|
257
|
+
}
|
258
|
+
|
259
|
+
assert_equal desc, h.description
|
260
|
+
assert_equal desc, h.summary
|
261
|
+
assert_equal urls, h.urls
|
262
|
+
end
|
263
|
+
|
264
|
+
def test_intuit_values_should_be_silent_if_urls_are_already_set
|
265
|
+
h = nil
|
266
|
+
nokogiri_readme = <<~EOM
|
267
|
+
## Links
|
268
|
+
|
269
|
+
* https://nokogiri.org
|
270
|
+
* [Installation Help](https://nokogiri.org/tutorials/installing_nokogiri.html)
|
271
|
+
* [Tutorials](https://nokogiri.org/tutorials/toc.html)
|
272
|
+
* [Cheat Sheet](https://github.com/sparklemotion/nokogiri/wiki/Cheat-sheet)
|
273
|
+
* [GitHub](https://github.com/sparklemotion/nokogiri)
|
274
|
+
* [Mailing List](https://groups.google.com/group/nokogiri-talk)
|
275
|
+
* [Chat/Gitter](https://gitter.im/sparklemotion/nokogiri)
|
276
|
+
|
277
|
+
EOM
|
278
|
+
|
279
|
+
exp = {
|
280
|
+
"home" => "https://nokogiri.org",
|
281
|
+
"bugs" => "https://github.com/sparklemotion/nokogiri/issues",
|
282
|
+
"doco" => "https://nokogiri.org/rdoc/index.html",
|
283
|
+
"clog" => "https://nokogiri.org/CHANGELOG.html",
|
284
|
+
"code" => "https://github.com/sparklemotion/nokogiri",
|
285
|
+
}
|
286
|
+
|
287
|
+
assert_silent do
|
288
|
+
h = Hoe.spec "blah" do
|
289
|
+
developer "author", "email"
|
290
|
+
license "MIT"
|
291
|
+
|
292
|
+
self.urls = exp
|
293
|
+
self.intuit_values nokogiri_readme
|
294
|
+
end
|
295
|
+
end
|
296
|
+
|
297
|
+
assert_equal exp, h.urls
|
298
|
+
end
|
299
|
+
|
300
|
+
def test_metadata
|
301
|
+
hash = [
|
302
|
+
"home :: https://github.com/seattlerb/hoe",
|
303
|
+
"doco :: http://docs.seattlerb.org/hoe/Hoe.pdf",
|
304
|
+
"clog :: https://github.com/seattlerb/hoe/master/History.rdoc",
|
305
|
+
"bugs :: https://github.com/seattlerb/hoe/issues",
|
306
|
+
"code :: https://github.com/seattlerb/hoe",
|
307
|
+
"wiki :: https://github.com/seattlerb/hoe/wiki",
|
308
|
+
"mail :: https://github.com/seattlerb/hoe/wiki#mailing_list",
|
309
|
+
].join "\n"
|
310
|
+
|
311
|
+
exp = {
|
312
|
+
"home" => "https://github.com/seattlerb/hoe",
|
313
|
+
"doco" => "http://docs.seattlerb.org/hoe/Hoe.pdf",
|
314
|
+
"clog" => "https://github.com/seattlerb/hoe/master/History.rdoc",
|
315
|
+
"bugs" => "https://github.com/seattlerb/hoe/issues",
|
316
|
+
"code" => "https://github.com/seattlerb/hoe",
|
317
|
+
"wiki" => "https://github.com/seattlerb/hoe/wiki",
|
318
|
+
"mail" => "https://github.com/seattlerb/hoe/wiki#mailing_list",
|
319
|
+
}
|
320
|
+
|
321
|
+
assert_equal exp, hoe.parse_urls(hash)
|
322
|
+
end
|
323
|
+
|
220
324
|
def test_possibly_better
|
221
325
|
t = Gem::Specification::TODAY
|
222
326
|
|
@@ -256,7 +360,7 @@ class TestHoe < Minitest::Test
|
|
256
360
|
assert_equal urls["home"], spec.homepage
|
257
361
|
assert_equal ["--main", "README.rdoc"], spec.rdoc_options
|
258
362
|
assert_equal ["lib"], spec.require_paths
|
259
|
-
assert_equal Gem::
|
363
|
+
assert_equal Gem::VERSION, spec.rubygems_version
|
260
364
|
assert_match(/^Hoe.*Rakefiles$/, spec.summary)
|
261
365
|
|
262
366
|
deps = spec.dependencies.sort_by(&:name)
|
@@ -391,6 +495,8 @@ class TestHoe < Minitest::Test
|
|
391
495
|
end
|
392
496
|
|
393
497
|
def test_with_config_overrides
|
498
|
+
require "hoe/debug" # modifies Hoe::DEFAULT_CONFIG["exclude"]
|
499
|
+
|
394
500
|
overrides = {
|
395
501
|
"exclude" => Regexp.union( Hoe::DEFAULT_CONFIG["exclude"], /\.hg/ ),
|
396
502
|
"plugins" => %w[tweedledee tweedledum],
|
data/test/test_hoe_package.rb
CHANGED
data/test/test_hoe_publish.rb
CHANGED
@@ -14,6 +14,10 @@ class TestHoePublish < Minitest::Test
|
|
14
14
|
|
15
15
|
make_my_diffs_pretty!
|
16
16
|
|
17
|
+
def linux? platform = RUBY_PLATFORM # TODO: push up to minitest?
|
18
|
+
/linux/ =~ platform
|
19
|
+
end
|
20
|
+
|
17
21
|
def test_make_rdoc_cmd
|
18
22
|
expected = %W[
|
19
23
|
#{Gem.ruby}
|
@@ -25,6 +29,7 @@ class TestHoePublish < Minitest::Test
|
|
25
29
|
History.rdoc Manifest.txt README.rdoc
|
26
30
|
]
|
27
31
|
|
32
|
+
skip if linux?
|
28
33
|
assert_equal expected, @hoe.make_rdoc_cmd
|
29
34
|
end
|
30
35
|
end
|
data/test/test_hoe_test.rb
CHANGED
@@ -26,36 +26,77 @@ class TestHoeTest < Minitest::Test
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
-
|
30
|
-
|
29
|
+
EXPECTED = %W[-w -Ilib:bin:test:.
|
30
|
+
-e 'require "rubygems"; %srequire "test/test_hoe_test.rb"'
|
31
|
+
--].join(" ") + " "
|
32
|
+
|
33
|
+
MT_EXPECTED = %W[-Ilib:test:. -w
|
34
|
+
-e '%srequire "test/test_hoe_test.rb"'
|
35
|
+
--].join(" ") + " "
|
31
36
|
|
32
|
-
|
33
|
-
|
34
|
-
"' -- ",
|
35
|
-
].join
|
37
|
+
def test_make_test_cmd_defaults_to_minitest
|
38
|
+
skip "Using TESTOPTS... skipping" if ENV["TESTOPTS"]
|
36
39
|
|
37
40
|
# default
|
38
41
|
assert_deprecated do
|
39
42
|
autorun = %(require "minitest/autorun"; )
|
40
|
-
assert_equal
|
43
|
+
assert_equal EXPECTED % autorun, @tester.make_test_cmd
|
41
44
|
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_make_test_cmd_for_testunit
|
48
|
+
skip "Using TESTOPTS... skipping" if ENV["TESTOPTS"]
|
42
49
|
|
43
50
|
assert_deprecated do
|
44
51
|
@tester.testlib = :testunit
|
45
52
|
testunit = %(require "test/unit"; )
|
46
|
-
assert_equal
|
53
|
+
assert_equal EXPECTED % testunit, @tester.make_test_cmd
|
47
54
|
end
|
55
|
+
end
|
48
56
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
57
|
+
def test_make_test_cmd_for_minitest
|
58
|
+
skip "Using TESTOPTS... skipping" if ENV["TESTOPTS"]
|
59
|
+
|
60
|
+
require "minitest/test_task" # currently in hoe, but will move
|
61
|
+
|
62
|
+
framework = %(require "minitest/autorun"; )
|
63
|
+
|
64
|
+
@tester = Minitest::TestTask.create :test do |t|
|
65
|
+
t.libs += Hoe.include_dirs.uniq
|
66
|
+
t.test_globs = ["test/test_hoe_test.rb"]
|
67
|
+
end
|
68
|
+
|
69
|
+
assert_equal MT_EXPECTED % [framework].join("; "), @tester.make_test_cmd
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_make_test_cmd_for_minitest_prelude
|
73
|
+
skip "Using TESTOPTS... skipping" if ENV["TESTOPTS"]
|
74
|
+
|
75
|
+
require "minitest/test_task" # currently in hoe, but will move
|
76
|
+
|
77
|
+
prelude = %(require "other/file")
|
78
|
+
framework = %(require "minitest/autorun"; )
|
79
|
+
|
80
|
+
@tester = Minitest::TestTask.create :test do |t|
|
81
|
+
t.test_prelude = prelude
|
82
|
+
t.libs += Hoe.include_dirs.uniq
|
83
|
+
t.test_globs = ["test/test_hoe_test.rb"]
|
53
84
|
end
|
54
85
|
|
86
|
+
assert_equal MT_EXPECTED % [prelude, framework].join("; "), @tester.make_test_cmd
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_make_test_cmd_for_no_framework
|
90
|
+
skip "Using TESTOPTS... skipping" if ENV["TESTOPTS"]
|
91
|
+
|
55
92
|
assert_deprecated do
|
56
93
|
@tester.testlib = :none
|
57
|
-
assert_equal
|
94
|
+
assert_equal EXPECTED % "", @tester.make_test_cmd
|
58
95
|
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_make_test_cmd_for_faketestlib
|
99
|
+
skip "Using TESTOPTS... skipping" if ENV["TESTOPTS"]
|
59
100
|
|
60
101
|
@tester.testlib = :faketestlib
|
61
102
|
e = assert_raises(RuntimeError) do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hoe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.22.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
@@ -10,9 +10,9 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
13
|
+
MIIDPjCCAiagAwIBAgIBBDANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
|
14
14
|
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
15
|
-
|
15
|
+
GRYDY29tMB4XDTE5MTIxMzAwMDIwNFoXDTIwMTIxMjAwMDIwNFowRTETMBEGA1UE
|
16
16
|
AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
|
17
17
|
JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
|
18
18
|
b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
|
@@ -22,14 +22,14 @@ cert_chain:
|
|
22
22
|
qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
|
23
23
|
gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
|
24
24
|
HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
25
|
+
AQCkkcHqAa6IKLYGl93rn78J3L+LnqyxaA059n4IGMHWN5bv9KBQnIjOrpLadtYZ
|
26
|
+
vhWkunWDKdfVapBEq5+T4HzqnsEXC3aCv6JEKJY6Zw7iSzl0M8hozuzRr+w46wvT
|
27
|
+
fV2yTN6QTVxqbMsJJyjosks4ZdQYov2zdvQpt1HsLi+Qmckmg8SPZsd+T8uiiBCf
|
28
|
+
b+1ORSM5eEfBQenPXy83LZcoQz8i6zVB4aAfTGGdhxjoMGUEmSZ6xpkOzmnGa9QK
|
29
|
+
m5x9IDiApM+vCELNwDXXGNFEnQBBK+wAe4Pek8o1V1TTOxL1kGPewVOitX1p3xoN
|
30
|
+
h7iEjga8iM1LbZUfiISZ+WrB
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date:
|
32
|
+
date: 2020-08-31 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: rake
|
@@ -40,7 +40,7 @@ dependencies:
|
|
40
40
|
version: '0.8'
|
41
41
|
- - "<"
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: '
|
43
|
+
version: '15.0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
46
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -50,7 +50,7 @@ dependencies:
|
|
50
50
|
version: '0.8'
|
51
51
|
- - "<"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
53
|
+
version: '15.0'
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
55
|
name: rdoc
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
@@ -152,14 +152,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
152
152
|
requirements:
|
153
153
|
- - ">="
|
154
154
|
- !ruby/object:Gem::Version
|
155
|
-
version: '
|
155
|
+
version: '2.1'
|
156
|
+
- - "<"
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '3.1'
|
156
159
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
160
|
requirements:
|
158
161
|
- - ">="
|
159
162
|
- !ruby/object:Gem::Version
|
160
163
|
version: '1.4'
|
161
164
|
requirements: []
|
162
|
-
rubygems_version: 3.
|
165
|
+
rubygems_version: 3.1.2
|
163
166
|
signing_key:
|
164
167
|
specification_version: 4
|
165
168
|
summary: Hoe is a rake/rubygems helper for project Rakefiles
|
metadata.gz.sig
CHANGED
Binary file
|