Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

153 lines (129 sloc) 4.503 kB
require "rake"
require "rake/clean"
require "rake/gempackagetask"
require "rake/rdoctask"
require "fileutils"
include FileUtils
##############################################################################
# Configuration
##############################################################################
NAME = "sequel_model"
VERS = "0.5"
CLEAN.include ["**/.*.sw?", "pkg/*", ".config", "doc/*", "coverage/*"]
RDOC_OPTS = [
"--quiet",
"--title", "Sequel: The Database Toolkit for Ruby",
"--opname", "index.html",
"--line-numbers",
"--main", "README",
"--inline-source"
]
##############################################################################
# RDoc
##############################################################################
task :doc => [:rdoc]
Rake::RDocTask.new do |rdoc|
rdoc.rdoc_dir = "doc/rdoc"
rdoc.options += RDOC_OPTS
rdoc.main = "README"
rdoc.title = "Sequel: The Database Toolkit for Ruby"
rdoc.rdoc_files.add ["README", "COPYING", "lib/sequel_model.rb", "lib/**/*.rb"]
end
##############################################################################
# Gem packaging
##############################################################################
desc "Packages up Sequel."
task :default => [:package]
task :package => [:clean]
spec = Gem::Specification.new do |s|
s.name = NAME
s.rubyforge_project = 'sequel'
s.version = VERS
s.platform = Gem::Platform::RUBY
s.has_rdoc = true
s.extra_rdoc_files = ["README", "CHANGELOG", "COPYING"]
s.rdoc_options += RDOC_OPTS +
["--exclude", "^(examples|extras)\/", "--exclude", "lib/sequel_model.rb"]
s.summary = "Model classes for Sequel"
s.description = s.summary
s.author = "Sharon Rosner"
s.email = "ciconia@gmail.com"
s.homepage = "http://sequel.rubyforge.org"
s.required_ruby_version = ">= 1.8.4"
case RUBY_PLATFORM
when /java/
s.platform = "jruby"
else
s.platform = Gem::Platform::RUBY
end
s.add_dependency("assistance", '>= 0.1.2')
s.add_dependency("sequel_core", '>= 1.0')
s.files = %w(COPYING README Rakefile) + Dir.glob("{doc,spec,lib}/**/*")
s.require_path = "lib"
end
Rake::GemPackageTask.new(spec) do |p|
p.need_tar = true
p.gem_spec = spec
end
##############################################################################
# installation & removal
##############################################################################
task :install do
sh %{rake package}
sh %{sudo gem install pkg/#{NAME}-#{VERS}}
end
task :install_no_docs do
sh %{rake package}
sh %{sudo gem install pkg/#{NAME}-#{VERS} --no-rdoc --no-ri}
end
task :uninstall => [:clean] do
sh %{sudo gem uninstall #{NAME}}
end
task :tag do
cwd = FileUtils.pwd
sh %{rm -rf doc/*}
sh %{rm -rf pkg/*}
sh %{rm -rf coverage/*}
sh %{cd ../.. && svn copy #{cwd} tags/#{NAME}-#{VERS} && svn commit -m "#{NAME}-#{VERS} tag." tags}
end
##############################################################################
# gem and rdoc release
##############################################################################
task :release => [:package] do
sh %{rubyforge login}
sh %{rubyforge add_release sequel #{NAME} #{VERS} pkg/#{NAME}-#{VERS}.tgz}
sh %{rubyforge add_file sequel #{NAME} #{VERS} pkg/#{NAME}-#{VERS}.gem}
end
##############################################################################
# specs
##############################################################################
require "spec/rake/spectask"
desc "Run specs with coverage"
Spec::Rake::SpecTask.new("spec") do |t|
t.spec_files = FileList["spec/**/*_spec.rb"]
t.spec_opts = File.read("spec/spec.opts").split("\n")
t.rcov_opts = File.read("spec/rcov.opts").split("\n")
t.rcov = true
end
desc "Run specs without coverage"
Spec::Rake::SpecTask.new("spec_no_cov") do |t|
t.spec_files = FileList["spec/**/*_spec.rb"]
t.spec_opts = File.read("spec/spec.opts").split("\n")
end
desc "check documentation coverage"
task :dcov do
sh "find lib -name '*.rb' | xargs dcov"
end
##############################################################################
# Statistics
##############################################################################
STATS_DIRECTORIES = [
%w(Code lib/),
%w(Spec spec/)
].collect { |name, dir| [ name, "./#{dir}" ] }.select { |name, dir| File.directory?(dir) }
desc "Report code statistics (KLOCs, etc) from the application"
task :stats do
require "extra/stats"
verbose = true
CodeStatistics.new(*STATS_DIRECTORIES).to_s
end
Jump to Line
Something went wrong with that request. Please try again.