hoe 4.5.0 → 4.5.1.beta.5

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: d748b707bbac7227b49c4cbb8f0a9bb86fca5bdb888b5777fe397e992c5f0ab6
4
- data.tar.gz: 852ac4e7b19085650bf59100d204ecc2a7d17d199ad9dea5a18b03e932759839
3
+ metadata.gz: 2e34acae9e45333865f0b65998d2ce58d20208ce3c9799a7a7ee800b007e5f6b
4
+ data.tar.gz: ee1768f04335c9462512ec105c95369ed1ee9959e1aab10189af5fc58a2d0dbd
5
5
  SHA512:
6
- metadata.gz: f306370fc2778a4cf015df82b93a61c13caf08eaaf867ab8e7a4d3ef5010df70d5e9d648769004b47889d7e55d6c63846d2e73dfe999b2409fb078c88411dcdd
7
- data.tar.gz: f0bb47cc94f3bdf33cc68c9ceb07347219e443540f51abbac269acd6eefc39f333f48b4156acaad64307a83f510ee9921d4503c7c44a13e7dff4faed540b7860
6
+ metadata.gz: ea349d8441fc8a75bc48dc8bcb4ba3d3192b72df536bbdbf60e02601a8e23e691a692a393dfc84d90bb348edb0c0c8da53328f56ab72e9d7100148a610ccf442
7
+ data.tar.gz: b505f065725e255e6970e2760a28fa26339c1d5d6b9be642d744cc406fa48c2f76d6112ee33628e9a7652ed403a609d6050d78bfac51901ca68b05de1fd39064
checksums.yaml.gz.sig CHANGED
Binary file
data/History.rdoc CHANGED
@@ -1,3 +1,10 @@
1
+ === 4.5.1 / 2026-01-02
2
+
3
+ * 2 bug fixes:
4
+
5
+ * Bump rdoc dependency to include 7.x.
6
+ * Fix to load hoe plugins w/ camel-case.
7
+
1
8
  === 4.5.0 / 2025-12-24
2
9
 
3
10
  * 3 minor enhancements:
data/README.rdoc CHANGED
@@ -1,12 +1,12 @@
1
1
  = Hoe
2
2
 
3
- home :: http://www.zenspider.com/projects/hoe.html
3
+ home :: https://zenspider.com/projects/hoe.html
4
4
  code :: https://github.com/seattlerb/hoe
5
5
  bugs :: https://github.com/seattlerb/hoe/issues
6
- rdoc :: http://docs.seattlerb.org/hoe/
7
- doco :: http://docs.seattlerb.org/hoe/Hoe.pdf
6
+ doco :: https://docs.seattlerb.org/hoe/
7
+ doco2 :: https://docs.seattlerb.org/hoe/Hoe.pdf
8
8
  clog :: https://github.com/seattlerb/hoe/blob/master/History.rdoc
9
- other :: http://github.com/jbarnette/hoe-plugin-examples
9
+ other :: https://github.com/jbarnette/hoe-plugin-examples
10
10
 
11
11
  == DESCRIPTION:
12
12
 
@@ -19,7 +19,7 @@ testing, packaging, deployment, and announcement.
19
19
  See class rdoc for help. Hint: `ri Hoe` or any of the plugins listed
20
20
  below.
21
21
 
22
- For extra goodness, see: http://docs.seattlerb.org/hoe/Hoe.pdf
22
+ For extra goodness, see: https://docs.seattlerb.org/hoe/Hoe.pdf
23
23
 
24
24
  == FEATURES/PROBLEMS:
25
25
 
@@ -205,7 +205,7 @@ Again, this must be done before the Hoe spec, or it won't be useful.
205
205
  * hoe-rubygems - A Hoe plugin with additional RubyGems tasks (John Barnette)
206
206
  * hoe-seattlerb - Hoe plugins providing tasks used by seattle.rb including minitest, perforce, and email providing full front-to-back release/announce automation. (Ryan Davis)
