hoe 3.21.0 → 3.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bdbf38f3724fc0c8008428afdfde2009cf340d6a60912a8eb2e8ad8d7ee9120b
4
- data.tar.gz: 107816ce9cad15ce4dc4ff5fd94c68821ae9511c50de746bead5abe56c834d5d
3
+ metadata.gz: 5ae2cfa50c993889a68ef66dba42a8b5e17a4ffac2b98dfafc05c311a00e1fd2
4
+ data.tar.gz: 7b4b54d605a96d82705a246a106a5edab83be01569eb01a7ecee967e3e949362
5
5
  SHA512:
6
- metadata.gz: d8e020648a0a3e6d76cbb2a2f18be076369607eb19fe364d5b4c895eceab91d205ea2bdb39e4165a22bab944f662d009e5dec6ab3ab47731193e461b478fb41a
7
- data.tar.gz: d63cd16ac13754c3fbb7070ca03bc6d647ea86dc642466793ad5d87a8e2387edf5903017aa265b8edb127f7e235756bcc871be003d791d7c3e22462c05933ff2
6
+ metadata.gz: 7df4729a57c68240bb10095bbc540206e6a3d48768586f077f2a31f7bee24ab78bfe7e3dac06a349c6a6e310e2c47c7e6243ffbcdbcfc6fe6fcd9fb198d95fd3
7
+ data.tar.gz: 3f540d937cd32cf73607008a8d04af1613bcaa482ec265ac7e864396f4e26e0c3bdf0fa9e7f82d894bb0dde2f535d8b6f90051b72f10f53ac4f7feddb341c53c
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,17 @@
1
+ === 2.22.0 / 2020-02-09
2
+
3
+ * 4 minor enhancements:
4
+
5
+ * Added metadate mapping for 'docs'.
6
+ * Added rdoc extension to the history and readme file finder globs.
7
+ * Extended readme parsing to more intelligently deal with markup sections.
8
+ * Refactored intuit_values to take the file content as an arg.
9
+
10
+ * 2 bug fixes:
11
+
12
+ * Fixed ordering of test_prelude vs framework in Minitest::TestTask. (flavorjones)
13
+ * Fixed wiring of test_prelude into Minitest::TestTask.create. (flavorjones)
14
+
1
15
  === 3.21.0 / 2020-01-11
2
16
 
3
17
  * 2 minor enhancements:
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.21.0"
90
+ VERSION = "3.22.0"
95
91
 
96
92
  @@plugins = [:clean, :debug, :deps, :flay, :flog, :newb, :package,
97
93
  :publish, :gemcutter, :signing, :test]
@@ -119,6 +115,7 @@ 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",
124
121
  "wiki" => "wiki_uri",
@@ -650,8 +647,8 @@ class Hoe
650
647
  self.history_file = manifest.grep(/^History\./).first
651
648
  end
652
649
 
653
- self.history_file ||= Dir.glob("History.{txt,md}").first || "History.txt"
654
- 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"
655
652
 
656
653
  abort "Hoe.new {...} removed. Switch to Hoe.spec." if block_given?
657
654
  end
@@ -659,17 +656,23 @@ class Hoe
659
656
  ##
660
657
  # Intuit values from the readme and history files.
661
658
 
