hoe 4.2.3 → 4.4.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: 2e26938682a47ca73f60f5c17f941f11d89859bd2e91b72a4b4a69ccadc33263
4
- data.tar.gz: b8e8f80d52583ba3218bbf69d4698a2563e71761ba7190c30e3c34dcc25a40ea
3
+ metadata.gz: 1c31e0e3362927291031e62734b470e8f4f0c16becc1414189fabb72b55dcff4
4
+ data.tar.gz: 8a5d6ff3863b75d249e4cf5950b505969cf8b1d793e6f2be7b9e357708d5b856
5
5
  SHA512:
6
- metadata.gz: 17da2973dc8c8981d80209ebd2b1ac348a59b44899822a16e5b519936905e39363c5bcfa560ecffd5744ee7c0dbb96418e7247b808ba45aa1943175975d6feae
7
- data.tar.gz: 1c106910308f2670918a294e5fd763e70caca2bd56af807cc9189457774871d3d9c665d558e64380b89a1b6d5076a71e8733dbcaeb8e413fbc2937396274b9e7
6
+ metadata.gz: 977ea6dade95007c67b7f8291538ead50ea2a4c951549ca26454802c933a2bd4a81e24ed6faebcc88027e487f7eb7ce1705091dcab91e33941ec3e7be574221e
7
+ data.tar.gz: 7df64a23d9b3146559bfbdc16f3d5bfed1a3d8ca74479c3c88db27f1dd5cee6ee53a1fdd31d95af48b66e0ce362c60d022de4f0afc3ab7fd7da6e6722c5afb08
checksums.yaml.gz.sig CHANGED
Binary file
data/History.rdoc CHANGED
@@ -1,3 +1,12 @@
1
+ === 4.3.0 / 2025-06-17
2
+
3
+ * 4 bug fixes:
4
+
5
+ * Fix Gem index inflation. (halostatue)
6
+ * Fix known_plugins task for Gem::SpecFetcher API changes. (segiddins)
7
+ * Removed defunct deps:email task.
8
+ * Update list of known plugins. (segiddins)
9
+
1
10
  === 4.2.3 / 2025-03-25
2
11
 
3
12
  * 2 minor enhancements:
data/README.rdoc CHANGED
@@ -178,30 +178,35 @@ Again, this must be done before the Hoe spec, or it won't be useful.
178
178
 
179
179
  === Known 3rd-Party Plugins:
180
180
 