207
207
  * hoe-telicopter - Hoe plugin providing tasks used by hotelicopter, currently just the email plugin from the seattlerb plugin by Ryan Davis (jim nist)
208
- * hoe-travis - hoe-travis is a Hoe plugin that allows your gem to gain maximum benefit from http://travis-ci.org (Eric Hodel)
208
+ * hoe-travis - hoe-travis is a Hoe plugin that allows your gem to gain maximum benefit from https://travis-ci.org (Eric Hodel)
209
209
  * hoe-version - Hoe plugin to provide rake tasks to bump version (bhenderson)
210
210
  * hoe-yard - A Hoe plugin for generating YARD documentation (Postmodern)
211
211
 
data/lib/hoe/publish.rb CHANGED
@@ -100,7 +100,7 @@ module Hoe::Publish
100
100
  # Declare a dependency on rdoc, IF NEEDED.
101
101
 
102
102
  def activate_publish_deps
103
- dependency "rdoc", [">= 4.0", "< 7"], :developer if need_rdoc
103
+ dependency "rdoc", [">= 6.0", "< 8"], :developer if need_rdoc
104
104
  end
105
105
 
106
106
  ##
@@ -117,7 +117,8 @@ module Hoe::Publish
117
117
 
118
118
  desc "Generate rdoc coverage report"
119
119
  task :dcov => :isolate do
120
- sh(*make_rdoc_cmd("-C"))
120
+ level = ENV["L"]
121
+ sh(*make_rdoc_cmd("-C#{level}"))
121
122
  end
122
123
 
123
124
  desc "Remove RDoc files"
data/lib/hoe.rb CHANGED
@@ -87,7 +87,7 @@ class Hoe
87
87
  include Rake::DSL if defined?(Rake::DSL)
88
88
 
89
89
  # duh
90
- VERSION = "4.5.0"
90
+ VERSION = "4.5.1.beta.5"
91
91
 
92
92
  @@plugins = [:clean, :debug, :deps, :flay, :flog, :newb, :package,
93
93
  :publish, :gemcutter, :signing, :test]
@@ -114,12 +114,20 @@ class Hoe
114
114
  URLS_TO_META_MAP = {
115
115
  "bugs" => "bug_tracker_uri",
116
116
  "clog" => "changelog_uri",
117
+ "code" => "source_code_uri",
117
118
  "doco" => "documentation_uri",
118
119
  "docs" => "documentation_uri",
119
120
  "home" => "homepage_uri",
120
- "code" => "source_code_uri",
121
- "wiki" => "wiki_uri",
122
121
  "mail" => "mailing_list_uri",
122
+ "wiki" => "wiki_uri",
123
+
124
+ "changelog" => "changelog_uri",
125
+ "changes" => "changelog_uri",
126
+ "documentation" => "documentation_uri",
127
+ "history" => "changelog_uri",
128
+ "issues" => "bug_tracker_uri",
129
+ "rdoc" => "documentation_uri",
130
+ "tickets" => "bug_tracker_uri",
123
131
  }
124
132
 
125
133
  ##
@@ -162,6 +170,13 @@ class Hoe
162
170
 
163
171
  attr_accessor :description_sections
164
172
 
173
+ ##
174
+ # Optional: Add a (hopefully hidden) H2 to the description to force
175
+ # rubygems.org to properly render the description as rdoc. Defaults
176
+ # to true.
177
+
178
+ attr_accessor :description_rdoc_hack
179
+
165
180
  ##
166
181
  # *MANDATORY*: The author's email address(es). (can be array)
167
182
  #
@@ -428,7 +443,8 @@ class Hoe
428
443
  names.reject! { |n| n =~ /^[A-Z_]+$/ }
429
444
 
430
445
  names.each do |name|