662
- def intuit_values
663
- header_re = /^((?:=+|#+) .*)$/
664
- readme = File.read_utf(readme_file).split(header_re)[1..-1] rescue ""
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
665
671
 
666
672
  unless readme.empty? then
667
- sections = Hash[*readme.map { |s|
668
- s =~ /^[=#]/ ? s.strip.downcase.chomp(":").split.last : s.strip
669
- }]
670
- desc = sections.values_at(*description_sections).join("\n\n")
673
+ desc = readme.values_at(*description_sections).join("\n\n")
671
674
  summ = desc.split(/\.\s+/).first(summary_sentences).join(". ")
672
- urls = parse_urls(readme[1])
675
+ urls = parse_urls(readme.values.first)
673
676
 
674
677
  self.urls ||= urls
675
678
  self.description ||= desc
@@ -808,7 +811,7 @@ class Hoe
808
811
 
809
812
  def post_initialize
810
813
  activate_plugin_deps
811
- intuit_values
814
+ intuit_values File.read_utf readme_file if readme_file
812
815
  validate_fields
813
816
  define_spec
814
817
  load_plugin_tasks
@@ -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 = self.test_prelude
85
+ t.test_prelude = test_prelude
85
86
  t.libs += Hoe.include_dirs.uniq
86
87
  end
87
88
  when :testunit then
@@ -259,8 +259,8 @@ module Minitest # :nodoc:
259
259
  tests.map! { |f| %(require "#{f}") }
260
260
 
261
261
  runner = []
262
- runner << framework
263
262
  runner << test_prelude if test_prelude
263
+ runner << framework
264
264
  runner.concat tests
265
265
  runner = runner.join "; "
266
266
 
@@ -217,6 +217,49 @@ class TestHoe < Minitest::Test
217
217
  assert_equal exp, hoe.parse_urls(hash)
218
218
  end
219
219
 
220
+ def test_parse_mrww
221
+ h = nil
222
+ mrww_readme = <<~EOM
223
+ = make
224
+ = rake
225
+ = work
226
+ = well
227
+
228
+ home :: https://github.com/seattlerb/makerakeworkwell
229
+ rdoc :: http://docs.seattlerb.org/makerakeworkwell
230
+
231
+ == DESCRIPTION:
232
+
233
+ make/rake/work/well provides two simple modifications to rake that
234
+ make working with file tasks cleaner, easier, and faster.
235
+ EOM
236
+
237
+
238
+
239
+ assert_silent do
240
+ h = Hoe.spec "blah" do
241
+ developer "author", "email"
242
+ license "MIT"
243
+ self.version = "1.0"
244
+ self.readme_file = nil
245
+ self.history_file = nil
246
+ self.changes = true
247
+
248
+ self.intuit_values mrww_readme
249
+ end
250
+ end
251
+
252
+ desc = mrww_readme.lines[10..11].join.chomp
253
+ urls = {
254
+ "home" => "https://github.com/seattlerb/makerakeworkwell",
255
+ "rdoc" => "http://docs.seattlerb.org/makerakeworkwell"
256
+ }
257
+
258
+ assert_equal desc, h.description
259
+ assert_equal desc, h.summary
260
+ assert_equal urls, h.urls
261
+ end
262
+
220
263
  def test_metadata
221
264
  hash = [
222
265
  "home :: https://github.com/seattlerb/hoe",
@@ -26,36 +26,77 @@ class TestHoeTest < Minitest::Test
26
26
  end
27
27
  end
28
28
 
29
- def test_make_test_cmd_with_different_testlibs
30
- skip "Using TESTOPTS... skipping" if ENV["TESTOPTS"]
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
- expected = ['-w -Ilib:bin:test:. -e \'require "rubygems"; %s',
33
- 'require "test/test_hoe_test.rb"',
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 expected % autorun, @tester.make_test_cmd
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 expected % testunit, @tester.make_test_cmd
53
+ assert_equal EXPECTED % testunit, @tester.make_test_cmd
47
54
  end
55
+ end
48
56
 
49
- assert_deprecated do
50
- @tester.testlib = :minitest
51
- autorun = %(require "minitest/autorun"; )
52
- assert_equal expected % autorun, @tester.make_test_cmd
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 expected % "", @tester.make_test_cmd
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.21.0
4
+ version: 3.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -29,7 +29,7 @@ cert_chain:
29
29
  m5x9IDiApM+vCELNwDXXGNFEnQBBK+wAe4Pek8o1V1TTOxL1kGPewVOitX1p3xoN
30
30
  h7iEjga8iM1LbZUfiISZ+WrB
31
31
  -----END CERTIFICATE-----
32
- date: 2020-01-11 00:00:00.000000000 Z
32
+ date: 2020-02-09 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: rake
metadata.gz.sig CHANGED
Binary file