hoe 3.21.0 → 3.22.0

Sign up to get free protection for your applications and to get access to all the features.
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