| 1 |
require 'rubygems' |
|---|
| 2 |
require 'rake' |
|---|
| 3 |
require 'rake/testtask' |
|---|
| 4 |
require 'rake/packagetask' |
|---|
| 5 |
require 'rake/gempackagetask' |
|---|
| 6 |
require 'rake/contrib/rubyforgepublisher' |
|---|
| 7 |
|
|---|
| 8 |
PKG_NAME = 'activerecord-sqlserver-adapter' |
|---|
| 9 |
PKG_BUILD = (".#{ENV['PKG_BUILD']}" if ENV['PKG_BUILD']) |
|---|
| 10 |
PKG_VERSION = "1.0.0#{PKG_BUILD}" |
|---|
| 11 |
|
|---|
| 12 |
spec = Gem::Specification.new do |s| |
|---|
| 13 |
s.name = PKG_NAME |
|---|
| 14 |
s.summary = 'SQL Server adapter for Active Record' |
|---|
| 15 |
s.version = PKG_VERSION |
|---|
| 16 |
|
|---|
| 17 |
s.add_dependency 'activerecord', '>= 1.15.5.7843' |
|---|
| 18 |
s.require_path = 'lib' |
|---|
| 19 |
|
|---|
| 20 |
s.files = %w(lib/active_record/connection_adapters/sqlserver_adapter.rb) |
|---|
| 21 |
|
|---|
| 22 |
s.author = 'Tom Ward' |
|---|
| 23 |
s.email = 'tom@popdog.net' |
|---|
| 24 |
s.homepage = 'http://wiki.rubyonrails.org/rails/pages/SQL+Server' |
|---|
| 25 |
s.rubyforge_project = 'activerecord' |
|---|
| 26 |
end |
|---|
| 27 |
|
|---|
| 28 |
Rake::GemPackageTask.new(spec) do |p| |
|---|
| 29 |
p.gem_spec = spec |
|---|
| 30 |
p.need_tar = true |
|---|
| 31 |
p.need_zip = true |
|---|
| 32 |
end |
|---|
| 33 |
|
|---|
| 34 |
desc "Publish the beta gem" |
|---|
| 35 |
task :pgem => :package do |
|---|
| 36 |
Rake::SshFilePublisher.new("davidhh@wrath.rubyonrails.org", "public_html/gems/gems", "pkg", "#{PKG_NAME}-#{PKG_VERSION}.gem").upload |
|---|
| 37 |
`ssh davidhh@wrath.rubyonrails.org './gemupdate.sh'` |
|---|
| 38 |
end |
|---|
| 39 |
|
|---|
| 40 |
desc "Publish the release files to RubyForge." |
|---|
| 41 |
task :release => :package do |
|---|
| 42 |
require 'rubyforge' |
|---|
| 43 |
|
|---|
| 44 |
packages = %w(gem tgz zip).collect{ |ext| "pkg/#{PKG_NAME}-#{PKG_VERSION}.#{ext}" } |
|---|
| 45 |
|
|---|
| 46 |
rubyforge = RubyForge.new |
|---|
| 47 |
rubyforge.login |
|---|
| 48 |
rubyforge.add_release(PKG_NAME, PKG_NAME, "REL #{PKG_VERSION}", *packages) |
|---|
| 49 |
end |
|---|
| 50 |
|
|---|
| 51 |
|
|---|
| 52 |
SCHEMA_PATH = File.join(File.dirname(__FILE__), *%w(test fixtures db_definitions)) |
|---|
| 53 |
|
|---|
| 54 |
desc 'Create the SQL Server test databases' |
|---|
| 55 |
task :create_databases do |
|---|
| 56 |
# Define a user named 'rails' in SQL Server with all privileges granted |
|---|
| 57 |
# Use an empty password for user 'rails', or alternatively use the OSQLPASSWORD environment variable |
|---|
| 58 |
# which allows you to set a default password for the current session. |
|---|
| 59 |
%x( osql -S localhost -U rails -Q "create database activerecord_unittest" -P ) |
|---|
| 60 |
%x( osql -S localhost -U rails -Q "create database activerecord_unittest2" -P ) |
|---|
| 61 |
%x( osql -S localhost -U rails -d activerecord_unittest -Q "exec sp_grantdbaccess 'rails'" -P ) |
|---|
| 62 |
%x( osql -S localhost -U rails -d activerecord_unittest2 -Q "exec sp_grantdbaccess 'rails'" -P ) |
|---|
| 63 |
%x( osql -S localhost -U rails -d activerecord_unittest -Q "grant BACKUP DATABASE, BACKUP LOG, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, CREATE VIEW to 'rails';" -P ) |
|---|
| 64 |
%x( osql -S localhost -U rails -d activerecord_unittest2 -Q "grant BACKUP DATABASE, BACKUP LOG, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, CREATE VIEW to 'rails';" -P ) |
|---|
| 65 |
end |
|---|
| 66 |
|
|---|
| 67 |
desc 'Drop the SQL Server test databases' |
|---|
| 68 |
task :drop_databases do |
|---|
| 69 |
%x( osql -S localhost -U rails -Q "drop database activerecord_unittest" -P ) |
|---|
| 70 |
%x( osql -S localhost -U rails -Q "drop database activerecord_unittest2" -P ) |
|---|
| 71 |
end |
|---|
| 72 |
|
|---|
| 73 |
desc 'Recreate the SQL Server test databases' |
|---|
| 74 |
task :recreate_databases => [:drop_databases, :create_databases] |
|---|
| 75 |
|
|---|
| 76 |
|
|---|
| 77 |
for adapter in %w( sqlserver sqlserver_odbc ) |
|---|
| 78 |
Rake::TestTask.new("test_#{adapter}") { |t| |
|---|
| 79 |
t.libs << "test" |
|---|
| 80 |
t.libs << "test/connections/native_#{adapter}" |
|---|
| 81 |
t.libs << "../../../rails/activerecord/test/" |
|---|
| 82 |
t.pattern = ["test/**/*_test_sqlserver.rb", "../../../rails/activerecord/test/**/*_test.rb"] |
|---|
| 83 |
t.verbose = true |
|---|
| 84 |
} |
|---|
| 85 |
|
|---|
| 86 |
namespace adapter do |
|---|
| 87 |
task :test => "test_#{adapter}" |
|---|
| 88 |
end |
|---|
| 89 |
end |
|---|