🕷 zenspider.com

by ryan davis



sitemap
Looking for the Ruby Quickref?

coming soon...

Published 2009-05-31 @ 21:27

Tagged hoe, planning, ruby

1.9 compatibility:

I’ve been focusing on 1.9 compatibility lately and while most of my stuff was good to go, there were still some lingering issues here and there. Check it:

% ./sanity_report.rb
Project: 1.8.6-p287, 1.8.6-p368, 1.8.7-p160, 1.8.7-p72, 1.9.1-p0, 1.9.1-p129
hoe            : T, T, T, T, T, T : needs release
ZenTest        : T, T, T, T, T, T : needs release
minitest       : T, T, T, T, T, T : needs release
RubyInline     : T, T, T, T, T, T : needs release
sexp_processor : T, T, T, T, T, T : needs release
ParseTree      : T, T, T, T, T, T : needs release
ruby_parser    : T, T, T, T, T, T : needs release
ruby2ruby      : T, T, T, T, T, T : up-to-date
heckle         : T, T, T, T, T, T : needs release
flog           : T, T, T, T, T, T : needs release
flay           : T, T, T, T, T, T : needs release
vlad           : T, T, T, T, T, T : needs release
ruby_to_c      : T, T, T, T, F, F : needs release
png            : T, T, T, T, F, F : needs release

passed: 74 failed: 4

…fear the coming avalanche… :P

Hoe Awesomeness:

I’m also working on a total revamp of hoe by finally figuring out a good way to make it pluggable and splitting out almost all of its functionality into plugins (all still activated by default). As a result, hoe.rb is currently 44% of the original size and is much much cleaner. That also means that things that I considered orthogonal to hoe can be written by others and easily available to you. It also has a new DSLish way of defining specs

Imagine:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Hoe.plugin :perforce
Hoe.plugin :minitest
Hoe.plugin :email

Hoe.spec "hoe" do
  developer "Ryan Davis", "ryand-ruby@zenspider.com"

  self.rubyforge_name = "seattlerb"

  blog_categories << "Seattle.rb" << "Ruby"
  publish_emails << "ruby@zenspider.com" << "ruby-talk@ruby-lang.org"

  pluggable!
end

None of those plugins exist yet… Here is what I’ve pulled out so far:

% ls lib/hoe
clean.rb	flay.rb		package.rb	rcov.rb
debug.rb	flog.rb		publish.rb	signing.rb
deps.rb		inline.rb	rake.rb		test.rb

and the plugin structure is really easy:

1
2
3
4
5
6
7
8
9
module Hoe::Blah
  def initialize_blah   # optional
    # ...
  end

  def define_blah_tasks # mandatory
    # ...
  end
end