From: Tilman Sauerbeck Date: Sat, 12 Aug 2006 20:34:22 +0000 (+0200) Subject: Added Gem support. X-Git-Url: http://git.code-monkey.de/?p=ruby-vorbistagger.git;a=commitdiff_plain;h=f02ae647b1d09a83034e00e1d6d5c01780f8df51 Added Gem support. --- diff --git a/Rakefile b/Rakefile index 4cb775c..4aa62fc 100644 --- a/Rakefile +++ b/Rakefile @@ -9,13 +9,28 @@ require "rake/configuretask" require "rake/gcc4test" require "rake/extensiontask" +begin + require "rubygems" + require "rake/gempackagetask" +rescue LoadError +end + PKG_NAME = "ruby-vorbistagger" PKG_VERSION = File.read("lib/ogg/vorbis/tagger.rb"). match(/^\s*VERSION = \"(.*)\"$/).captures.first +PKG_FILES = FileList[ + "AUTHORS", "COPYING", "README", "Rakefile", + "gemspec.rb", + "rake/{{configure,extension}task,gcc4test}.rb", + "ext/comments.[ch]", "ext/ext.c", "ext/vcedit.[ch]", + "lib/ogg/vorbis/tagger.rb", + "test/test_main.rb" +] ext_objs = [:ext, :comments, :vcedit] task :default => [:ext] +task :extension => [:install, :clobber] config = Rake::ConfigureTask.new do |t| t.tests << Rake::ConfigureTask:: @@ -55,35 +70,59 @@ end task :install => [:ext] do |t| destdir = ENV["DESTDIR"] || "" - ddir = destdir + Config::CONFIG["sitearchdir"] - FileUtils::Verbose.mkdir_p(ddir) unless File.directory?(ddir) - FileUtils::Verbose.install(ext.lib_name, ddir, :mode => 0755) + tmp = ENV["RUBYARCHDIR"] || Config::CONFIG["sitearchdir"] + ddir = File.join(destdir, tmp) + + unless File.expand_path(ext.lib_name) == + File.join(ddir, File.basename(ext.lib_name)) + FileUtils::Verbose.mkdir_p(ddir) unless File.directory?(ddir) + FileUtils::Verbose.install(ext.lib_name, ddir, :mode => 0755) + end + + tmp = ENV["RUBYLIBDIR"] || Config::CONFIG["sitelibdir"] + ddir = File.join(destdir, tmp) + + PKG_FILES.each do |file| + next unless file.pathmap("%1d") == "lib" + + dest_file = file.pathmap("%{^lib,#{ddir}}p") + + next if File.expand_path(file) == dest_file - ddir = destdir + Config::CONFIG["sitelibdir"] + "ogg/vorbis" - FileUtils::Verbose.mkdir_p(ddir) unless File.directory?(ddir) - FileUtils::Verbose.install("lib/**/*.rb", ddir, :mode => 0644) + FileUtils::Verbose.mkdir_p(File.dirname(dest_file)) + FileUtils::Verbose.install(file, dest_file, :mode => 0644) + end end task :test => [:ext] -Rake::TestTask.new do |t| - t.libs = ["lib", "ext", "test"] - t.test_files = FileList["test/test_*.rb"] +test = Rake::TestTask.new do |t| + t.libs = ["lib", "ext"] t.warning = true end -Rake::RDocTask.new do |t| +rdoc = Rake::RDocTask.new do |t| t.rdoc_dir = "doc" t.title = PKG_NAME t.options = ["--line-numbers", "--inline-source", "--main", "README"] - t.rdoc_files.include("README", "COPYING", "AUTHORS", - "ext/ext.c", "ext/comments.c", "lib/**/*.rb") + t.rdoc_files = FileList[ + "README", "COPYING", "AUTHORS", + "ext/ext.c", "ext/comments.c", "lib/ogg/vorbis/tagger.rb" + ] end -Rake::PackageTask.new(PKG_NAME, PKG_VERSION) do |t| - t.need_tar_gz = true - t.package_files.include("[A-Z]*", "rake/*rb", "ext/*.[ch]", - "lib/**/*.rb", "test/*.rb") +if defined?(Gem) + s = Gem::Specification.new + eval(File.read("gemspec.rb")) + + Rake::GemPackageTask.new(s) do |t| + t.need_tar_gz = true + end +else + Rake::PackageTask.new(PKG_NAME, PKG_VERSION) do |t| + t.need_tar_gz = true + t.package_files = PKG_FILES + end end task :publish => [:rdoc, :package] do @@ -91,9 +130,13 @@ task :publish => [:rdoc, :package] do p.add(Rake::SshFreshDirPublisher.new("code-monkey.de", "public_docs/" + PKG_NAME, "doc")) - p.add(Rake::SshFilePublisher.new("code-monkey.de", - ".", "pkg", - "#{PKG_NAME}-#{PKG_VERSION}.tar.gz")) + + files = ["tar.gz"] + files << "gem" if defined?(Gem) + + files.map! { |f| "#{PKG_NAME}-#{PKG_VERSION}.#{f}" } + + p.add(Rake::SshFilePublisher.new("code-monkey.de", ".", "pkg", *files)) p.upload end diff --git a/gemspec.rb b/gemspec.rb new file mode 100644 index 0000000..2bb8100 --- /dev/null +++ b/gemspec.rb @@ -0,0 +1,29 @@ +s.platform = Gem::Platform::RUBY +s.name = "ruby-vorbistagger" +s.version = PKG_VERSION +s.summary = "Read-write interface to Vorbis comments/tags." +s.requirements << "libvorbis" +s.require_path = "lib" +s.files = PKG_FILES.to_a +s.description =<