hoe 1.1.7 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +7 -0
- data/README.txt +2 -0
- data/lib/hoe.rb +77 -4
- data/test/test_hoe.rb +25 -4
- metadata +3 -3
data/History.txt
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
= 1.2.0 2007-02-13
|
2
|
+
|
3
|
+
* Added more support for ext dirs.
|
4
|
+
* Added a simple config file (yaml). Use 'rake config_hoe' to edit.
|
5
|
+
* Added post_blog task (thanks Aaron!), configured via config_hoe.
|
6
|
+
* Announce task now posts to your blogs and/or publishes API depending on config.
|
7
|
+
|
1
8
|
= 1.1.7 2007-01-10
|
2
9
|
|
3
10
|
* extra_deps is now self-healing, and ensures no (direct) cycles.
|
data/README.txt
CHANGED
@@ -15,6 +15,7 @@ Tasks Provided:
|
|
15
15
|
* audit - Run ZenTest against the package
|
16
16
|
* check_manifest - Verify the manifest
|
17
17
|
* clean - Clean up all the extras
|
18
|
+
* config_hoe - Create a fresh ~/.hoerc file
|
18
19
|
* debug_gem - Show information about the gem.
|
19
20
|
* default - Run the default tasks
|
20
21
|
* docs - Build the docs HTML Files
|
@@ -23,6 +24,7 @@ Tasks Provided:
|
|
23
24
|
* install_gem - Install the package as a gem
|
24
25
|
* multi - Run the test suite using multiruby
|
25
26
|
* package - Build all the packages
|
27
|
+
* post_blog - Post announcement to blog.
|
26
28
|
* post_news - Post announcement to rubyforge.
|
27
29
|
* publish_docs - Publish RDoc to RubyForge
|
28
30
|
* release - Package and upload the release to rubyforge.
|
data/lib/hoe.rb
CHANGED
@@ -37,6 +37,7 @@ require 'rubyforge'
|
|
37
37
|
# * audit - Run ZenTest against the package
|
38
38
|
# * check_manifest - Verify the manifest
|
39
39
|
# * clean - Clean up all the extras
|
40
|
+
# * config_hoe - Create a fresh ~/.hoerc file
|
40
41
|
# * debug_gem - Show information about the gem.
|
41
42
|
# * default - Run the default tasks
|
42
43
|
# * docs - Build the docs HTML Files
|
@@ -45,6 +46,7 @@ require 'rubyforge'
|
|
45
46
|
# * install_gem - Install the package as a gem
|
46
47
|
# * multi - Run the test suite using multiruby
|
47
48
|
# * package - Build all the packages
|
49
|
+
# * post_blog - Post announcement to blog.
|
48
50
|
# * post_news - Post announcement to rubyforge.
|
49
51
|
# * publish_docs - Publish RDoc to RubyForge
|
50
52
|
# * release - Package and upload the release to rubyforge.
|
@@ -90,7 +92,7 @@ require 'rubyforge'
|
|
90
92
|
# * RUBY_FLAGS - Used to specify flags to ruby [has smart default].
|
91
93
|
|
92
94
|
class Hoe
|
93
|
-
VERSION = '1.
|
95
|
+
VERSION = '1.2.0'
|
94
96
|
|
95
97
|
rubyprefix = Config::CONFIG['prefix']
|
96
98
|
sitelibdir = Config::CONFIG['sitelibdir']
|
@@ -228,7 +230,7 @@ class Hoe
|
|
228
230
|
puts spec.to_ruby
|
229
231
|
end
|
230
232
|
|
231
|
-
self.lib_files = spec.files.grep(/^lib/)
|
233
|
+
self.lib_files = spec.files.grep(/^(lib|ext)/)
|
232
234
|
self.bin_files = spec.files.grep(/^bin/)
|
233
235
|
self.test_files = spec.files.grep(/^test/)
|
234
236
|
|
@@ -324,12 +326,37 @@ class Hoe
|
|
324
326
|
sh %{rsync -av --delete #{local_dir}/ #{host}:#{remote_dir}}
|
325
327
|
end
|
326
328
|
|
329
|
+
# no doco for this one
|
330
|
+
task :publish_on_announce do
|
331
|
+
with_config do |rc, path|
|
332
|
+
if rc["publish_on_announce"] then
|
333
|
+
Rake::Task['publish_docs'].invoke
|
334
|
+
end
|
335
|
+
end
|
336
|
+
end
|
337
|
+
|
327
338
|
############################################################
|
328
339
|
# Misc/Maintenance:
|
329
340
|
|
341
|
+
def with_config(create=false)
|
342
|
+
require 'yaml'
|
343
|
+
rc = File.expand_path("~/.hoerc")
|
344
|
+
|
345
|
+
unless create then
|
346
|
+
if test ?f, rc then
|
347
|
+
config = YAML.load_file(rc)
|
348
|
+
yield(config, rc)
|
349
|
+
end
|
350
|
+
else
|
351
|
+
unless test ?f, rc then
|
352
|
+
yield(rc)
|
353
|
+
end
|
354
|
+
end
|
355
|
+
end
|
356
|
+
|
330
357
|
desc 'Run ZenTest against the package'
|
331
358
|
task :audit do
|
332
|
-
libs = %w(lib test).join(File::PATH_SEPARATOR)
|
359
|
+
libs = %w(lib test ext).join(File::PATH_SEPARATOR)
|
333
360
|
sh "zentest -I=#{libs} #{spec.files.grep(/^(lib|test)/).join(' ')}"
|
334
361
|
end
|
335
362
|
|
@@ -341,6 +368,32 @@ class Hoe
|
|
341
368
|
end
|
342
369
|
end
|
343
370
|
|
371
|
+
desc 'Create a fresh ~/.hoerc file'
|
372
|
+
task :config_hoe do
|
373
|
+
with_config(:create) do |rc, path|
|
374
|
+
blog = {
|
375
|
+
"publish_on_announce" => false,
|
376
|
+
"blogs" => [ {
|
377
|
+
"user" => "user",
|
378
|
+
"url" => "url",
|
379
|
+
"extra_headers" => {
|
380
|
+
"mt_convert_breaks" => "markdown"
|
381
|
+
},
|
382
|
+
"blog_id" => "blog_id",
|
383
|
+
"password"=>"password",
|
384
|
+
} ],
|
385
|
+
}
|
386
|
+
File.open(rc, "w") do |f|
|
387
|
+
YAML.dump(blog, f)
|
388
|
+
end
|
389
|
+
end
|
390
|
+
|
391
|
+
with_config do |rc, path|
|
392
|
+
editor = ENV['EDITOR'] || 'vi'
|
393
|
+
system "#{editor} #{path}"
|
394
|
+
end
|
395
|
+
end
|
396
|
+
|
344
397
|
desc 'Generate email announcement file.'
|
345
398
|
task :email do
|
346
399
|
require 'rubyforge'
|
@@ -360,6 +413,26 @@ class Hoe
|
|
360
413
|
puts "Created email.txt"
|
361
414
|
end
|
362
415
|
|
416
|
+
desc 'Post announcement to blog.'
|
417
|
+
task :post_blog do
|
418
|
+
require 'xmlrpc/client'
|
419
|
+
|
420
|
+
with_config do |config, path|
|
421
|
+
subject, title, body, urls = announcement
|
422
|
+
config['blogs'].each do |site|
|
423
|
+
server = XMLRPC::Client.new2(site['url'])
|
424
|
+
content = site['extra_headers'].merge(:title => title,
|
425
|
+
:description => body)
|
426
|
+
result = server.call('metaWeblog.newPost',
|
427
|
+
site['blog_id'],
|
428
|
+
site['user'],
|
429
|
+
site['password'],
|
430
|
+
content,
|
431
|
+
true)
|
432
|
+
end
|
433
|
+
end
|
434
|
+
end
|
435
|
+
|
363
436
|
desc 'Post announcement to rubyforge.'
|
364
437
|
task :post_news do
|
365
438
|
require 'rubyforge'
|
@@ -372,7 +445,7 @@ class Hoe
|
|
372
445
|
end
|
373
446
|
|
374
447
|
desc 'Generate email announcement file and post to rubyforge.'
|
375
|
-
task :announce => [:email, :post_news]
|
448
|
+
task :announce => [:email, :post_news, :post_blog, :publish_on_announce ]
|
376
449
|
|
377
450
|
desc "Verify the manifest"
|
378
451
|
task :check_manifest => :clean do
|
data/test/test_hoe.rb
CHANGED
@@ -14,13 +14,34 @@ class TestHoe < Test::Unit::TestCase
|
|
14
14
|
# everything is forked out.
|
15
15
|
|
16
16
|
def test_basics
|
17
|
-
boring = %w(
|
18
|
-
expected = %w(audit
|
17
|
+
boring = %w(clobber_docs clobber_package redocs repackage)
|
18
|
+
expected = %w(audit
|
19
|
+
announce
|
20
|
+
check_manifest
|
21
|
+
clean
|
22
|
+
config_hoe
|
23
|
+
debug_gem
|
24
|
+
default
|
25
|
+
docs
|
26
|
+
email
|
27
|
+
install
|
28
|
+
install_gem
|
29
|
+
multi
|
30
|
+
package
|
31
|
+
post_blog
|
32
|
+
post_news
|
33
|
+
publish_docs
|
34
|
+
release
|
35
|
+
ridocs
|
36
|
+
test
|
37
|
+
test_deps
|
38
|
+
uninstall)
|
19
39
|
expected += boring
|
20
40
|
|
21
41
|
Hoe.new('blah', '1.0.0')
|
22
|
-
tasks = Rake.application.tasks
|
42
|
+
tasks = Rake.application.tasks
|
43
|
+
public_tasks = tasks.reject { |t| t.comment.nil? }.map { |t| t.name }.sort
|
23
44
|
|
24
|
-
assert_equal expected.sort,
|
45
|
+
assert_equal expected.sort, public_tasks
|
25
46
|
end
|
26
47
|
end
|
metadata
CHANGED
@@ -3,15 +3,15 @@ rubygems_version: 0.9.0.9
|
|
3
3
|
specification_version: 1
|
4
4
|
name: hoe
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.
|
7
|
-
date: 2007-
|
6
|
+
version: 1.2.0
|
7
|
+
date: 2007-02-13 00:00:00 -08:00
|
8
8
|
summary: Hoe is a way to write Rakefiles much easier and cleaner.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
11
11
|
email: ryand-ruby@zenspider.com
|
12
12
|
homepage: " http://rubyforge.org/projects/seattlerb/"
|
13
13
|
rubyforge_project: seattlerb
|
14
|
-
description: "Hoe is a simple rake/rubygems helper for project Rakefiles. It generates all the usual tasks for projects including rdoc generation, testing, packaging, and deployment. Tasks Provided: * announce - Generate email announcement file and post to rubyforge. * audit - Run ZenTest against the package * check_manifest - Verify the manifest * clean - Clean up all the extras * debug_gem - Show information about the gem. * default - Run the default tasks * docs - Build the docs HTML Files * email - Generate email announcement file. * install - Install the package. Uses PREFIX and RUBYLIB * install_gem - Install the package as a gem * multi - Run the test suite using multiruby * package - Build all the packages * post_news - Post announcement to rubyforge. * publish_docs - Publish RDoc to RubyForge * release - Package and upload the release to rubyforge. * ridocs - Generate ri locally for testing * test - Run the test suite. Use FILTER to add to the command line. * test_deps - Show which test files fail when run alone. * uninstall - Uninstall the package. See class rdoc for help. Hint: ri Hoe"
|
14
|
+
description: "Hoe is a simple rake/rubygems helper for project Rakefiles. It generates all the usual tasks for projects including rdoc generation, testing, packaging, and deployment. Tasks Provided: * announce - Generate email announcement file and post to rubyforge. * audit - Run ZenTest against the package * check_manifest - Verify the manifest * clean - Clean up all the extras * config_hoe - Create a fresh ~/.hoerc file * debug_gem - Show information about the gem. * default - Run the default tasks * docs - Build the docs HTML Files * email - Generate email announcement file. * install - Install the package. Uses PREFIX and RUBYLIB * install_gem - Install the package as a gem * multi - Run the test suite using multiruby * package - Build all the packages * post_blog - Post announcement to blog. * post_news - Post announcement to rubyforge. * publish_docs - Publish RDoc to RubyForge * release - Package and upload the release to rubyforge. * ridocs - Generate ri locally for testing * test - Run the test suite. Use FILTER to add to the command line. * test_deps - Show which test files fail when run alone. * uninstall - Uninstall the package. See class rdoc for help. Hint: ri Hoe"
|
15
15
|
autorequire:
|
16
16
|
default_executable:
|
17
17
|
bindir: bin
|