hoe 4.6.0 → 4.7.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: 17a81d2b4668e49f3fd68116fee3682516f2629358f5add10b75d9f3ee7cb7ac
4
- data.tar.gz: '0487cc325a160bb36b203e4a0da035fb31557db46937795041daec273d9c4b3f'
3
+ metadata.gz: a47db98a0422c274cefb089291c685fc8e96a4df9cdcd8147f14f0c65cff70de
4
+ data.tar.gz: 6fb65c19376ab2fc8260e6494516dfcc68addcadd6e9ab7f56c0e259202b02dc
5
5
  SHA512:
6
- metadata.gz: aef504adf5701b7d8d4c1204bdc69789dff918a4e8d65a52239f50e8ac19ccb5f7683668752c90423e3a18842bf3bd8e509fe3cf7bd5ec97aa2aa7920add4246
7
- data.tar.gz: 875ab043593ce1d80bca813391eab81d90f3d5fd1c25167aac1563680cea36228643b3850d4fecfcf7963e34f60b9307b0077434de73465d61d6aa8ec3b73462
6
+ metadata.gz: 2227db950c24e51df2ac48c78b5b1e55c9a93090f3c1481cbf6b7733aa726e448341f0cf2bbe5bcd5cbc3f23d37371a9eeafcf1ebf96223414f24b4013289a33
7
+ data.tar.gz: 9aadc713bae85b54c02e1460f599d5ac1a12c27418a22b58be6f7053b8c29f2a2f5b07bd9d4ef64219e3b309f6d73852a58abd5bcb891efccb997b6fc15e21e4
checksums.yaml.gz.sig CHANGED
@@ -1,3 +1,2 @@
1
- _���;�"�����ԨFޓ�
2
- �s��<�k�fYE[i��W@o 냆}C�tVe��B�ʬ�ry};����b��?2 4�˶4�r�"=];�S&; � Y�؉$��䛺p{#��b�=ԜU��<��8�����1WEq�!ytD��Y7D?�m��(5 n�������Q٢��,,�
3
- |��$`�;���h&��z�q�v���O�p>j���ws�q�8/*��Xw��1�r����g���a���M��>S
1
+ y��)[�b2T� �Il� ��ۙ�o��~x�4�`OAUJg�6���R�ɕ�"@)�Cq� ��OM����|�x�wX]S��1CB�ґg �>�5g8ٶ(ȝB��!�"AC�]��U�3f����4���{�(�^\�)'<�AO�ƹq��
2
+ 6��R�bl��Nx1{Θgׂ��������'�sP%Lvf-Q#^��Ґ�e�:�L��:�&�����*v��!X4X���e7+�u5�F�mQ
data/History.rdoc CHANGED
@@ -1,3 +1,21 @@
1
+ === 4.7.0 / 2026-04-22
2
+
3
+ * 2 minor enhancements:
4
+
5
+ * Added cov_branches to enable branch level coverage reporting.
6
+ * Merged hoe/gemcutter into hoe/package. Distinction doesn't make sense.
7
+
8
+ === 4.6.1 / 2026-02-23
9
+
10
+ * 1 minor enhancement:
11
+
12
+ * Added -C dir arg to sow to cd to dir before creating so I can test local changes easier.
13
+
14
+ * 2 bug fixes:
15
+
16
+ * Fixes for a very buggy rdoc... wtf
17
+ * Switch to pp for debug_gem. Long file lists are finally readable. Gem#to_ruby is ugly as fuck.
18
+
1
19
  === 4.6.0 / 2026-01-28
2
20
 
3
21
  * 6 minor enhancements:
data/Manifest.txt CHANGED
@@ -14,7 +14,6 @@ lib/hoe/deps.rb
14
14
  lib/hoe/flay.rb
15
15
  lib/hoe/flog.rb
16
16
  lib/hoe/gem_prelude_sucks.rb
17
- lib/hoe/gemcutter.rb
18
17
  lib/hoe/git.rb
19
18
  lib/hoe/inline.rb
20
19
  lib/hoe/newb.rb
@@ -35,7 +34,6 @@ template/lib/file_name.rb.erb
35
34
  template/test/test_file_name.rb.erb
36
35
  test/test_hoe.rb
37
36
  test/test_hoe_debug.rb
38
- test/test_hoe_gemcutter.rb
39
37
  test/test_hoe_package.rb
40
38
  test/test_hoe_publish.rb
41
39
  test/test_hoe_test.rb
data/bin/sow CHANGED
@@ -22,12 +22,14 @@ end
22
22
 
23
23
  def make_sub_modules klass
24
24
  last = nil
25
- result = ""
25
+ result = []
26
+
26
27
  klass.split("::")[0..-2].each do |part|
27
28
  last = [last, part].compact.join("::")
28
29
  result << "module #{last}; end\n"
29
30
  end
30
31
  result << "\n" unless result.empty?
32
+ result.join
31
33
  end
32
34
 
33
35
  op = OptionParser.new do |opts|
@@ -45,6 +47,10 @@ op = OptionParser.new do |opts|
45
47
  option[:subdir] = "dev"
46
48
  end
47
49
 
50
+ opts.on "-C dir", String, "Change directory to dir before creating project." do |d|
51
+ Dir.chdir d
52
+ end
53
+
48
54
  opts.on("-s style", "--style style", String, "Use template <style>.") do |s|
49
55
  option[:style] = s
50
56
  end
data/lib/hoe/cov.rb CHANGED
@@ -9,11 +9,21 @@ module Hoe::Cov
9
9
 
10
10
  ##
11
11
  # Directories to filter out from coverage.
12
+ #
13
+ # The default = tmp:test
12
14
 
13
15
  attr_accessor :cov_filter
14
16
 
17
+ ##
18
+ # Set to true to enable branch level coverage reporting.
19
+ #
20
+ # The default = false
21
+
22
+ attr_accessor :cov_branches
23
+
15
24
  def initialize_cov # :nodoc:
16
25
  self.cov_filter = %w[tmp test]
26
+ self.cov_branches = nil
17
27
  end
18
28
 
19
29
  ##
@@ -33,8 +43,9 @@ module Hoe::Cov
33
43
 
34
44
  desc "Run tests and analyze code coverage"
35
45
  task :cov => :isolate do
46
+ extra = cov_branches && "; enable_coverage :branch"
36
47
  test_task.test_prelude =
37
- %(require "simplecov"; SimpleCov.start { add_filter %p }) % [cov_filter]
48
+ %(require "simplecov"; SimpleCov.start { add_filter %p%s }) % [cov_filter, extra]
38
49
 
39
50
  Rake::Task[:test].invoke
40
51
  end
data/lib/hoe/debug.rb CHANGED
@@ -50,7 +50,7 @@ module Hoe::Debug
50
50
 
51
51
  desc "Show information about the gem."
52
52
  task :debug_gem do
53
- puts spec.to_ruby
53
+ pp spec
54
54
  end
55
55
 
56
56
  task :isolate # stub
data/lib/hoe/package.rb CHANGED
@@ -18,6 +18,10 @@ end
18
18
  # release:: Package and upload the release.
19
19
 
20
20
  module Hoe::Package
21
+ include Rake::DSL if defined?(Rake::DSL)
22
+
23
+ Hoe::DEFAULT_CONFIG["otp_command"] = false
24
+
21
25
  ##
22
26
  # Optional: Should package create a tarball? [default: true]
23
27
 
@@ -80,6 +84,16 @@ module Hoe::Package
80
84
  abort "Versions don't match: %s vs %s" % [v, version] if v != version
81
85
  abort "Versions don't match %s: %s vs %s" % [history_file, v, c] if v != c
82
86
  end
87
+
88
+ desc "Push gem to package."
89
+ task :release_to_rubygems => [:clean, :package, :release_sanity] do
90
+ pkg = "pkg/#{spec.name}-#{spec.version}"
91
+ gems = Dir["#{pkg}*.gem"]
92
+
93
+ gem_push gems
94
+ end
95
+
96
+ task :release_to => :release_to_rubygems
83
97
  end
84
98
 
85
99
  ##
@@ -121,4 +135,19 @@ module Hoe::Package
121
135
  (Gem::VERSION < "1.4" and pre !~ /^[a-z]+(\.\d+)?$/) or
122
136
  (Gem::VERSION >= "1.4" and pre !~ /^[a-z]+(\.?\d+)?$/)
123
137
  end
138
+
139
+ ##
140
+ # Push gems to server.
141
+
142
+ def gem_push gems
143
+ with_config do |config, _|
144
+ otp_command = config["otp_command"]
145
+
146
+ ENV["GEM_HOST_OTP_CODE"] = `#{otp_command}`.chomp if otp_command
147
+ end
148
+
149
+ gems.each do |g|
150
+ sh Gem.ruby, "-S", "gem", "push", g
151
+ end
152
+ end
124
153
  end
data/lib/hoe/rake.rb CHANGED
@@ -1,4 +1,4 @@
1
- module Rake
1
+ module Rake # :nodoc:
2
2
  class Task # :nodoc:
3
3
  # Used to name the source of a given task
4
4
  attr_accessor :plugin
data/lib/hoe.rb CHANGED
@@ -87,10 +87,10 @@ class Hoe
87
87
  include Rake::DSL if defined?(Rake::DSL)
88
88
 
89
89
  # duh
90
- VERSION = "4.6.0"
90
+ VERSION = "4.7.0"
91
91
 
92
92
  @@plugins = [:clean, :debug, :deps, :flay, :flog, :newb, :package,
93
- :publish, :gemcutter, :signing, :test]
93
+ :publish, :signing, :test]
94
94
 
95
95
  @bad_plugins = []
96
96
 
@@ -984,3 +984,6 @@ class File # :nodoc:
984
984
  end
985
985
  end
986
986
  end
987
+
988
+ module Gem # :nodoc:
989
+ end
@@ -1,7 +1,6 @@
1
1
  require "minitest/autorun"
2
2
  require "hoe"
3
-
4
- Hoe.load_plugins
3
+ require_relative "../lib/hoe/package.rb"
5
4
 
6
5
  class TestHoePackage < Minitest::Test
7
6
  def setup
@@ -23,6 +22,10 @@ class TestHoePackage < Minitest::Test
23
22
  end
24
23
 
25
24
  attr_reader :spec
25
+
26
+ def with_config
27
+ yield({ "otp_command" => "echo my_otp_code"}, "~/.hoerc")
28
+ end
26
29
  end
27
30
  end
28
31
 
@@ -31,6 +34,55 @@ class TestHoePackage < Minitest::Test
31
34
  ENV["PRERELEASE"] = @orig_PRERELEASE
32
35
  end
33
36
 
37
+ def assert_task name, *deps
38
+ dep = Rake::Task[name]
39
+ assert dep
40
+ prereqs = dep.prerequisites.map(&:to_sym)
41
+ deps.each do |dep|
42
+ # not asserting existence of tasks because they might be in other plugins
43
+ assert_includes prereqs, dep.to_sym
44
+ end
45
+ end
46
+
47
+ def test_package_tasks_defined
48
+ @tester.define_package_tasks
49
+
50
+ assert_task :gem, :clean
51
+ assert_task :install_gem, :clean, :package, :check_extra_deps
52
+ assert_task :postrelease
53
+ assert_task :prerelease
54
+ assert_task :release, :prerelease, :release_to, :postrelease
55
+ assert_task :release_sanity
56
+ assert_task :release_to
57
+ assert_task :release_to, :release_to_rubygems
58
+ assert_task :release_to_rubygems, :clean, :package, :release_sanity
59
+ end
60
+
61
+ def save_env
62
+ orig_env = ENV.to_h
63
+ yield
64
+ ensure
65
+ ENV.replace orig_env
66
+ end
67
+
68
+ def test_gem_push
69
+ def @tester.sh *cmd_args
70
+ @cmd_args = cmd_args
71
+ end
72
+
73
+ def @tester.cmd_args
74
+ @cmd_args
75
+ end
76
+
77
+ save_env do
78
+ @tester.gem_push %w[pkg/blah-123.gem]
79
+
80
+ exp = %W[#{Gem.ruby} -S gem push pkg/blah-123.gem]
81
+ assert_equal exp, @tester.cmd_args
82
+ assert_equal "my_otp_code", ENV["GEM_HOST_OTP_CODE"]
83
+ end
84
+ end
85
+
34
86
  def test_prerelease_version_pre
35
87
  ENV["PRE"] = "pre.0"
36
88
 
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.6.0
4
+ version: 4.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -124,7 +124,6 @@ files:
124
124
  - lib/hoe/flay.rb
125
125
  - lib/hoe/flog.rb
126
126
  - lib/hoe/gem_prelude_sucks.rb
127
- - lib/hoe/gemcutter.rb
128
127
  - lib/hoe/git.rb
129
128
  - lib/hoe/inline.rb
130
129
  - lib/hoe/newb.rb
@@ -145,7 +144,6 @@ files:
145
144
  - template/test/test_file_name.rb.erb
146
145
  - test/test_hoe.rb
147
146
  - test/test_hoe_debug.rb
148
- - test/test_hoe_gemcutter.rb
149
147
  - test/test_hoe_package.rb
150
148
  - test/test_hoe_publish.rb
151
149
  - test/test_hoe_test.rb
metadata.gz.sig CHANGED
Binary file
data/lib/hoe/gemcutter.rb DELETED
@@ -1,44 +0,0 @@
1
- require "rake"
2
-
3
- ##
4
- # Gemcutter plugin for hoe.
5
- #
6
- # === Extra Configuration Options:
7
- #
8
- # otp_command:: Shell command to run to populate GEM_HOST_OTP_CODE.
9
-
10
- module Hoe::Gemcutter
11
- include Rake::DSL if defined?(Rake::DSL)
12
-
13
- Hoe::DEFAULT_CONFIG["otp_command"] = false
14
-
15
- ##
16
- # Push gems to server.
17
-
18
- def gem_push gems
19
- with_config do |config, _|
20
- otp_command = config["otp_command"]
21
-
22
- ENV["GEM_HOST_OTP_CODE"] = `#{otp_command}`.chomp if otp_command
23
- end
24
-
25
- gems.each do |g|
26
- sh Gem.ruby, "-S", "gem", "push", g
27
- end
28
- end
29
-
30
- ##
31
- # Define release_to_gemcutter and attach it to the release task.
32
-
33
- def define_gemcutter_tasks
34
- desc "Push gem to gemcutter."
35
- task :release_to_gemcutter => [:clean, :package, :release_sanity] do
36
- pkg = "pkg/#{spec.name}-#{spec.version}"
37
- gems = Dir["#{pkg}*.gem"]
38
-
39
- gem_push gems
40
- end
41
-
42
- task :release_to => :release_to_gemcutter
43
- end
44
- end unless defined? Hoe::Gemcutter
@@ -1,38 +0,0 @@
1
- require "minitest/autorun"
2
- require "hoe"
3
- require_relative "../lib/hoe/gemcutter"
4
-
5
- class TestHoeGemcutter < Minitest::Test
6
- include Hoe::Gemcutter
7
-
8
- def test_gemcutter_tasks_defined
9
- define_gemcutter_tasks
10
- assert Rake::Task[:release_to_gemcutter]
11
- assert Rake::Task[:release_to].prerequisites.include?("release_to_gemcutter")
12
- end
13
-
14
- def sh *cmd_args
15
- @cmd_args = cmd_args
16
- end
17
-
18
- def with_config
19
- yield({ "otp_command" => "echo my_otp_code"}, "~/.hoerc")
20
- end
21
-
22
- def save_env
23
- orig_env = ENV.to_h
24
- yield
25
- ensure
26
- ENV.replace orig_env
27
- end
28
-
29
- def test_gem_push
30
- save_env do
31
- gem_push %w[pkg/blah-123.gem]
32
-
33
- exp = %W[#{Gem.ruby} -S gem push pkg/blah-123.gem]
34
- assert_equal exp, @cmd_args
35
- assert_equal "my_otp_code", ENV["GEM_HOST_OTP_CODE"]
36
- end
37
- end
38
- end