181
- * hoe-bundler - Generates a Gemfile based on a Hoe's declared dependencies.
182
- * hoe-debugging - A Hoe plugin to help you debug your codes.
183
- * hoe-deveiate - A collection of Rake tasks and utility functions.
184
- * hoe-doofus - A Hoe plugin that helps me keep from messing up gem releases.
185
- * hoe-gemcutter - Adds gemcutter release automation to Hoe.
186
- * hoe-geminabox - Allows you to push your gems to geminabox
187
- * hoe-gemspec - Generate a prerelease gemspec based on a Hoe spec.
188
- * hoe-gemspec2 - ??? submit a PR to add description
189
- * hoe-git - A set of Hoe plugins for tighter Git integration.
190
- * hoe-heroku - Helps you get your stuff on Heroku.
191
- * hoe-hg - A Hoe plugin for Mercurial integration.
192
- * hoe-highline - A Hoe plugin for building interactive Rake tasks
193
- * hoe-ignore - ??? submit a PR to add description
194
- * hoe-manifest - ??? submit a PR to add description
195
- * hoe-manualgen - A manual-generation plugin for Hoe
196
- * hoe-mercurial - A Hoe plugin for Mercurial integration.
197
- * hoe-reek - Integrates the reek code smell engine into your hoe projects.
198
- * hoe-roodi - Integrates the roodi code smell tool into your hoe projects.
199
- * hoe-rubygems - Additional RubyGems tasks.
200
- * hoe-seattlerb - Minitest, email announcements, release branching.
201
- * hoe-telicopter - Provides tasks used by hotelicopter.
202
- * hoe-travis - Allows your gem to gain maximum benefit from <http://travis-ci.org>.
203
- * hoe-version - ??? submit a PR to add description
204
- * hoe-yard - A Hoe plugin for generating YARD documentation.
181
+ * hoe-bundler - Generate a Gemfile based on a Hoe spec's declared dependencies. (Mike Dalessio)
182
+ * hoe-debugging - A Hoe plugin to help you debug your C extensions (John Barnette)
183
+ * hoe-deveiate - A collection of Rake tasks and utility functions I use to maintain my Open Source projects (Michael Granger)
184
+ * hoe-doofus - A Hoe plugin that helps me (and you, maybe?) keep from messing up gem releases (John Barnette)
185
+ * hoe-gemcutter - Adds gemcutter release automation to Hoe. (James Tucker)
186
+ * hoe-geminabox - A small hoe plugin that allows you to push your gems to geminabox (Ben Bleything)
187
+ * hoe-gemspec - Generate a prerelease gemspec based on a Hoe spec. (Mike Dalessio)
188
+ * hoe-gemspec2 - Adds support for generation of gemspec files to Hoe (raggi)
189
+ * hoe-git - A set of Hoe plugins for tighter Git integration (John Barnette)
190
+ * hoe-git2 - A set of Hoe plugins for tighter Git integration (John Barnette)
191
+ * hoe-halostatue - Hoe::Halostatue is a Hoe meta-plugin that provides improved support for Markdown README files, provides features from other plugins, and enables improved support for trusted publishing. (Austin Ziegler)
192
+ * hoe-heroku - A Hoe plugin that helps you get your stuff on Heroku (Ben Bleything)
193
+ * hoe-hg - A Hoe plugin for Mercurial integration (McClain Looney)
194
+ * hoe-highline - A Hoe plugin for building interactive Rake tasks (Michael Granger)
195
+ * hoe-ignore - FIX (describe your package) (Evan Phoenix)
196
+ * hoe-manns - Collection of some personal used tasks (Sascha Manns)
197
+ * hoe-manualgen - A manual-generation plugin for Hoe (Michael Granger)
198
+ * hoe-markdown - Hoe plugin with helpers for markdown documentation files. (Mike Dalessio)
199
+ * hoe-mercurial - This is a fork of the hoe-hg plugin (Michael Granger)
200
+ * hoe-packaging - Collection of some personal used tasks for creating and deploying RPM and DEB packages. (Sascha Manns)
201
+ * hoe-reek - Tasks to integrate the reek code smell engine into your hoe projects (Sascha Manns)
202
+ * hoe-roodi - hoe-roodi is a Hoe plugin to integrate the roodi code smell tool into your hoe projects. (Erik Hollensbe)
203
+ * hoe-rubocop - This hoe plugin extends hoe for using some rake tasks to control rubocop. (Sascha Manns)
204
+ * hoe-rubygems - A Hoe plugin with additional RubyGems tasks (John Barnette)
205
+ * 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)
206
+ * hoe-telicopter - Hoe plugin providing tasks used by hotelicopter, currently just the email plugin from the seattlerb plugin by Ryan Davis (jim nist)
207
+ * 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-version - Hoe plugin to provide rake tasks to bump version (bhenderson)
209
+ * hoe-yard - A Hoe plugin for generating YARD documentation (Postmodern)
205
210
 
206
211
  === Writing Plugins:
207
212
 
data/Rakefile CHANGED
@@ -32,13 +32,17 @@ end
32
32
  task :known_plugins do
33
33
  dep = Gem::Dependency.new(/^hoe-/, Gem::Requirement.default)
34
34
  fetcher = Gem::SpecFetcher.fetcher
35
- spec_tuples = fetcher.find_matching dep
35
+ spec_tuples = fetcher.search_for_dependency(dep).flatten(1)
36
36
 
