hoe 2.9.1 → 2.9.2
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.
- data.tar.gz.sig +0 -0
- data/History.txt +18 -0
- data/Manifest.txt +1 -0
- data/README.txt +1 -1
- data/bin/sow +5 -7
- data/lib/hoe.rb +31 -7
- data/lib/hoe/compiler.rb +2 -0
- data/lib/hoe/flay.rb +0 -1
- data/lib/hoe/flog.rb +0 -1
- data/lib/hoe/package.rb +2 -2
- data/lib/hoe/test.rb +10 -3
- data/test/test_hoe.rb +60 -2
- data/test/test_hoe_test.rb +46 -0
- metadata +7 -5
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/History.txt
CHANGED
@@ -1,3 +1,21 @@
|
|
1
|
+
=== 2.9.2 / 2011-03-31
|
2
|
+
|
3
|
+
* 7 minor enhancements:
|
4
|
+
|
5
|
+
* Added :none as a testlib option to let you do whatever you want. (phiggins)
|
6
|
+
* Added Hoe#dependency(name, version, type = :runtime) for cleaner hoe specs.
|
7
|
+
* Added NOSUDO option to `rake gem_install`. (nihildeb)
|
8
|
+
* Include Rake::DSL to support future versions of rake
|
9
|
+
* Multiruby now skips mri_trunk if multiruby_skip includes 1.9
|
10
|
+
* Test#make_test_cmd now sorts test files (mostly for testing)
|
11
|
+
* Try using psych before syck.
|
12
|
+
|
13
|
+
* 3 bug fixes:
|
14
|
+
|
15
|
+
* Clean generated extension library too
|
16
|
+
* Fixed a bug with sow -d or -t
|
17
|
+
* Fixed plugin activation via ~/.hoerc. (ged)
|
18
|
+
|
1
19
|
=== 2.9.1 / 2011-02-05
|
2
20
|
|
3
21
|
* 1 minor enhancement:
|
data/Manifest.txt
CHANGED
data/README.txt
CHANGED
@@ -175,7 +175,7 @@ Again, this must be done before the Hoe spec, or it won't be useful.
|
|
175
175
|
* hoe-gemcutter - Adds gemcutter release automation to Hoe.
|
176
176
|
* hoe-gemspec - Generate a prerelease gemspec based on a Hoe spec.
|
177
177
|
* hoe-git - A set of Hoe plugins for tighter Git integration.
|
178
|
-
* hoe-
|
178
|
+
* hoe-mercurial - A Hoe plugin for Mercurial integration.
|
179
179
|
* hoe-rubygems - A Hoe plugin with additional RubyGems tasks.
|
180
180
|
* hoe-seattlerb - Minitest, email announcements, release branching.
|
181
181
|
* hoe-yard - A Hoe plugin for generating YARD documentation.
|
data/bin/sow
CHANGED
@@ -13,7 +13,7 @@ option = {
|
|
13
13
|
:subdir => nil,
|
14
14
|
}
|
15
15
|
|
16
|
-
def check_subdir
|
16
|
+
def check_subdir option
|
17
17
|
if option[:subdir] then
|
18
18
|
warn "ERROR: you can't specify multiple subdirs"
|
19
19
|
abort opts.to_s
|
@@ -26,12 +26,12 @@ opts = OptionParser.new do |opts|
|
|
26
26
|
opts.separator "Standard options:"
|
27
27
|
|
28
28
|
opts.on("-t", "--trunk", "Add project to subdir under 'trunk'.") do
|
29
|
-
check_subdir
|
29
|
+
check_subdir option
|
30
30
|
option[:subdir] = "trunk"
|
31
31
|
end
|
32
32
|
|
33
33
|
opts.on("-d", "--dev", "Add project to subdir under 'dev'.") do
|
34
|
-
check_subdir
|
34
|
+
check_subdir option
|
35
35
|
option[:subdir] = "dev"
|
36
36
|
end
|
37
37
|
|
@@ -47,8 +47,6 @@ end
|
|
47
47
|
|
48
48
|
opts.parse!
|
49
49
|
|
50
|
-
# TODO: fail if both dev and trunk
|
51
|
-
|
52
50
|
include FileUtils::Verbose
|
53
51
|
|
54
52
|
# variables for erb:
|
@@ -108,11 +106,11 @@ Dir.chdir project do
|
|
108
106
|
end
|
109
107
|
end
|
110
108
|
|
111
|
-
if option[:
|
109
|
+
if option[:subdir] then
|
112
110
|
temp_dir = "#{project}.#{$$}"
|
113
111
|
FileUtils.mv project, temp_dir
|
114
112
|
FileUtils.mkdir project
|
115
|
-
FileUtils.mv temp_dir, "#{project}/#{option[:
|
113
|
+
FileUtils.mv temp_dir, "#{project}/#{option[:subdir]}"
|
116
114
|
end
|
117
115
|
|
118
116
|
puts
|
data/lib/hoe.rb
CHANGED
@@ -3,6 +3,12 @@
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'rake'
|
5
5
|
require 'rake/testtask'
|
6
|
+
|
7
|
+
begin
|
8
|
+
require 'psych'
|
9
|
+
rescue LoadError
|
10
|
+
# do nothing
|
11
|
+
end
|
6
12
|
require 'yaml'
|
7
13
|
|
8
14
|
require 'hoe/rake'
|
@@ -57,8 +63,11 @@ require 'hoe/rake'
|
|
57
63
|
# end
|
58
64
|
|
59
65
|
class Hoe
|
66
|
+
|
67
|
+
include Rake::DSL if defined?(Rake::DSL)
|
68
|
+
|
60
69
|
# duh
|
61
|
-
VERSION = '2.9.
|
70
|
+
VERSION = '2.9.2'
|
62
71
|
|
63
72
|
@@plugins = [:clean, :debug, :deps, :flay, :flog, :newb, :package,
|
64
73
|
:publish, :rcov, :gemcutter, :signing, :test]
|
@@ -231,8 +240,9 @@ class Hoe
|
|
231
240
|
def self.load_plugins plugins = Hoe.plugins
|
232
241
|
@found ||= {}
|
233
242
|
@loaded ||= {}
|
243
|
+
@files ||= Gem.find_files "hoe/*.rb"
|
234
244
|
|
235
|
-
|
245
|
+
@files.reverse.each do |path|
|
236
246
|
@found[File.basename(path, ".rb").intern] = path
|
237
247
|
end
|
238
248
|
|
@@ -306,21 +316,19 @@ class Hoe
|
|
306
316
|
# Activate plugin modules and add them to the current instance.
|
307
317
|
|
308
318
|
def activate_plugins
|
309
|
-
plugins = Hoe.plugins
|
310
|
-
|
311
319
|
with_config do |config, _|
|
312
320
|
config_plugins = config['plugins']
|
313
321
|
break unless config_plugins
|
314
|
-
plugins
|
322
|
+
Hoe.plugins.concat config_plugins.map { |plugin| plugin.intern }
|
315
323
|
end
|
316
324
|
|
317
|
-
Hoe.load_plugins plugins
|
325
|
+
Hoe.load_plugins Hoe.plugins
|
318
326
|
|
319
327
|
names = Hoe.constants.map { |s| s.to_s }
|
320
328
|
names.reject! { |n| n =~ /^[A-Z_]+$/ }
|
321
329
|
|
322
330
|
names.each do |name|
|
323
|
-
next unless plugins.include? name.downcase.intern
|
331
|
+
next unless Hoe.plugins.include? name.downcase.intern
|
324
332
|
warn "extend #{name}" if $DEBUG
|
325
333
|
self.extend Hoe.const_get(name)
|
326
334
|
end
|
@@ -332,6 +340,22 @@ class Hoe
|
|
332
340
|
end
|
333
341
|
end
|
334
342
|
|
343
|
+
##
|
344
|
+
# Add a dependency declaration to your spec. Pass :dev to
|
345
|
+
# +type+ for developer dependencies.
|
346
|
+
|
347
|
+
def dependency name, version, type = :runtime
|
348
|
+
ary = case type
|
349
|
+
when :runtime then
|
350
|
+
extra_deps
|
351
|
+
when :dev, :development, :developer then
|
352
|
+
extra_dev_deps
|
353
|
+
else
|
354
|
+
raise "Unknown dependency type: #{type}"
|
355
|
+
end
|
356
|
+
ary << [name, version]
|
357
|
+
end
|
358
|
+
|
335
359
|
##
|
336
360
|
# Add standard and user defined dependencies to the spec.
|
337
361
|
|
data/lib/hoe/compiler.rb
CHANGED
data/lib/hoe/flay.rb
CHANGED
data/lib/hoe/flog.rb
CHANGED
data/lib/hoe/package.rb
CHANGED
@@ -44,7 +44,7 @@ module Hoe::Package
|
|
44
44
|
pkg.need_zip = @need_zip
|
45
45
|
end
|
46
46
|
|
47
|
-
desc 'Install the package as a gem.'
|
47
|
+
desc 'Install the package as a gem. (opt. NOSUDO=1)'
|
48
48
|
task :install_gem => [:clean, :package, :check_extra_deps] do
|
49
49
|
install_gem Dir['pkg/*.gem'].first
|
50
50
|
end
|
@@ -87,7 +87,7 @@ module Hoe::Package
|
|
87
87
|
|
88
88
|
def install_gem name, version = nil
|
89
89
|
gem_cmd = Gem.default_exec_format % 'gem'
|
90
|
-
sudo = 'sudo ' unless Hoe::WINDOZE
|
90
|
+
sudo = 'sudo ' unless Hoe::WINDOZE || ENV["NOSUDO"]
|
91
91
|
local = '--local' unless version
|
92
92
|
version = "--version '#{version}'" if version
|
93
93
|
sh "#{sudo}#{gem_cmd} install #{local} #{name} #{version}"
|
data/lib/hoe/test.rb
CHANGED
@@ -16,6 +16,7 @@ module Hoe::Test
|
|
16
16
|
SUPPORTED_TEST_FRAMEWORKS = {
|
17
17
|
:testunit => "test/unit",
|
18
18
|
:minitest => "minitest/autorun",
|
19
|
+
:none => nil,
|
19
20
|
}
|
20
21
|
|
21
22
|
##
|
@@ -159,11 +160,16 @@ module Hoe::Test
|
|
159
160
|
# Generate the test command-line.
|
160
161
|
|
161
162
|
def make_test_cmd multi = false # :nodoc:
|
163
|
+
unless SUPPORTED_TEST_FRAMEWORKS.has_key?(testlib)
|
164
|
+
raise "unsupported test framework #{testlib}"
|
165
|
+
end
|
166
|
+
|
162
167
|
framework = SUPPORTED_TEST_FRAMEWORKS[testlib]
|
163
|
-
raise "unsupported test framework #{testlib}" unless framework
|
164
168
|
|
165
|
-
tests = ["rubygems"
|
166
|
-
|
169
|
+
tests = ["rubygems"]
|
170
|
+
tests << framework if framework
|
171
|
+
tests << test_globs.sort.map { |g| Dir.glob(g) }
|
172
|
+
tests.flatten!
|
167
173
|
tests.map! {|f| %(require "#{f}")}
|
168
174
|
|
169
175
|
tests.insert 1, test_prelude if test_prelude
|
@@ -171,6 +177,7 @@ module Hoe::Test
|
|
171
177
|
cmd = "#{Hoe::RUBY_FLAGS} -e '#{tests.join("; ")}' -- #{FILTER}"
|
172
178
|
|
173
179
|
if multi then
|
180
|
+
multiruby_skip << "mri_trunk" if multiruby_skip.include? "1.9"
|
174
181
|
ENV['EXCLUDED_VERSIONS'] = multiruby_skip.join ":"
|
175
182
|
cmd = "-S multiruby #{cmd}"
|
176
183
|
end
|
data/test/test_hoe.rb
CHANGED
@@ -2,6 +2,12 @@ require 'minitest/autorun'
|
|
2
2
|
require 'hoe'
|
3
3
|
require 'tempfile'
|
4
4
|
|
5
|
+
class Hoe
|
6
|
+
def self.files= x
|
7
|
+
@files = x
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
5
11
|
$rakefile = nil # shuts up a warning in rdoctask.rb
|
6
12
|
|
7
13
|
class TestHoe < MiniTest::Unit::TestCase
|
@@ -35,6 +41,7 @@ class TestHoe < MiniTest::Unit::TestCase
|
|
35
41
|
def test_activate_plugins_hoerc
|
36
42
|
home = ENV['HOME']
|
37
43
|
load_path = $LOAD_PATH.dup
|
44
|
+
Hoe.files = nil
|
38
45
|
|
39
46
|
Dir.mktmpdir do |path|
|
40
47
|
ENV['HOME'] = path
|
@@ -46,7 +53,7 @@ class TestHoe < MiniTest::Unit::TestCase
|
|
46
53
|
end
|
47
54
|
|
48
55
|
open File.join(path, '.hoerc'), 'w' do |io|
|
49
|
-
io.write YAML.dump
|
56
|
+
io.write YAML.dump('plugins' => %w[hoerc])
|
50
57
|
end
|
51
58
|
|
52
59
|
spec = Hoe.spec 'blah' do
|
@@ -60,6 +67,40 @@ class TestHoe < MiniTest::Unit::TestCase
|
|
60
67
|
ensure
|
61
68
|
Hoe.instance_variable_get(:@loaded).delete :hoerc
|
62
69
|
Hoe.plugins.delete :hoerc
|
70
|
+
Hoe.send :remove_const, :Hoerc
|
71
|
+
$LOAD_PATH.replace load_path
|
72
|
+
ENV['HOME'] = home
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_initialize_plugins_hoerc
|
76
|
+
home = ENV['HOME']
|
77
|
+
load_path = $LOAD_PATH.dup
|
78
|
+
Hoe.files = nil
|
79
|
+
|
80
|
+
Dir.mktmpdir do |path|
|
81
|
+
ENV['HOME'] = path
|
82
|
+
$LOAD_PATH << path
|
83
|
+
|
84
|
+
Dir.mkdir File.join(path, 'hoe')
|
85
|
+
open File.join(path, 'hoe', 'hoerc.rb'), 'w' do |io|
|
86
|
+
io.write 'module Hoe::Hoerc; def initialize_hoerc; @hoerc_plugin_initialized = true; end; end'
|
87
|
+
end
|
88
|
+
|
89
|
+
open File.join(path, '.hoerc'), 'w' do |io|
|
90
|
+
io.write YAML.dump('plugins' => %w[hoerc])
|
91
|
+
end
|
92
|
+
|
93
|
+
spec = Hoe.spec 'blah' do
|
94
|
+
developer 'author', 'email'
|
95
|
+
end
|
96
|
+
|
97
|
+
assert_includes spec.instance_variables.map(&:to_s), '@hoerc_plugin_initialized',
|
98
|
+
"Hoerc plugin wasn't initialized"
|
99
|
+
end
|
100
|
+
ensure
|
101
|
+
Hoe.instance_variable_get(:@loaded).delete :hoerc
|
102
|
+
Hoe.plugins.delete :hoerc
|
103
|
+
Hoe.send :remove_const, :Hoerc
|
63
104
|
$LOAD_PATH.replace load_path
|
64
105
|
ENV['HOME'] = home
|
65
106
|
end
|
@@ -104,7 +145,7 @@ class TestHoe < MiniTest::Unit::TestCase
|
|
104
145
|
assert_equal 'blah', spec.rubyforge_project
|
105
146
|
assert_equal Gem::RubyGemsVersion, spec.rubygems_version
|
106
147
|
assert_match(/^Hoe.*Rakefiles$/, spec.summary)
|
107
|
-
assert_equal files.grep(/^test/), spec.test_files
|
148
|
+
assert_equal files.grep(/^test/).sort, spec.test_files.sort
|
108
149
|
|
109
150
|
deps = spec.dependencies.sort_by { |dep| dep.name }
|
110
151
|
|
@@ -138,4 +179,21 @@ class TestHoe < MiniTest::Unit::TestCase
|
|
138
179
|
assert_equal %w(two_words two_words TwoWords), Hoe.normalize_names('two-words')
|
139
180
|
assert_equal %w(two_words two_words TwoWords), Hoe.normalize_names('two_words')
|
140
181
|
end
|
182
|
+
|
183
|
+
def test_nosudo
|
184
|
+
hoe = Hoe.spec("blah") do
|
185
|
+
self.version = '1.2.3'
|
186
|
+
developer 'author', 'email'
|
187
|
+
|
188
|
+
def sh cmd
|
189
|
+
cmd
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
assert_match(/^sudo gem.*/, hoe.install_gem('foo'))
|
194
|
+
ENV['NOSUDO'] = '1'
|
195
|
+
assert_match(/^gem.*/, hoe.install_gem('foo'))
|
196
|
+
ensure
|
197
|
+
ENV.delete "NOSUDO"
|
198
|
+
end
|
141
199
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require "minitest/autorun"
|
2
|
+
require "hoe"
|
3
|
+
|
4
|
+
Hoe.load_plugins # make sure Hoe::Test is loaded
|
5
|
+
|
6
|
+
class TestHoeTest < MiniTest::Unit::TestCase
|
7
|
+
def setup
|
8
|
+
@tester = Module.new do
|
9
|
+
include Hoe::Test
|
10
|
+
|
11
|
+
extend self
|
12
|
+
|
13
|
+
initialize_test
|
14
|
+
|
15
|
+
def test_globs
|
16
|
+
['test/**/test_*.rb']
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_make_test_cmd_with_different_testlibs
|
22
|
+
expected = ['-w -Ilib:bin:test:. -e \'require "rubygems"; %s',
|
23
|
+
'require "test/test_hoe.rb"; ',
|
24
|
+
'require "test/test_hoe_gemcutter.rb"; ',
|
25
|
+
'require "test/test_hoe_test.rb"',
|
26
|
+
"' -- ",
|
27
|
+
].join
|
28
|
+
|
29
|
+
testunit = %(require "test/unit"; )
|
30
|
+
assert_equal expected % testunit, @tester.make_test_cmd
|
31
|
+
|
32
|
+
@tester.testlib = :minitest
|
33
|
+
autorun = %(require "minitest/autorun"; )
|
34
|
+
assert_equal expected % autorun, @tester.make_test_cmd
|
35
|
+
|
36
|
+
@tester.testlib = :none
|
37
|
+
assert_equal expected % "", @tester.make_test_cmd
|
38
|
+
|
39
|
+
@tester.testlib = :faketestlib
|
40
|
+
e = assert_raises(RuntimeError) do
|
41
|
+
@tester.make_test_cmd
|
42
|
+
end
|
43
|
+
|
44
|
+
assert_equal "unsupported test framework faketestlib", e.to_s
|
45
|
+
end
|
46
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hoe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 47
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 9
|
9
|
-
-
|
10
|
-
version: 2.9.
|
9
|
+
- 2
|
10
|
+
version: 2.9.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ryan Davis
|
@@ -36,7 +36,7 @@ cert_chain:
|
|
36
36
|
FBHgymkyj/AOSqKRIpXPhjC6
|
37
37
|
-----END CERTIFICATE-----
|
38
38
|
|
39
|
-
date: 2011-
|
39
|
+
date: 2011-03-31 00:00:00 -07:00
|
40
40
|
default_executable:
|
41
41
|
dependencies:
|
42
42
|
- !ruby/object:Gem::Dependency
|
@@ -129,6 +129,7 @@ files:
|
|
129
129
|
- template/test/test_file_name.rb.erb
|
130
130
|
- test/test_hoe.rb
|
131
131
|
- test/test_hoe_gemcutter.rb
|
132
|
+
- test/test_hoe_test.rb
|
132
133
|
- .gemtest
|
133
134
|
has_rdoc: true
|
134
135
|
homepage: http://rubyforge.org/projects/seattlerb/
|
@@ -162,10 +163,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
162
163
|
requirements: []
|
163
164
|
|
164
165
|
rubyforge_project: seattlerb
|
165
|
-
rubygems_version: 1.
|
166
|
+
rubygems_version: 1.6.2
|
166
167
|
signing_key:
|
167
168
|
specification_version: 3
|
168
169
|
summary: Hoe is a rake/rubygems helper for project Rakefiles
|
169
170
|
test_files:
|
170
171
|
- test/test_hoe.rb
|
171
172
|
- test/test_hoe_gemcutter.rb
|
173
|
+
- test/test_hoe_test.rb
|
metadata.gz.sig
CHANGED
Binary file
|