Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

200 lines (166 sloc) 5.855 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 ado'.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.