File: Rakefile.dbi.rb

package info (click to toggle)
libdbi-ruby 0.4.3-2
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 472 kB
  • ctags: 619
  • sloc: ruby: 4,583; makefile: 62; perl: 12
file content (60 lines) | stat: -rw-r--r-- 1,890 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
require 'rake_task_lib'
require 'dbi'

DBD_PACKAGES = Dir['lib/dbd/*.rb'].collect { |x| File.basename(x, '.rb') }

# creates a number of tasks like dbi:task_name, dbd_mysql:task_name, so on.
# Builds these out into an array that can be used as a prereq for other tasks.
def map_task(task_name)
    namespaces = (['dbi'] + DBD_PACKAGES.collect { |x| dbd_namespace(x) }).flatten
    namespaces.collect { |x| [x, task_name].join(":") }
end

task :package         => (map_task("package") + map_task("gem"))
task :clobber_package => map_task("clobber_package")

desc 'Run interface tests (no database connectivity required)'
task :test_dbi do
    ruby("test/ts_dbi.rb")
end

desc 'Run database-specific tests'
task :test_dbd do
    ruby("test/ts_dbd.rb")
end

desc 'Run full test suite'
task :test => [:test_dbi, :test_dbd]

build_dbi_tasks

#
# There's probably a better way to do this, but here's a boilerplate spec that we dup and modify.
#

task :dbi => DEFAULT_TASKS.collect { |x| "dbi:#{x.to_s}" }

namespace :dbi do
    code_files = %w(examples/**/* bin/dbi build/Rakefile.dbi.rb lib/dbi.rb lib/dbi/**/*.rb test/ts_dbi.rb test/dbi/*)

    spec = boilerplate_spec
    spec.name        = 'dbi'
    spec.version     = DBI::VERSION
    spec.test_file   = 'test/ts_dbi.rb'
    spec.executables = ['dbi', 'test_broken_dbi']
    spec.files       = gem_files(code_files)
    spec.summary     = 'A vendor independent interface for accessing databases, similar to Perl\'s DBI'
    spec.description = 'A vendor independent interface for accessing databases, similar to Perl\'s DBI'
    spec.add_dependency 'deprecated', '>= 2.0.0'

    build_package_tasks(spec, code_files)
end

DBD_PACKAGES.each do |dbd|
    my_namespace = dbd_namespace(dbd)

    task my_namespace => DEFAULT_TASKS.collect { |x| "#{my_namespace}:#{x.to_s}" }
    namespace my_namespace do
        build_dbd_tasks(dbd)
    end
end