Rakefile in gruff-0.2.3 vs Rakefile in gruff-0.2.4

- old
+ new

@@ -1,209 +1,227 @@ -require 'rubygems' -require 'rake' -require 'rake/testtask' -require 'rake/rdoctask' -require 'rake/packagetask' -require 'rake/gempackagetask' -require 'rake/contrib/rubyforgepublisher' +require 'rubygems' +require 'hoe' $:.unshift(File.dirname(__FILE__) + "/lib") require 'gruff' -PKG_NAME = 'gruff' -PKG_VERSION = Gruff::VERSION -PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}" +Hoe.new('Gruff', Gruff::VERSION) do |p| + p.name = "gruff" + p.author = "Geoffrey Grosenbach" + p.description = "Beautiful graphs for one or multiple datasets. Can be used on websites or in documents." + p.email = 'boss@topfunky.com' + p.summary = "Beautiful graphs for one or multiple datasets." + p.url = "http://nubyonrails.com/pages/gruff" + p.clean_globs = ['test/output/*.png'] -RELEASE_NAME = "REL #{PKG_VERSION}" - -RUBY_FORGE_PROJECT = "gruff" -RUBY_FORGE_USER = "topfunky" - -desc "Default Task" -task :default => [ :clean, :test ] - -desc "Clean images generated by tests" -task :clean do - rm FileList['test/output/*.png'] - rm_rf 'pkg' - rm_rf 'doc' + # * extra_deps - An array of rubygem dependencies. end -desc "Copy documentation to topfunky.com" -task :rdoc_deploy => [:rdoc] do - dirs = %w{doc} - onserver = "topfunky@topfunky.com:/home/topfunky/topfunky.com/clients/rails/gruff" - dirs.each do | dir| - `rsync -avz -e ssh "#{`pwd`.chomp}/#{dir}" "#{onserver}" --exclude ".svn"` - end -end -# Run the unit tests -Rake::TestTask.new { |t| - t.libs << "test" - t.pattern = 'test/*_test.rb' - t.verbose = true -} - -# Genereate the RDoc documentation -Rake::RDocTask.new { |rdoc| - rdoc.rdoc_dir = 'doc' - rdoc.title = "Gruff -- Beautiful graphs" -# rdoc.options << '--line-numbers --inline-source --main README --accessor adv_attr_accessor=M' - rdoc.template = "#{ENV['template']}.rb" if ENV['template'] - rdoc.rdoc_files.include('README', 'CHANGELOG') - rdoc.rdoc_files.include('lib/gruff.rb') - rdoc.rdoc_files.include('lib/gruff/*.rb') -} - - -# Create compressed packages -spec = Gem::Specification.new do |s| - s.platform = Gem::Platform::RUBY - s.name = PKG_NAME - s.summary = "Beautiful graphs for one or multiple datasets." - s.description = %q{Make colorful graphs for use on websites or documents.} - s.version = PKG_VERSION - - s.author = "Geoffrey Grosenbach" - s.email = "boss@topfunky.com" - s.rubyforge_project = RUBY_FORGE_PROJECT - s.homepage = "http://www.topfunky.com" - - s.has_rdoc = true - s.requirements << 'none' - s.require_path = 'lib' - s.autorequire = 'gruff' - - s.files = [ "Rakefile", "README", "CHANGELOG", "MIT-LICENSE" ] - s.files = s.files + Dir.glob( "lib/**/*" ).delete_if { |item| item.include?( "\.svn" ) } - s.files = s.files + Dir.glob( "assets/*" ).delete_if { |item| item.include?( "\.svn" ) } - s.files = s.files + Dir.glob( "test/**/*" ).delete_if { |item| item.include?( "\.svn" ) || item.include?("\.png") } -end - -Rake::GemPackageTask.new(spec) do |p| - p.gem_spec = spec - p.need_tar = true - p.need_zip = true -end - -desc "Publish the API documentation" -task :pgem => [:package] do - Rake::SshFilePublisher.new("boss@topfunky.com", "public_html/gems/gems", "pkg", "#{PKG_FILE_NAME}.gem").upload -end - -desc "Publish the release files to RubyForge." -task :release => [:package] do - files = ["gem", "tgz", "zip"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" } - - if RUBY_FORGE_PROJECT then - require 'net/http' - require 'open-uri' - - project_uri = "http://rubyforge.org/projects/#{RUBY_FORGE_PROJECT}/" - project_data = open(project_uri) { |data| data.read } - group_id = project_data[/[?&]group_id=(\d+)/, 1] - raise "Couldn't get group id" unless group_id - - # This echos password to shell which is a bit sucky - if ENV["RUBY_FORGE_PASSWORD"] - password = ENV["RUBY_FORGE_PASSWORD"] - else - print "#{RUBY_FORGE_USER}@rubyforge.org's password: " - password = STDIN.gets.chomp - end - - login_response = Net::HTTP.start("rubyforge.org", 80) do |http| - data = [ - "login=1", - "form_loginname=#{RUBY_FORGE_USER}", - "form_pw=#{password}" - ].join("&") - http.post("/account/login.php", data) - end - - cookie = login_response["set-cookie"] - raise "Login failed" unless cookie - headers = { "Cookie" => cookie } - - release_uri = "http://rubyforge.org/frs/admin/?group_id=#{group_id}" - release_data = open(release_uri, headers) { |data| data.read } - package_id = release_data[/[?&]package_id=(\d+)/, 1] - raise "Couldn't get package id" unless package_id - - first_file = true - release_id = "" - - files.each do |filename| - basename = File.basename(filename) - file_ext = File.extname(filename) - file_data = File.open(filename, "rb") { |file| file.read } - - puts "Releasing #{basename}..." - - release_response = Net::HTTP.start("rubyforge.org", 80) do |http| - release_date = Time.now.strftime("%Y-%m-%d %H:%M") - type_map = { - ".zip" => "3000", - ".tgz" => "3110", - ".gz" => "3110", - ".gem" => "1400" - }; type_map.default = "9999" - type = type_map[file_ext] - boundary = "rubyqMY6QN9bp6e4kS21H4y0zxcvoor" - - query_hash = if first_file then - { - "group_id" => group_id, - "package_id" => package_id, - "release_name" => RELEASE_NAME, - "release_date" => release_date, - "type_id" => type, - "processor_id" => "8000", # Any - "release_notes" => "", - "release_changes" => "", - "preformatted" => "1", - "submit" => "1" - } - else - { - "group_id" => group_id, - "release_id" => release_id, - "package_id" => package_id, - "step2" => "1", - "type_id" => type, - "processor_id" => "8000", # Any - "submit" => "Add This File" - } - end - - query = "?" + query_hash.map do |(name, value)| - [name, URI.encode(value)].join("=") - end.join("&") - - data = [ - "--" + boundary, - "Content-Disposition: form-data; name=\"userfile\"; filename=\"#{basename}\"", - "Content-Type: application/octet-stream", - "Content-Transfer-Encoding: binary", - "", file_data, "" - ].join("\x0D\x0A") - - release_headers = headers.merge( - "Content-Type" => "multipart/form-data; boundary=#{boundary}" - ) - - target = first_file ? "/frs/admin/qrs.php" : "/frs/admin/editrelease.php" - http.post(target + query, data, release_headers) - end - - if first_file then - release_id = release_response.body[/release_id=(\d+)/, 1] - raise("Couldn't get release id") unless release_id - end - - first_file = false - end - end -end - - +# require 'rake' +# require 'rake/testtask' +# require 'rake/rdoctask' +# require 'rake/packagetask' +# require 'rake/gempackagetask' +# require 'rake/contrib/rubyforgepublisher' +# +# $:.unshift(File.dirname(__FILE__) + "/lib") +# require 'gruff' +# +# PKG_NAME = 'gruff' +# PKG_VERSION = Gruff::VERSION +# PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}" +# +# RELEASE_NAME = "REL #{PKG_VERSION}" +# +# RUBY_FORGE_PROJECT = "gruff" +# RUBY_FORGE_USER = "topfunky" +# +# desc "Default Task" +# task :default => [ :clean, :test ] +# +# desc "Clean images generated by tests" +# task :clean do +# rm FileList['test/output/*.png'] +# rm_rf 'pkg' +# rm_rf 'doc' +# end +# +# desc "Copy documentation to topfunky.com" +# task :rdoc_deploy => [:rdoc] do +# dirs = %w{doc} +# onserver = "topfunky@topfunky.com:/home/topfunky/topfunky.com/clients/rails/gruff" +# dirs.each do | dir| +# `rsync -avz -e ssh "#{`pwd`.chomp}/#{dir}" "#{onserver}" --exclude ".svn"` +# end +# end +# +# # Run the unit tests +# Rake::TestTask.new { |t| +# t.libs << "test" +# t.pattern = 'test/*_test.rb' +# t.verbose = true +# } +# +# # Genereate the RDoc documentation +# Rake::RDocTask.new { |rdoc| +# rdoc.rdoc_dir = 'doc' +# rdoc.title = "Gruff -- Beautiful graphs" +# # rdoc.options << '--line-numbers --inline-source --main README --accessor adv_attr_accessor=M' +# rdoc.template = "#{ENV['template']}.rb" if ENV['template'] +# rdoc.rdoc_files.include('README', 'CHANGELOG') +# rdoc.rdoc_files.include('lib/gruff.rb') +# rdoc.rdoc_files.include('lib/gruff/*.rb') +# } +# +# +# # Create compressed packages +# spec = Gem::Specification.new do |s| +# s.platform = Gem::Platform::RUBY +# s.name = PKG_NAME +# s.summary = "Beautiful graphs for one or multiple datasets." +# s.description = %q{Make colorful graphs for use on websites or documents.} +# s.version = PKG_VERSION +# +# s.author = "Geoffrey Grosenbach" +# s.email = "boss@topfunky.com" +# s.rubyforge_project = RUBY_FORGE_PROJECT +# s.homepage = "http://www.topfunky.com" +# +# s.has_rdoc = true +# s.requirements << 'none' +# s.require_path = 'lib' +# s.autorequire = 'gruff' +# +# s.files = [ "Rakefile", "README", "CHANGELOG", "MIT-LICENSE" ] +# s.files = s.files + Dir.glob( "lib/**/*" ).delete_if { |item| item.include?( "\.svn" ) } +# s.files = s.files + Dir.glob( "assets/*" ).delete_if { |item| item.include?( "\.svn" ) } +# s.files = s.files + Dir.glob( "test/**/*" ).delete_if { |item| item.include?( "\.svn" ) || item.include?("\.png") } +# end +# +# Rake::GemPackageTask.new(spec) do |p| +# p.gem_spec = spec +# p.need_tar = true +# p.need_zip = true +# end +# +# desc "Publish the API documentation" +# task :pgem => [:package] do +# Rake::SshFilePublisher.new("boss@topfunky.com", "public_html/gems/gems", "pkg", "#{PKG_FILE_NAME}.gem").upload +# end +# +# desc "Publish the release files to RubyForge." +# task :release => [:package] do +# files = ["gem", "tgz", "zip"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" } +# +# if RUBY_FORGE_PROJECT then +# require 'net/http' +# require 'open-uri' +# +# project_uri = "http://rubyforge.org/projects/#{RUBY_FORGE_PROJECT}/" +# project_data = open(project_uri) { |data| data.read } +# group_id = project_data[/[?&]group_id=(\d+)/, 1] +# raise "Couldn't get group id" unless group_id +# +# # This echos password to shell which is a bit sucky +# if ENV["RUBY_FORGE_PASSWORD"] +# password = ENV["RUBY_FORGE_PASSWORD"] +# else +# print "#{RUBY_FORGE_USER}@rubyforge.org's password: " +# password = STDIN.gets.chomp +# end +# +# login_response = Net::HTTP.start("rubyforge.org", 80) do |http| +# data = [ +# "login=1", +# "form_loginname=#{RUBY_FORGE_USER}", +# "form_pw=#{password}" +# ].join("&") +# http.post("/account/login.php", data) +# end +# +# cookie = login_response["set-cookie"] +# raise "Login failed" unless cookie +# headers = { "Cookie" => cookie } +# +# release_uri = "http://rubyforge.org/frs/admin/?group_id=#{group_id}" +# release_data = open(release_uri, headers) { |data| data.read } +# package_id = release_data[/[?&]package_id=(\d+)/, 1] +# raise "Couldn't get package id" unless package_id +# +# first_file = true +# release_id = "" +# +# files.each do |filename| +# basename = File.basename(filename) +# file_ext = File.extname(filename) +# file_data = File.open(filename, "rb") { |file| file.read } +# +# puts "Releasing #{basename}..." +# +# release_response = Net::HTTP.start("rubyforge.org", 80) do |http| +# release_date = Time.now.strftime("%Y-%m-%d %H:%M") +# type_map = { +# ".zip" => "3000", +# ".tgz" => "3110", +# ".gz" => "3110", +# ".gem" => "1400" +# }; type_map.default = "9999" +# type = type_map[file_ext] +# boundary = "rubyqMY6QN9bp6e4kS21H4y0zxcvoor" +# +# query_hash = if first_file then +# { +# "group_id" => group_id, +# "package_id" => package_id, +# "release_name" => RELEASE_NAME, +# "release_date" => release_date, +# "type_id" => type, +# "processor_id" => "8000", # Any +# "release_notes" => "", +# "release_changes" => "", +# "preformatted" => "1", +# "submit" => "1" +# } +# else +# { +# "group_id" => group_id, +# "release_id" => release_id, +# "package_id" => package_id, +# "step2" => "1", +# "type_id" => type, +# "processor_id" => "8000", # Any +# "submit" => "Add This File" +# } +# end +# +# query = "?" + query_hash.map do |(name, value)| +# [name, URI.encode(value)].join("=") +# end.join("&") +# +# data = [ +# "--" + boundary, +# "Content-Disposition: form-data; name=\"userfile\"; filename=\"#{basename}\"", +# "Content-Type: application/octet-stream", +# "Content-Transfer-Encoding: binary", +# "", file_data, "" +# ].join("\x0D\x0A") +# +# release_headers = headers.merge( +# "Content-Type" => "multipart/form-data; boundary=#{boundary}" +# ) +# +# target = first_file ? "/frs/admin/qrs.php" : "/frs/admin/editrelease.php" +# http.post(target + query, data, release_headers) +# end +# +# if first_file then +# release_id = release_response.body[/release_id=(\d+)/, 1] +# raise("Couldn't get release id") unless release_id +# end +# +# first_file = false +# end +# end +# end +# +#