tasks/website.rake in newgem-0.29.0 vs tasks/website.rake in newgem-1.0.0
- old
+ new
@@ -1,19 +1,47 @@
+require 'yaml'
+
+def website_config
+ unless @website_config
+ begin
+ @website_config = YAML.load(File.read("config/website.yml"))
+ rescue
+ puts <<-EOS
+To upload your website to a host, you need to configure
+config/website.yml. See config/website.yml.sample for
+an example.
+EOS
+ exit
+ end
+ end
+ @website_config
+end
+
desc 'Generate website files'
task :website_generate => :ruby_env do
(Dir['website/**/*.txt'] - Dir['website/version*.txt']).each do |txt|
sh %{ #{RUBY_APP} script/txt2html #{txt} > #{txt.gsub(/txt$/,'html')} }
end
- sh %{ #{RUBY_APP} script/txt2js website/version.txt > website/version.js }
- sh %{ #{RUBY_APP} script/txt2js website/version-raw.txt > website/version-raw.js }
end
desc 'Upload website files to rubyforge'
task :website_upload do
- host = "#{rubyforge_username}@rubyforge.org"
- remote_dir = "/var/www/gforge-projects/#{RUBYFORGE_PROJECT}/"
- local_dir = 'website'
- sh %{rsync -aCv #{local_dir}/ #{host}:#{remote_dir}}
+ local_dir = 'website'
+ host = website_config["host"]
+ host = host ? "#{host}:" : ""
+ remote_dir = website_config["remote_dir"]
+ sh %{rsync -aCv #{local_dir}/ #{host}#{remote_dir}}
+end
+
+remove_task :publish_docs # recreate hoe's rubyforge specific version
+
+desc 'Publish RDoc to RubyForge.'
+task :publish_docs => [:clean, :docs] do
+ local_dir = 'doc'
+ host = website_config["host"]
+ host = host ? "#{host}:" : ""
+ remote_dir = File.join(website_config["remote_dir"], "rdoc")
+ sh %{rsync -aCv #{local_dir}/ #{host}#{remote_dir}}
end
desc 'Generate and upload website files'
task :website => [:website_generate, :website_upload, :publish_docs]