431
- next unless Hoe.plugins.include? name.downcase.intern
446
+ underscored = name.gsub(/(?<!^)(?=[A-Z])/, "_").downcase.intern
447
+ next unless Hoe.plugins.include? underscored
432
448
  warn "extend #{name}" if $DEBUG
433
449
  self.extend Hoe.const_get(name)
434
450
  end
@@ -643,7 +659,8 @@ class Hoe
643
659
  self.author = []
644
660
  self.changes = nil
645
661
  self.description = nil
646
- self.description_sections = %w[description]
662
+ self.description_sections = %w[description features/problems]
663
+ self.description_rdoc_hack = true
647
664
  self.email = []
648
665
  self.extra_deps = []
649
666
  self.extra_dev_deps = []
@@ -683,21 +700,24 @@ class Hoe
683
700
  .chunk { |l| l[/^(?:=+|#+)/] || "" }
684
701
  .map(&:last)
685
702
  .each_slice(2)
703
+ .select { |k, v| k && v }
686
704
  .to_h { |k, v|
687
- raise "No body for %p section" % [k[0].strip] \
688
- unless v
689
- kp = k.map { |s|
690
- s.strip.chomp(":").sub(/(?:=+|#+)\s*/, '').downcase
691
- }.join("\n")
705
+ kp = k.join.strip.chomp(":").sub(/(?:=+|#+)\s*/, '').downcase
706
+
707
+ # keep key in value, but title case it
708
+ v.prepend k.join.downcase.gsub(/\b[a-z]/, &:upcase)
692
709
 
693
710
  [kp, v.join.strip]
694
711
  }
695
712
 
696
713
  unless readme.empty? then
697
- desc = readme.values_at(*description_sections).join("\n\n")
714
+ desc = readme.values_at(*description_sections).compact.join("\n\n")
715
+ desc = desc.lines.drop(2).join # drop first header (eg description)
716
+ desc += "\n\n==== To Install:\n" if description_rdoc_hack &&
717
+ desc !~ /^==+ [A-Z]/
698
718
  summ = desc.split(/\.\s+/).first(summary_sentences).join(". ")
699
719
 
700
- self.urls ||= parse_urls(readme.values.first)
720
+ self.urls ||= parse_urls(readme.values.first.lines.drop(1).join)
701
721
  self.description ||= desc
702
722
  self.summary ||= summ
703
723
  else
@@ -732,13 +752,10 @@ class Hoe
732
752
  # should update the readme.
733
753
 
734
754
  def parse_urls text
735
- lines = text.gsub(/^\* /, "").delete("<>").split(/\n/).grep(/\S+/)
755
+ keys = Regexp.union Hoe::URLS_TO_META_MAP.keys
756
+ kv_re = /^\s*(#{keys})\s*::\s*<?([^>\s]+)>?/
736
757
 
737
- if lines.first =~ /::/ then
738
- Hash[lines.map { |line| line.split(/\s*::\s*/) }]
739
- else
740
- raise "Please switch readme to hash format for urls."
741
- end
758
+ text.scan(kv_re).to_h
742
759
  end
743
760
 
744
761
  ##
@@ -771,11 +788,12 @@ class Hoe
771
788
  end
772
789
 
773
790
  ##
774
- # Bitch about a file that is missing data or unparsable for intuiting values.
791
+ # Raise about a file that is missing data or unparsable for intuiting values.
775
792
 
776
793
  def missing name
777
- warn "** #{name} is missing or in the wrong format for auto-intuiting."
778
- warn " run `sow blah` and look at its text files"
794
+ raise \
795
+ "** #{name} is missing or in the wrong format for auto-intuiting." \
796
+ " run `sow blah` and look at its text files"
779
797
  end
780
798
 
781
799
  ##
data/test/test_hoe.rb CHANGED
@@ -8,9 +8,16 @@ class Hoe
8
8
  end
9
9
  end
10
10
 
11
- $rakefile = nil # shuts up a warning in rdoctask.rb
12
-
13
11
  class TestHoe < Minitest::Test
12
+ def without_plugins
13
+ old = Hoe.plugins.dup
14
+ Hoe.plugins.clear
15
+
16
+ yield
17
+ ensure
18
+ Hoe.plugins.replace old
19
+ end
20
+
14
21
  def hoe *skips, &b
15
22
  @hoe ||= Hoe.spec "blah" do
16
23
  developer "author", "email"
@@ -150,6 +157,8 @@ class TestHoe < Minitest::Test
150
157
  File.write "README.rdoc", "= blah\n\nhome :: http://blah/"
151
158
  File.write "History.rdoc", "=== 1.0"
152
159
 
160
+ hoe = without_plugins { self.hoe }
161
+
153
162
  assert_equal "History.rdoc", hoe.history_file
154
163
  assert_equal "README.rdoc", hoe.readme_file
155
164
  assert_equal %w[FAQ.rdoc History.rdoc README.rdoc],
@@ -180,7 +189,7 @@ class TestHoe < Minitest::Test
180
189
  hoe
181
190
  end
182
191
 
183
- assert_equal "No body for \"= blah\" section", e.message
192
+ assert_match(/wrong format/, e.message)
184
193
  end
185
194
  end
186
195
  end
@@ -196,30 +205,17 @@ class TestHoe < Minitest::Test
196
205
  end
197
206
  end
198
207
 
199
- def test_parse_urls_ary
200
- ary = ["* https://github.com/seattlerb/hoe",
201
- "* http://docs.seattlerb.org/hoe/",
202
- "* http://docs.seattlerb.org/hoe/Hoe.pdf",
203
- "* http://github.com/jbarnette/hoe-plugin-examples"].join "\n"
204
-
205
- assert_raises RuntimeError do
206
- hoe.parse_urls ary
207
- end
208
- end
209
-
210
208
  def test_parse_urls_hash
211
209
  hash = [
212
210
  "home :: https://github.com/seattlerb/hoe",
213
- "rdoc :: http://docs.seattlerb.org/hoe/",
214
- "doco :: http://docs.seattlerb.org/hoe/Hoe.pdf",
215
- "other :: http://github.com/jbarnette/hoe-plugin-examples",
211
+ "rdoc :: https://docs.seattlerb.org/hoe/",
212
+ "doco2 :: https://docs.seattlerb.org/hoe/Hoe.pdf",
213
+ "other :: https://github.com/jbarnette/hoe-plugin-examples",
216
214
  ].join "\n"
217
215
 
218
216
  exp = {
219
- "home" => "https://github.com/seattlerb/hoe",
220
- "rdoc" => "http://docs.seattlerb.org/hoe/",
221
- "doco" => "http://docs.seattlerb.org/hoe/Hoe.pdf",
222
- "other" => "http://github.com/jbarnette/hoe-plugin-examples",
217
+ "home" => "https://github.com/seattlerb/hoe",
218
+ "rdoc" => "https://docs.seattlerb.org/hoe/",
223
219
  }
224
220
 
225
221
  assert_equal exp, hoe.parse_urls(hash)
@@ -242,8 +238,6 @@ class TestHoe < Minitest::Test
242
238
  make working with file tasks cleaner, easier, and faster.
243
239
  EOM
244
240
 
245
-
246
-
247
241
  assert_silent do
248
242
  h = Hoe.spec "blah" do
249
243
  developer "author", "email"
@@ -258,13 +252,17 @@ class TestHoe < Minitest::Test
258
252
  end
259
253
 
260
254
  desc = mrww_readme.lines[10..11].join.chomp
255
+ summ = desc.chomp(".")
256
+ rdoc = "\n\n==== To Install:\n"
257
+ desc += rdoc
258
+
261
259
  urls = {
262
260
  "home" => "https://github.com/seattlerb/makerakeworkwell",
263
261
  "rdoc" => "http://docs.seattlerb.org/makerakeworkwell"
264
262
  }
265
263
 
266
264
  assert_equal desc, h.description
267
- assert_equal desc, h.summary
265
+ assert_equal summ, h.summary
268
266
  assert_equal urls, h.urls
269
267
  end
270
268
 
@@ -352,6 +350,8 @@ class TestHoe < Minitest::Test
352
350
  assert_equal exp, hoe.parse_urls(hash)
353
351
  end
354
352
 
353
+ make_my_diffs_pretty!
354
+
355
355
  def test_possibly_better
356
356
  t = Gem::Specification::TODAY
357
357
 
@@ -365,13 +365,11 @@ class TestHoe < Minitest::Test
365
365
  spec.date = nil # forces Date.today. default switched to 1980 for some reason
366
366
 
367
367
  urls = {
368
- "home" => "http://www.zenspider.com/projects/hoe.html",
368
+ "home" => "https://zenspider.com/projects/hoe.html",
369
369
  "code" => "https://github.com/seattlerb/hoe",
370
370
  "bugs" => "https://github.com/seattlerb/hoe/issues",
371
- "rdoc" => "http://docs.seattlerb.org/hoe/",
372
- "doco" => "http://docs.seattlerb.org/hoe/Hoe.pdf",
371
+ "doco" => "https://docs.seattlerb.org/hoe/",
373
372
  "clog" => "https://github.com/seattlerb/hoe/blob/master/History.rdoc",
374
- "other" => "http://github.com/jbarnette/hoe-plugin-examples",
375
373
  }
376
374
 
377
375
  assert_equal urls, hoe.urls
@@ -397,9 +395,11 @@ class TestHoe < Minitest::Test
397
395
 
398
396
  deps = spec.dependencies.sort_by(&:name)
399
397
 
398
+ version = Hoe::VERSION[/\d+\.\d+/]
399
+
400
400
  expected = [
401
- ["hoe", :development, "~> #{Hoe::VERSION.sub(/\.\d+$/, "")}"],
402
- ["rdoc", :development, "< 7", ">= 4.0"],
401
+ ["hoe", :development, "~> #{version}"],
402
+ ["rdoc", :development, "< 8", ">= 6.0"],
403
403
  ]
404
404
 
405
405
  assert_equal expected, deps.map { |dep|
data.tar.gz.sig CHANGED
Binary file
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: 4.5.0
4
+ version: 4.5.1.beta.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -9,9 +9,9 @@ bindir: bin
9
9
  cert_chain:
10
10
  - |
11
11
  -----BEGIN CERTIFICATE-----
12
- MIIDPjCCAiagAwIBAgIBCTANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
12
+ MIIDPjCCAiagAwIBAgIBCjANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
13
13
  ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
14
- GRYDY29tMB4XDTI1MDEwNjIzMjcwMVoXDTI2MDEwNjIzMjcwMVowRTETMBEGA1UE
14
+ GRYDY29tMB4XDTI2MDEwNzAxMDkxNFoXDTI3MDEwNzAxMDkxNFowRTETMBEGA1UE
15
15
  AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
16
16
  JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
17
17
  b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
@@ -21,12 +21,12 @@ cert_chain:
21
21
  qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
22
22
  gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
23
23
  HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
24
- AQAC0WQJcPOWPFwkojhzweilRVjTJ19UiLhiBTw3C1wJO3LVdBkWDmnnhAmKuX4D
25
- r7vjQvESlABGIPdutI1Yl7mrHQzTkfLfXvNN6MT0nLChPyIYauT6SZZxubwJrUfA
26
- 7R0c2CJTIboZ0XaGpLsXqHEF1c29H7TV1QvVuqKAN2mCjh4N82QVn+ZKtys28AwT
27
- 6GfQX2fqLoi4KSc7xIzHKaNzqxeOICmJofk9w5VZ2rRN6yes8jvFYwz9HR41wdj8
28
- bwfinv7Yp5fA6AysuZLhCykyfDuZVRrUp0Vb68YCKsLjJly/Theak+euNTxvHsB+
29
- al9oSgPPHICMEX65qvLywitx
24
+ AQA/X8/PKTTc/IkYQEUL6XWtfK8fAfbuLJzmLcz6f2ZWrtBvPsYvqRuwI1bWUtil
25
+ 2ibJEfIuSIHX6BsUTX18+hlaIussf6EWq/YkE7e2BKmgQE42vSOZMce0kCEAPbx0
26
+ rQtqonfWTHQ8UbQ7GqCL3gDQ0QDD2B+HUlb4uaCZ2icxqa/eOtxMvHC2tj+h0xKY
27
+ xL84ipM5kr0bHGf9/MRZJWcw51urueNycBXu1Xh+pEN8qBmYsFRR4SIODLClybAO
28
+ 6cbm2PyPQgKNiqE4H+IQrDVHd9bJs1XgLElk3qoaJBWXc/5fy0J1imYb25UqmiHG
29
+ snGe1hrppvBRdcyEzvhfIPjI
30
30
  -----END CERTIFICATE-----
31
31
  date: 1980-01-02 00:00:00.000000000 Z
32
32
  dependencies:
@@ -50,20 +50,20 @@ dependencies:
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: '4.0'
53
+ version: '6.0'
54
54
  - - "<"
55
55
  - !ruby/object:Gem::Version
56
- version: '7'
56
+ version: '8'
57
57
  type: :development
58
58
  prerelease: false
59
59
  version_requirements: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - ">="
62
62
  - !ruby/object:Gem::Version
63
- version: '4.0'
63
+ version: '6.0'
64
64
  - - "<"
65
65
  - !ruby/object:Gem::Version
66
- version: '7'
66
+ version: '8'
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: simplecov
69
69
  requirement: !ruby/object:Gem::Requirement
@@ -88,7 +88,16 @@ description: |-
88
88
  See class rdoc for help. Hint: `ri Hoe` or any of the plugins listed
89
89
  below.
90
90
 
91
- For extra goodness, see: http://docs.seattlerb.org/hoe/Hoe.pdf
91
+ For extra goodness, see: https://docs.seattlerb.org/hoe/Hoe.pdf
92
+
93
+ == Features/Problems:
94
+
95
+ * Includes a dynamic plug-in system allowing for easy extensibility.
96
+ * Auto-intuits changes, description, summary, and version.
97
+ * Uses a manifest for safe and secure deployment.
98
+ * Provides 'sow' for quick project directory creation.
99
+ * Sow uses a simple ERB templating system allowing you to capture your
100
+ project patterns.
92
101
  email:
93
102
  - ryand-ruby@zenspider.com
94
103
  executables:
@@ -140,14 +149,14 @@ files:
140
149
  - test/test_hoe_package.rb
141
150
  - test/test_hoe_publish.rb
142
151
  - test/test_hoe_test.rb
143
- homepage: http://www.zenspider.com/projects/hoe.html
152
+ homepage: https://zenspider.com/projects/hoe.html
144
153
  licenses:
145
154
  - MIT
146
155
  metadata:
147
- homepage_uri: http://www.zenspider.com/projects/hoe.html
156
+ homepage_uri: https://zenspider.com/projects/hoe.html
148
157
  source_code_uri: https://github.com/seattlerb/hoe
149
158
  bug_tracker_uri: https://github.com/seattlerb/hoe/issues
150
- documentation_uri: http://docs.seattlerb.org/hoe/Hoe.pdf
159
+ documentation_uri: https://docs.seattlerb.org/hoe/
151
160
  changelog_uri: https://github.com/seattlerb/hoe/blob/master/History.rdoc
152
161
  rdoc_options:
153
162
  - "--main"
metadata.gz.sig CHANGED
Binary file