Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

200 lines (166 sloc) 5.86 kB
require "rake"
require "rake/clean"
require "rake/gempackagetask"
begin
require "hanna/rdoctask"
rescue LoadError
require "rake/rdoctask"
end
NAME = 'sequel'
VERS = lambda do
require "lib/sequel/version"
Sequel.version
end
CLEAN.include ["**/.*.sw?", "pkg", ".config", "rdoc", "coverage", "www/public/*.html", "www/public/rdoc*"]
RDOC_DEFAULT_OPTS = ["--quiet", "--line-numbers", "--inline-source", '--title', 'Sequel: The Database Toolkit for Ruby']
RDOC_OPTS = RDOC_DEFAULT_OPTS + ['--main', 'README.rdoc']
# Gem Packaging and Release
spec = Gem::Specification.new do |s|
s.name = NAME
s.rubyforge_project = 'sequel'
s.version = VERS.call
s.platform = Gem::Platform::RUBY
s.has_rdoc = true
s.extra_rdoc_files = ["README.rdoc", "CHANGELOG", "COPYING"] + Dir["doc/*.rdoc"] + Dir['doc/release_notes/*.txt']
s.rdoc_options += RDOC_OPTS
s.summary = "The Database Toolkit for Ruby"
s.description = s.summary
s.author = "Jeremy Evans"
s.email = "code@jeremyevans.net"
s.homepage = "http://sequel.rubyforge.org"
s.required_ruby_version = ">= 1.8.4"
s.files = %w(COPYING CHANGELOG README.rdoc Rakefile) + Dir["{bin,doc,spec,lib}/**/*"]
s.require_path = "lib"
s.bindir = 'bin'
s.executables << 'sequel'
end
desc "Packages sequel"
task :package=>[:clean]
Rake::GemPackageTask.new(spec) do |p|
p.need_tar = true
p.gem_spec = spec
end
desc "Install sequel gem"
task :install=>[:package] do
sh %{sudo gem install pkg/#{NAME}-#{VERS.call} --local}
end
desc "Uninstall sequel gem"
task :uninstall=>[:clean] do
sh %{sudo gem uninstall #{NAME}}
end
desc "Upload sequel gem to rubyforge"
task :release=>[:package] do
sh %{rubyforge login}
sh %{rubyforge add_release sequel #{NAME} #{VERS.call} pkg/#{NAME}-#{VERS.call}.tgz}
sh %{rubyforge add_file sequel #{NAME} #{VERS.call} pkg/#{NAME}-#{VERS.call}.gem}
end
### RDoc
Rake::RDocTask.new do |rdoc|
rdoc.rdoc_dir = "rdoc"
rdoc.options += RDOC_OPTS
rdoc.rdoc_files.add %w"README.rdoc CHANGELOG COPYING lib/**/*.rb doc/*.rdoc doc/release_notes/*.txt"
end
### Website
desc "Make local version of website"
task :website do
sh %{www/make_www.rb}
end
desc "Make rdoc for website"
task :website_rdoc=>[:website_rdoc_main, :website_rdoc_adapters, :website_rdoc_plugins]
Rake::RDocTask.new(:website_rdoc_main) do |rdoc|
rdoc.rdoc_dir = "www/public/rdoc"
rdoc.options += RDOC_OPTS
rdoc.rdoc_files.add %w"README.rdoc CHANGELOG COPYING lib/*.rb lib/sequel/*.rb lib/sequel/{dataset,database,model}/*.rb doc/*.rdoc doc/release_notes/*.txt"
end
Rake::RDocTask.new(:website_rdoc_adapters) do |rdoc|
rdoc.rdoc_dir = "www/public/rdoc-adapters"
rdoc.options += RDOC_DEFAULT_OPTS + %w'--main Sequel'
rdoc.rdoc_files.add %w"lib/sequel/adapters/**/*.rb"
end
Rake::RDocTask.new(:website_rdoc_plugins) do |rdoc|
rdoc.rdoc_dir = "www/public/rdoc-plugins"
rdoc.options += RDOC_DEFAULT_OPTS + %w'--main Sequel'
rdoc.rdoc_files.add %w"lib/sequel/{extensions,plugins}/**/*.rb"
end
desc "Update Non-RDoc section of sequel.rubyforge.org"
task :website_rf_base=>[:website] do
sh %{rsync -rt www/public/*.html rubyforge.org:/var/www/gforge-projects/sequel/}
end
desc "Update sequel.rubyforge.org"
task :website_rf=>[:website, :website_rdoc] do
sh %{rsync -rvt www/public/* rubyforge.org:/var/www/gforge-projects/sequel/}
end
### Specs
begin
require "spec/rake/spectask"
spec_opts = lambda do
lib_dir = File.join(File.dirname(__FILE__), 'lib')
ENV['RUBYLIB'] ? (ENV['RUBYLIB'] += ":#{lib_dir}") : (ENV['RUBYLIB'] = lib_dir)
File.read("spec/spec.opts").split("\n")
end
rcov_opts = lambda do
[true, File.read("spec/rcov.opts").split("\n")]
end
desc "Run core and model specs with coverage"
Spec::Rake::SpecTask.new("spec_coverage") do |t|
t.spec_files = Dir["spec/{core,model}/*_spec.rb"]
t.spec_opts = spec_opts.call
t.rcov, t.rcov_opts = rcov_opts.call
end
desc "Run core and model specs"
task :default => [:spec]
Spec::Rake::SpecTask.new("spec") do |t|
t.spec_files = Dir["spec/{core,model}/*_spec.rb"]
t.spec_opts = spec_opts.call
end
desc "Run core specs"
Spec::Rake::SpecTask.new("spec_core") do |t|
t.spec_files = Dir["spec/core/*_spec.rb"]
t.spec_opts = spec_opts.call
end
desc "Run model specs"
Spec::Rake::SpecTask.new("spec_model") do |t|
t.spec_files = Dir["spec/model/*_spec.rb"]
t.spec_opts = spec_opts.call
end
desc "Run extension/plugin specs"
Spec::Rake::SpecTask.new("spec_plugin") do |t|
t.spec_files = Dir["spec/extensions/*_spec.rb"]
t.spec_opts = spec_opts.call
end
desc "Run extention/plugin specs with coverage"
Spec::Rake::SpecTask.new("spec_plugin_cov") do |t|
t.spec_files = Dir["spec/extensions/*_spec.rb"]
t.spec_opts = spec_opts.call
t.rcov, t.rcov_opts = rcov_opts.call
end
desc "Run integration tests"
Spec::Rake::SpecTask.new("integration") do |t|
t.spec_files = Dir["spec/integration/*_test.rb"]
t.spec_opts = spec_opts.call
end
%w'postgres sqlite mysql informix oracle firebird'.each do |adapter|
desc "Run #{adapter} specs without coverage"
Spec::Rake::SpecTask.new("spec_#{adapter}") do |t|
t.spec_files = ["spec/adapters/#{adapter}_spec.rb"] + Dir["spec/integration/*_test.rb"]
t.spec_opts = spec_opts.call
end
end
rescue LoadError
end
desc "check documentation coverage"
task :dcov do
sh %{find lib -name '*.rb' | xargs dcov}
end
### Statistics
desc "Report code statistics (KLOCs, etc) from the application"
task :stats do
STATS_DIRECTORIES = [%w(Code lib/), %w(Spec spec)].map{|name, dir| [ name, "./#{dir}" ] }.select { |name, dir| File.directory?(dir)}
require "extra/stats"
verbose = true
CodeStatistics.new(*STATS_DIRECTORIES).to_s
end
desc "Print Sequel version"
task :version do
puts VERS.call
end
Jump to Line
Something went wrong with that request. Please try again.