1
0
Fork 0
mirror of https://github.com/sinatra/sinatra synced 2023-03-27 23:18:01 -04:00
sinatra/Rakefile
Ryan Tomayko 0e367a5241 rake task for generating rdoc with hanna template
This uses the hanna command shipped with the hanna gem. The
preferred method of using is to require 'hanna/rdoctask' in
your Rakefile but this caused various gem depency errors (blame
Hoe, rdoc 2.0, Echoe, and rubyforge).

You have to install mislav's hanna gem from github:

  $ sudo gem install mislav-hanna --source=http://gems.github.com

Run the doc task to generate rdoc under doc/api:

  $ rake doc

See mislav's repo for more info on template usage:

  http://github.com/mislav/hanna

See the HAML docs for an example of the hanna template in action:

  http://haml.hamptoncatlin.com/docs/rdoc
2008-08-31 02:12:25 -07:00

69 lines
1.8 KiB
Ruby

require 'rake/clean'
task :default => :test
# SPECS ===============================================================
desc 'Run specs with story style output'
task :spec do
sh 'specrb --specdox -Ilib:test test/*_test.rb'
end
desc 'Run specs with unit test style output'
task :test => FileList['test/*_test.rb'] do |t|
suite = t.prerequisites.map{|f| "-r#{f.chomp('.rb')}"}.join(' ')
sh "ruby -Ilib:test #{suite} -e ''", :verbose => false
end
# PACKAGING ============================================================
def spec
@spec ||=
eval(File.read('sinatra.gemspec'))
end
def package(ext='')
"dist/sinatra-#{spec.version}" + ext
end
desc 'Build packages'
task :package => %w[.gem .tar.gz].map {|e| package(e)}
desc 'Build and install as local gem'
task :install => package('.gem') do
sh "gem install #{package('.gem')}"
end
directory 'dist/'
file package('.gem') => %w[dist/ sinatra.gemspec] + spec.files do |f|
sh "gem build sinatra.gemspec"
mv File.basename(f.name), f.name
end
file package('.tar.gz') => %w[dist/] + spec.files do |f|
sh "git archive --format=tar HEAD | gzip > #{f.name}"
end
# Hanna RDoc =========================================================
#
# Building docs requires the hanna gem:
# gem install mislav-hanna --source=http://gems.github.com
desc 'Generate Hanna RDoc under doc/api'
task :doc => ['doc/api/index.html']
file 'doc/api/index.html' => FileList['lib/**/*.rb','README.rdoc'] do |f|
rb_files = f.prerequisites
sh((<<-end).gsub(/\s+/, ' '))
hanna --charset utf8 \
--fmt html \
--inline-source \
--line-numbers \
--main README.rdoc \
--op doc/api \
--title 'Sinatra API Documentation' \
#{rb_files.join(' ')}
end
end
CLEAN.include 'doc/api'