37
- max = spec_tuples.map { |(tuple, _source)| tuple.first.size }.max
37
+ max = spec_tuples.map { |(tuple, _source)| tuple.name.size }.max
38
38
 
39
- spec_tuples.each do |(tuple, source)|
40
- spec = Gem::SpecFetcher.fetcher.fetch_spec(tuple, URI.parse(source))
41
- puts "* %-#{max}s - %s (%s)" % [spec.name, spec.summary, spec.authors.first]
39
+ spec_tuples.sort_by { |(tuple, _source)| tuple.name }.each do |(tuple, source)|
40
+ spec = source.fetch_spec(tuple)
41
+ summary = spec
42
+ .summary
43
+ .gsub(/\[([^\]]+)\](?:[\[\(].*?[\]\)])?/, '\1')
44
+
45
+ puts "* %-#{max}s - %s (%s)" % [spec.name, summary, spec.authors.first]
42
46
  end
43
47
  end
44
48
 
data/lib/hoe/deps.rb CHANGED
@@ -82,30 +82,6 @@ module Hoe::Deps
82
82
  end
83
83
  end
84
84
 
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(&: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
85
  def deps_fetch_task # :nodoc:
110
86
  deps = self.dependent_upon self.name
111
87
 
@@ -154,7 +130,7 @@ module Hoe::Deps
154
130
  warn "Fetching full index and caching. This can take a while."
155
131
  url = GEMURL + "Marshal.#{Gem.marshal_version}.Z"
156
132
  dump = Gem::RemoteFetcher.fetcher.fetch_path url
157
- dump = Gem.inflate dump
133
+ dump = Gem::Util.inflate dump
158
134
 
159
135
  warn "stripping index to latest gems"
160
136
  ary = Marshal.load dump
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.2.3"
90
+ VERSION = "4.3.0"
91
91
 
92
92
  @@plugins = [:clean, :debug, :deps, :flay, :flog, :newb, :package,
93
93
  :publish, :gemcutter, :signing, :test]
@@ -181,6 +181,11 @@ class Hoe
181
181
 
182
182
  attr_accessor :extra_dev_deps
183
183
 
184
+ ##
185
+ # Optional: rdoc arguments to be used when generating rdoc.
186
+
187
+ attr_accessor :rdoc_options
188
+
184
189
  ##
185
190
  # Optional: Extra files you want to add to RDoc.
186
191
  #
@@ -544,7 +549,7 @@ class Hoe
544
549
  s.bindir = bindir || "bin"
545
550
  s.executables = s.files.grep(/^#{s.bindir}/) { |f| File.basename(f) }
546
551
  s.require_paths = dirs unless dirs.empty?
547
- s.rdoc_options = ["--main", readme_file]
552
+ s.rdoc_options = rdoc_options
548
553
  s.post_install_message = post_install_message
549
554
  s.metadata = (urls.keys & URLS_TO_META_MAP.keys).map { |name|
550
555
  [URLS_TO_META_MAP[name], urls[name]]
@@ -663,6 +668,9 @@ class Hoe
663
668
  self.history_file ||= Dir.glob("History.{rdoc,txt,md}").first || "History.txt"
664
669
  self.readme_file ||= Dir.glob("README.{rdoc,txt,md}").first || "README.txt"
665
670
 
671
+ # delayed to set readme_file first
672
+ self.rdoc_options = ["--main", readme_file]
673
+
666
674
  abort "Hoe.new {...} removed. Switch to Hoe.spec." if block_given?
667
675
  end
668
676
 
@@ -953,15 +961,8 @@ end
953
961
  class File # :nodoc:
954
962
  # Like File::read, but strips out a BOM marker if it exists.
955
963
  def self.read_utf path
956
- r19 = "<3".respond_to? :encoding
957
- opt = r19 ? "r:bom|utf-8" : "rb"
958
-
959
- open path, opt do |f|
960
- if r19 then
961
- f.read
962
- else
963
- f.read.sub %r%\A\xEF\xBB\xBF%, ""
964
- end
964
+ open path, "r:bom|utf-8" do |f|
965
+ f.read
965
966
  end
966
967
  end
967
968
  end
data/test/test_hoe.rb CHANGED
@@ -192,10 +192,7 @@ class TestHoe < Minitest::Test
192
192
 
193
193
  content = File.read_utf io.path
194
194
  assert_equal "BOM", content
195
-
196
- if content.respond_to? :encoding then
197
- assert_equal Encoding::UTF_8, content.encoding
198
- end
195
+ assert_equal Encoding::UTF_8, content.encoding
199
196
  end
200
197
  end
201
198
 
@@ -365,6 +362,7 @@ class TestHoe < Minitest::Test
365
362
  files = File.read("Manifest.txt").split(/\n/)
366
363
 
367
364
  spec = hoe.spec
365
+ spec.date = nil # forces Date.today. default switched to 1980 for some reason
368
366
 
369
367
  urls = {
370
368
  "home" => "http://www.zenspider.com/projects/hoe.html",
@@ -28,11 +28,9 @@ class TestHoeTest < Minitest::Test
28
28
 
29
29
  MT_EXPECTED = %W[-I#{mt_path} -w
30
30
  -e '%srequire "test/test_hoe_test.rb"'
31
- --].join(" ") + " "
31
+ -- %s].join(" ")
32
32
 
33
33
  def test_make_test_cmd_for_minitest
34
- skip "Using TESTOPTS... skipping" if ENV["TESTOPTS"]
35
-
36
34
  framework = %(require "minitest/autorun"; )
37
35
 
38
36
  @tester = Minitest::TestTask.create :testtest do |t|
@@ -40,12 +38,12 @@ class TestHoeTest < Minitest::Test
40
38
  t.test_globs = ["test/test_hoe_test.rb"]
41
39
  end
42
40
 
43
- assert_equal MT_EXPECTED % [framework].join("; "), @tester.make_test_cmd
41
+ fw = [framework].join("; ")
42
+ env = ENV["A"]
43
+ assert_equal MT_EXPECTED % [fw, env], @tester.make_test_cmd
44
44
  end
45
45
 
46
46
  def test_make_test_cmd_for_minitest_prelude
47
- skip "Using TESTOPTS... skipping" if ENV["TESTOPTS"]
48
-
49
47
  prelude = %(require "other/file")
50
48
  framework = %(require "minitest/autorun"; )
51
49
 
@@ -55,6 +53,8 @@ class TestHoeTest < Minitest::Test
55
53
  t.test_globs = ["test/test_hoe_test.rb"]
56
54
  end
57
55
 
58
- assert_equal MT_EXPECTED % [prelude, framework].join("; "), @tester.make_test_cmd
56
+ prelude = [prelude, framework].join("; ")
57
+ env = ENV["A"]
58
+ assert_equal MT_EXPECTED % [prelude, env], @tester.make_test_cmd
59
59
  end
60
60
  end
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.2.3
4
+ version: 4.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -28,7 +28,7 @@ cert_chain:
28
28
  bwfinv7Yp5fA6AysuZLhCykyfDuZVRrUp0Vb68YCKsLjJly/Theak+euNTxvHsB+
29
29
  al9oSgPPHICMEX65qvLywitx
30
30
  -----END CERTIFICATE-----
31
- date: 2025-03-25 00:00:00.000000000 Z
31
+ date: 1980-01-02 00:00:00.000000000 Z
32
32
  dependencies:
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: rake
@@ -173,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
173
173
  - !ruby/object:Gem::Version
174
174
  version: '3.0'
175
175
  requirements: []
176
- rubygems_version: 3.6.3
176
+ rubygems_version: 3.7.2
177
177
  specification_version: 4
178
178
  summary: Hoe is a rake/rubygems helper for project Rakefiles
179
179
  test_files: []
metadata.gz.sig CHANGED
Binary file