require 'rubygems' require 'rake' require 'rake/testtask' require "rake/rdoctask" require "rake/gempackagetask" PRAWN_VERSION = "0.2.99" task :default => [:test] desc "Run all tests, test-spec and mocha required" Rake::TestTask.new do |test| test.libs << "spec" test.test_files = Dir[ "spec/*_spec.rb" ] test.verbose = true end desc "Show library's code statistics" task :stats do require 'code_statistics' CodeStatistics.new( ["Prawn", "lib"], ["Specs", "spec"] ).to_s end desc "genrates documentation" Rake::RDocTask.new do |rdoc| rdoc.rdoc_files.include( "README", "COPYING", "LICENSE", "lib/" ) rdoc.main = "README" rdoc.rdoc_dir = "doc/html" rdoc.title = "Prawn Documentation" end desc "run all examples, and then diff them against reference PDFs" task :examples do mkdir_p "output" examples = Dir["examples/*.rb"] t = Time.now puts "Running Examples" examples.each { |file| `ruby -Ilib #{file}` } puts "Ran in #{Time.now - t} s" `mv *.pdf output` unless RUBY_VERSION < "1.9" puts "Checking for differences..." output = Dir["output/*.pdf"] ref = Dir["reference_pdfs/*.pdf"] output.zip(ref).each do |o,r| system "diff -q #{o} #{r}" end end end task :generate do if File.exists?("examples/#{ENV['example']}.rb") puts "Example already exists" else File.open("examples/#{ENV['example']}.rb", "w") do |f| f << ["$LOAD_PATH << File.join(File.dirname(__FILE__), '..', 'lib')", "require 'prawn'\n", "Prawn::Document.generate('#{ENV['example']}.pdf') do\n\nend"].join("\n") end sh "git add examples/#{ENV['example']}.rb" end end Rake::GemPackageTask.new(spec) do |pkg| pkg.need_zip = true pkg.need_tar = true end