ydbi 0.5.7 → 0.5.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +3 -0
  3. data/lib/dbi/version.rb +1 -1
  4. metadata +9 -128
  5. data/.github/workflows/ruby.yml +0 -35
  6. data/.gitignore +0 -8
  7. data/.travis.yml +0 -15
  8. data/Gemfile +0 -5
  9. data/Rakefile +0 -10
  10. data/TODO +0 -44
  11. data/bench/bench.rb +0 -79
  12. data/build/rake_task_lib.rb +0 -186
  13. data/doc/DBD_SPEC.rdoc +0 -88
  14. data/doc/DBI_SPEC.rdoc +0 -157
  15. data/doc/homepage/contact.html +0 -62
  16. data/doc/homepage/development.html +0 -124
  17. data/doc/homepage/index.html +0 -83
  18. data/doc/homepage/ruby-dbi.css +0 -91
  19. data/lib/dbd/Mysql.rb +0 -137
  20. data/lib/dbd/ODBC.rb +0 -89
  21. data/lib/dbd/Pg.rb +0 -188
  22. data/lib/dbd/SQLite.rb +0 -97
  23. data/lib/dbd/SQLite3.rb +0 -124
  24. data/lib/dbd/mysql/database.rb +0 -405
  25. data/lib/dbd/mysql/driver.rb +0 -125
  26. data/lib/dbd/mysql/statement.rb +0 -188
  27. data/lib/dbd/odbc/database.rb +0 -128
  28. data/lib/dbd/odbc/driver.rb +0 -38
  29. data/lib/dbd/odbc/statement.rb +0 -137
  30. data/lib/dbd/pg/database.rb +0 -504
  31. data/lib/dbd/pg/exec.rb +0 -47
  32. data/lib/dbd/pg/statement.rb +0 -160
  33. data/lib/dbd/pg/tuples.rb +0 -121
  34. data/lib/dbd/pg/type.rb +0 -209
  35. data/lib/dbd/sqlite/database.rb +0 -151
  36. data/lib/dbd/sqlite/statement.rb +0 -125
  37. data/lib/dbd/sqlite3/database.rb +0 -201
  38. data/lib/dbd/sqlite3/statement.rb +0 -78
  39. data/prototypes/types2.rb +0 -237
  40. data/setup.rb +0 -1585
  41. data/test/DBD_TESTS +0 -50
  42. data/test/TESTING +0 -16
  43. data/test/dbd/general/test_database.rb +0 -206
  44. data/test/dbd/general/test_statement.rb +0 -326
  45. data/test/dbd/general/test_types.rb +0 -296
  46. data/test/dbd/mysql/base.rb +0 -26
  47. data/test/dbd/mysql/down.sql +0 -19
  48. data/test/dbd/mysql/test_blob.rb +0 -18
  49. data/test/dbd/mysql/test_new_methods.rb +0 -7
  50. data/test/dbd/mysql/test_patches.rb +0 -111
  51. data/test/dbd/mysql/up.sql +0 -28
  52. data/test/dbd/odbc/base.rb +0 -30
  53. data/test/dbd/odbc/down.sql +0 -19
  54. data/test/dbd/odbc/test_new_methods.rb +0 -12
  55. data/test/dbd/odbc/test_ping.rb +0 -10
  56. data/test/dbd/odbc/test_statement.rb +0 -44
  57. data/test/dbd/odbc/test_transactions.rb +0 -58
  58. data/test/dbd/odbc/up.sql +0 -33
  59. data/test/dbd/postgresql/base.rb +0 -31
  60. data/test/dbd/postgresql/down.sql +0 -31
  61. data/test/dbd/postgresql/test_arrays.rb +0 -179
  62. data/test/dbd/postgresql/test_async.rb +0 -121
  63. data/test/dbd/postgresql/test_blob.rb +0 -36
  64. data/test/dbd/postgresql/test_bytea.rb +0 -87
  65. data/test/dbd/postgresql/test_ping.rb +0 -10
  66. data/test/dbd/postgresql/test_timestamp.rb +0 -77
  67. data/test/dbd/postgresql/test_transactions.rb +0 -58
  68. data/test/dbd/postgresql/testdbipg.rb +0 -307
  69. data/test/dbd/postgresql/up.sql +0 -60
  70. data/test/dbd/sqlite/base.rb +0 -32
  71. data/test/dbd/sqlite/test_database.rb +0 -30
  72. data/test/dbd/sqlite/test_driver.rb +0 -68
  73. data/test/dbd/sqlite/test_statement.rb +0 -112
  74. data/test/dbd/sqlite/up.sql +0 -25
  75. data/test/dbd/sqlite3/base.rb +0 -32
  76. data/test/dbd/sqlite3/test_database.rb +0 -77
  77. data/test/dbd/sqlite3/test_driver.rb +0 -67
  78. data/test/dbd/sqlite3/test_statement.rb +0 -88
  79. data/test/dbd/sqlite3/up.sql +0 -33
  80. data/test/ts_dbd.rb +0 -131
  81. data/ydbi.gemspec +0 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 612fa12313d234ccc40bc70ea6d1d45932de35567308cd3067fe12081574fa6e
4
- data.tar.gz: a86c14a91e9c6effc591e5e1cbfab53b206a3c8b76bf0fcaaea6df74f8f18c1a
3
+ metadata.gz: eafafd7da9dd1ea4e5ac36826c833b489f242a82c8717005e1fbe54f85ebab4e
4
+ data.tar.gz: 3c49d2a9f43a91069da5a6c6d47a270cce6a0eefd82bcbe843fe10b16afbbe9c
5
5
  SHA512:
6
- metadata.gz: 98384cb09b842819df7c29bc0798538e4971d9c96250332aac735899e0f3dbb18abc696a63b4d99394cf541edc2f4e2b4ceba93db01281acb54c01b4fa27519a
7
- data.tar.gz: 0a4194f180d61a9fd3f1611602da728e9e38aa976170fa4190d6027ad857c627c9a989396c40fd965aac782fdd8b477d6d898edaed79fd44cbe947a1775616f0
6
+ metadata.gz: 8cc10904dd30231128a1c636527b308541b75ed00b75c2bb9786717590edcfed4fdeef80e1946d4c5891688eba743b39031cd3f6ed0647a8f413590f110c9427
7
+ data.tar.gz: 87aa0ecae9141de587216de101c35ca53a74e2a128308d1502be0f6d64476cd74c298c0f3ca022e98419587b4419ee4f799e1a72f0ed864ab0db457e8624c6ea
data/ChangeLog CHANGED
@@ -1,3 +1,6 @@
1
+ ## 0.5.9 - 15/12/2022
2
+ * fix issue with tty, see https://github.com/zdavatz/oddb.org/issues/183
3
+
1
4
  ## 0.5.7 - 18/01/2021
2
5
 
3
6
  * Fixed and cleaned Unit Tests
data/lib/dbi/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module DBI
2
- VERSION = "0.5.7"
2
+ VERSION = "0.5.9"
3
3
  end
metadata CHANGED
@@ -1,60 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ydbi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.7
4
+ version: 0.5.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Hollensbe
8
8
  - Christopher Maujean
9
- - Niklaus Giger
10
- - Zeno Davatz
11
9
  autorequire:
12
10
  bindir: bin
13
11
  cert_chain: []
14
- date: 2021-01-20 00:00:00.000000000 Z
12
+ date: 2022-12-15 00:00:00.000000000 Z
15
13
  dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: pg
18
- requirement: !ruby/object:Gem::Requirement
19
- requirements:
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 1.0.0
23
- type: :runtime
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- version: 1.0.0
30
- - !ruby/object:Gem::Dependency
31
- name: rake
32
- requirement: !ruby/object:Gem::Requirement
33
- requirements:
34
- - - ">="
35
- - !ruby/object:Gem::Version
36
- version: '0'
37
- type: :development
38
- prerelease: false
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: '0'
44
- - !ruby/object:Gem::Dependency
45
- name: test-unit
46
- requirement: !ruby/object:Gem::Requirement
47
- requirements:
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: '0'
51
- type: :development
52
- prerelease: false
53
- version_requirements: !ruby/object:Gem::Requirement
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- version: '0'
58
14
  - !ruby/object:Gem::Dependency
59
15
  name: deprecated
60
16
  requirement: !ruby/object:Gem::Requirement
@@ -75,50 +31,19 @@ executables:
75
31
  - dbi
76
32
  - test_broken_dbi
77
33
  extensions: []
78
- extra_rdoc_files: []
34
+ extra_rdoc_files:
35
+ - readme.md
36
+ - LICENSE
37
+ - ChangeLog
79
38
  files:
80
- - ".github/workflows/ruby.yml"
81
- - ".gitignore"
82
- - ".travis.yml"
83
39
  - ChangeLog
84
- - Gemfile
85
40
  - LICENSE
86
- - Rakefile
87
- - TODO
88
- - bench/bench.rb
89
41
  - bin/dbi
90
42
  - bin/test_broken_dbi
91
43
  - build/Rakefile.dbi.rb
92
- - build/rake_task_lib.rb
93
- - doc/DBD_SPEC.rdoc
94
- - doc/DBI_SPEC.rdoc
95
- - doc/homepage/contact.html
96
- - doc/homepage/development.html
97
- - doc/homepage/index.html
98
- - doc/homepage/ruby-dbi.css
99
44
  - examples/test1.pl
100
45
  - examples/test1.rb
101
46
  - examples/xmltest.rb
102
- - lib/dbd/Mysql.rb
103
- - lib/dbd/ODBC.rb
104
- - lib/dbd/Pg.rb
105
- - lib/dbd/SQLite.rb
106
- - lib/dbd/SQLite3.rb
107
- - lib/dbd/mysql/database.rb
108
- - lib/dbd/mysql/driver.rb
109
- - lib/dbd/mysql/statement.rb
110
- - lib/dbd/odbc/database.rb
111
- - lib/dbd/odbc/driver.rb
112
- - lib/dbd/odbc/statement.rb
113
- - lib/dbd/pg/database.rb
114
- - lib/dbd/pg/exec.rb
115
- - lib/dbd/pg/statement.rb
116
- - lib/dbd/pg/tuples.rb
117
- - lib/dbd/pg/type.rb
118
- - lib/dbd/sqlite/database.rb
119
- - lib/dbd/sqlite/statement.rb
120
- - lib/dbd/sqlite3/database.rb
121
- - lib/dbd/sqlite3/statement.rb
122
47
  - lib/dbi.rb
123
48
  - lib/dbi/base_classes.rb
124
49
  - lib/dbi/base_classes/database.rb
@@ -145,48 +70,7 @@ files:
145
70
  - lib/dbi/utils/timestamp.rb
146
71
  - lib/dbi/utils/xmlformatter.rb
147
72
  - lib/dbi/version.rb
148
- - prototypes/types2.rb
149
73
  - readme.md
150
- - setup.rb
151
- - test/DBD_TESTS
152
- - test/TESTING
153
- - test/dbd/general/test_database.rb
154
- - test/dbd/general/test_statement.rb
155
- - test/dbd/general/test_types.rb
156
- - test/dbd/mysql/base.rb
157
- - test/dbd/mysql/down.sql
158
- - test/dbd/mysql/test_blob.rb
159
- - test/dbd/mysql/test_new_methods.rb
160
- - test/dbd/mysql/test_patches.rb
161
- - test/dbd/mysql/up.sql
162
- - test/dbd/odbc/base.rb
163
- - test/dbd/odbc/down.sql
164
- - test/dbd/odbc/test_new_methods.rb
165
- - test/dbd/odbc/test_ping.rb
166
- - test/dbd/odbc/test_statement.rb
167
- - test/dbd/odbc/test_transactions.rb
168
- - test/dbd/odbc/up.sql
169
- - test/dbd/postgresql/base.rb
170
- - test/dbd/postgresql/down.sql
171
- - test/dbd/postgresql/test_arrays.rb
172
- - test/dbd/postgresql/test_async.rb
173
- - test/dbd/postgresql/test_blob.rb
174
- - test/dbd/postgresql/test_bytea.rb
175
- - test/dbd/postgresql/test_ping.rb
176
- - test/dbd/postgresql/test_timestamp.rb
177
- - test/dbd/postgresql/test_transactions.rb
178
- - test/dbd/postgresql/testdbipg.rb
179
- - test/dbd/postgresql/up.sql
180
- - test/dbd/sqlite/base.rb
181
- - test/dbd/sqlite/test_database.rb
182
- - test/dbd/sqlite/test_driver.rb
183
- - test/dbd/sqlite/test_statement.rb
184
- - test/dbd/sqlite/up.sql
185
- - test/dbd/sqlite3/base.rb
186
- - test/dbd/sqlite3/test_database.rb
187
- - test/dbd/sqlite3/test_driver.rb
188
- - test/dbd/sqlite3/test_statement.rb
189
- - test/dbd/sqlite3/up.sql
190
74
  - test/dbi/tc_columninfo.rb
191
75
  - test/dbi/tc_date.rb
192
76
  - test/dbi/tc_dbi.rb
@@ -196,12 +80,9 @@ files:
196
80
  - test/dbi/tc_time.rb
197
81
  - test/dbi/tc_timestamp.rb
198
82
  - test/dbi/tc_types.rb
199
- - test/ts_dbd.rb
200
83
  - test/ts_dbi.rb
201
- - ydbi.gemspec
202
84
  homepage: https://github.com/zdavatz/ydbi
203
- licenses:
204
- - MIT
85
+ licenses: []
205
86
  metadata: {}
206
87
  post_install_message:
207
88
  rdoc_options: []
@@ -211,14 +92,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
211
92
  requirements:
212
93
  - - ">="
213
94
  - !ruby/object:Gem::Version
214
- version: '0'
95
+ version: 1.8.0
215
96
  required_rubygems_version: !ruby/object:Gem::Requirement
216
97
  requirements:
217
98
  - - ">="
218
99
  - !ruby/object:Gem::Version
219
100
  version: '0'
220
101
  requirements: []
221
- rubygems_version: 3.2.4
102
+ rubygems_version: 3.2.3
222
103
  signing_key:
223
104
  specification_version: 4
224
105
  summary: A vendor independent interface for accessing databases, similar to Perl's
@@ -1,35 +0,0 @@
1
- # This workflow uses actions that are not certified by GitHub.
2
- # They are provided by a third-party and are governed by
3
- # separate terms of service, privacy policy, and support
4
- # documentation.
5
- # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
- # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
-
8
- name: Ruby
9
-
10
- on:
11
- push:
12
- branches: [ master ]
13
- pull_request:
14
- branches: [ master ]
15
-
16
- jobs:
17
- test:
18
-
19
- runs-on: ubuntu-latest
20
- strategy:
21
- matrix:
22
- ruby-version: ['2.6', '2.7', '3.0']
23
-
24
- steps:
25
- - uses: actions/checkout@v2
26
- - name: Set up Ruby
27
- # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
28
- # change this to (see https://github.com/ruby/setup-ruby#versioning):
29
- # uses: ruby/setup-ruby@v1
30
- uses: ruby/setup-ruby@473e4d8fe5dd94ee328fdfca9f8c9c7afc9dae5e
31
- with:
32
- ruby-version: ${{ matrix.ruby-version }}
33
- bundler-cache: true # runs 'bundle install' and caches installed gems automatically
34
- - name: Run tests
35
- run: bundle exec rake test
data/.gitignore DELETED
@@ -1,8 +0,0 @@
1
- vendor/
2
- coverage/
3
- pkg/
4
- .bundle
5
- .ruby-version
6
- Gemfile.lock
7
- rdoc/
8
- *.patch
data/.travis.yml DELETED
@@ -1,15 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
- sudo: false
4
- bundler_args: --without debugger
5
- rvm:
6
- - 2.4.1
7
- - 2.5.0
8
- - 3.0.0
9
- script:
10
- - bundle exec rake test
11
-
12
- notifications:
13
- email:
14
- recipients:
15
- - ngiger@ywesee.com
data/Gemfile DELETED
@@ -1,5 +0,0 @@
1
- # A sample Gemfile
2
- source "https://rubygems.org"
3
-
4
- gemspec
5
- gem 'pg'
data/Rakefile DELETED
@@ -1,10 +0,0 @@
1
- $:.unshift 'build'
2
- if File.exists? 'lib/dbi'
3
- require 'Rakefile.dbi'
4
- elsif File.exists? 'lib/dbd'
5
- require 'rake_task_lib'
6
- build_dbd_tasks(File.basename(Dir['lib/dbd/*.rb'][0], '.rb').downcase)
7
- else
8
- abort "Well, this is odd; No DBI or DBD found."
9
- end
10
- require 'bundler/gem_tasks'
data/TODO DELETED
@@ -1,44 +0,0 @@
1
- 0.4.0:
2
- x Work
3
- x Postgres quoting toggles
4
- x Postgres binding toggles
5
- x Test for #20489
6
- * Release checklist:
7
- x Update ChangeLog
8
- x rake
9
- x remove all related gems, install all DBI/DBD gems (check prereqs)
10
- x write a few test scripts to make sure drivers are loading
11
- x Update homepage (irc channel, git, other changes)
12
- * tag as 0.4.0
13
- * upload rdoc
14
- * upload packages
15
- * release announcement (rf, ruby-talk, dbi lists, other places?)
16
- * rebase master from development
17
- * BEER
18
- 0.6.0:
19
- * Cleanup:
20
- * Arrays:
21
- * Find some way to get the extents of an array type
22
- * checked pg_type, pg_attribute and pg_class, can't find anything.
23
- * I don't think this is possible, but let's slate it for 0.6.0 anyways.
24
- * Tracing
25
- * WTH do we want to do with this
26
- * Wow, this module has *serious issues*. Crashes DBI without warning. Redo this completely.
27
- * 0.6.0
28
- * Re-institute drivers
29
- * Proxy
30
- * Slated for 0.6.0
31
- * Finish type management system
32
- * Unify ColumnInfo
33
- * Should we enforce ColumnInfo requirements at the DBI level?
34
- * At least test the result of statement colinfo uniformly
35
- * 0.6.0
36
- * Cleanup core
37
- * Require code is a mess
38
- * Just remove the case-sensitivity from the DBDs in general
39
- * 0.6.0
40
- * Find a good clean way to enumerate drivers in separate gems
41
- * Some registration-on-require would be cleaner and safer
42
- * 0.6.0
43
- * Scripts
44
- * bin/dbd_proxy seems to have never worked; slate it for 0.6.0
data/bench/bench.rb DELETED
@@ -1,79 +0,0 @@
1
- require 'rubygems'
2
- $:.unshift File.dirname(__FILE__) + '/../lib'
3
- require 'dbi'
4
-
5
- class DbiBenchmark
6
- attr_reader :db
7
-
8
- def initialize db, quiet=false
9
- @db = db
10
- @quiet = quiet
11
- end
12
-
13
- def puts(*args)
14
- super unless @quiet
15
- end
16
-
17
- def run
18
- times = {}
19
- %w[create_test_table selecting_floats selecting_datetimes].each do |name|
20
- t = Time.now
21
- puts "* #{name.tr('_', ' ').capitalize}"
22
- send name
23
- took = Time.now - t
24
- puts " (took #{took} seconds)"
25
- puts
26
- times[name] = took
27
- end
28
- times
29
- ensure
30
- db.do 'drop table data'
31
- end
32
-
33
- def create_test_table
34
- db.do <<-end
35
- create table data (
36
- date timestamp,
37
- value float
38
- )
39
- end
40
- db.do 'begin'
41
- today = Date.today
42
- 5_000.times do
43
- db.do "insert into data values ('#{today + rand(100) - 50}', #{10 + rand * 30})"
44
- end
45
- db.do 'commit'
46
- end
47
-
48
- def selecting_floats
49
- strs = db.select_all('select value from data').map { |v| v.to_s }
50
- puts *strs[0, 5]
51
- puts '...'
52
- end
53
-
54
- def selecting_datetimes
55
- strs = db.select_all('select date from data').map { |v| v.to_s }
56
- puts *strs[0, 5]
57
- puts '...'
58
- end
59
- end
60
-
61
- def bench
62
- dbiurls = [
63
- 'DBI:Mysql:dbitest:localhost',
64
- 'DBI:ODBC:MYDBITEST',
65
- 'DBI:Pg:dbitest:localhost',
66
- 'DBI:ODBC:PGDBITEST',
67
- ]
68
- order = %w[create_test_table selecting_floats selecting_datetimes]
69
- dbiurls.map do |url|
70
- # assume all dbs have the same credentials
71
- DBI.connect(url, *ARGV) do |db|
72
- [url.first.sub('DBI:', ''), *DbiBenchmark.new(db, true).run.values_at(*order)]
73
- end
74
- end
75
- end
76
-
77
- puts 'Running benchmark:'
78
- DBI::Utils::TableFormatter.ascii(%w[db insert float datetime], bench, nil, nil, nil, nil, 30)
79
-
@@ -1,186 +0,0 @@
1
- $:.unshift 'lib'
2
- require 'rake'
3
- require 'rubygems'
4
- require 'rubygems/package_task'
5
- require 'rake/packagetask'
6
- require 'rdoc/task'
7
-
8
-
9
- DEFAULT_TASKS = [:clobber_package, :package, :gem]
10
-
11
- DBD_GEM_DEP_MAP = {
12
- 'pg' => 'pg',
13
- 'mysql' => 'mysql',
14
- 'sqlite' => 'sqlite-ruby',
15
- 'sqlite3' => 'sqlite3-ruby'
16
- }
17
-
18
- #
19
- # Packaging
20
- #
21
-
22
- PACKAGE_FILES = %w(Rakefile build/rake_task_lib.rb setup.rb)
23
- DOC_FILES = %w(readme.md LICENSE ChangeLog)
24
- EXCLUSIONS = %w(test/sql.log)
25
- DBD_FILES = %w(test/DBD_TESTS)
26
-
27
- #
28
- # some inlines
29
- #
30
-
31
- def gem_files(code_files)
32
- (code_files + DOC_FILES).collect { |x| Dir[x] }.reject { |x| EXCLUSIONS.include? x }.flatten
33
- end
34
-
35
- def package_files(code_files)
36
- code_files + DOC_FILES + PACKAGE_FILES
37
- end
38
-
39
- def build_package_tasks(spec, code_files)
40
- Gem::PackageTask.new(spec) do |s|
41
- end
42
-
43
- Rake::PackageTask.new('y'+spec.name, spec.version) do |p|
44
- p.need_tar_gz = true
45
- p.need_zip = true
46
-
47
- package_files(code_files).each do |x|
48
- p.package_files.include(x)
49
- end
50
-
51
- EXCLUSIONS.each do |x|
52
- p.package_files.exclude(x)
53
- end
54
- end
55
- end
56
-
57
- def boilerplate_spec
58
- gem = Gem::Specification.new
59
- gem.authors = ['Erik Hollensbe', 'Christopher Maujean']
60
- gem.email = 'zdavatz@ywesee.com'
61
- gem.homepage = 'https://github.com/zdavatz/ydbi'
62
- gem.platform = Gem::Platform::RUBY
63
- gem.extra_rdoc_files = DOC_FILES
64
- gem.required_ruby_version = '>= 1.8.0'
65
- gem.rubyforge_project = 'ydbi'
66
- return gem
67
- end
68
-
69
- # builds a dbd namespace from the DBD_PACKAGES hash
70
- def dbd_namespace(dbd)
71
- "ydbd-" + dbd.to_s.downcase
72
- end
73
-
74
- def dbd_code_files(dbd)
75
- code_files = [
76
- "test/dbd/general/**",
77
- File.join("test", "dbd", dbd.downcase == "pg" ? "postgresql" : dbd.downcase, "*"),
78
- File.join("lib", "dbd", dbd + ".rb"),
79
- "lib/dbd/#{dbd.downcase}/*.rb",
80
- ] + DBD_FILES
81
- end
82
-
83
- def dbd_gem_files(code_files)
84
- DBD_FILES + gem_files(code_files)
85
- end
86
-
87
- def dbd_package_files(code_files)
88
- DBD_FILES + package_files(code_files)
89
- end
90
-
91
- def dbd_gem_spec(dbd, dbd_const, code_files)
92
- spec = boilerplate_spec
93
- spec.name = dbd_namespace(dbd)
94
- spec.version = dbd_version(dbd_const)
95
- spec.test_file = 'test/ts_dbd.rb'
96
- spec.files = gem_files(code_files)
97
- spec.summary = dbd_description(dbd_const)
98
- spec.description = dbd_description(dbd_const)
99
- spec.add_dependency 'ydbi', DBI::VERSION
100
-
101
- dcdbd = dbd.downcase
102
-
103
- if DBD_GEM_DEP_MAP[dcdbd]
104
- spec.add_dependency DBD_GEM_DEP_MAP[dcdbd]
105
- end
106
-
107
- return spec
108
- end
109
-
110
- def dbd_version(const)
111
- DBI::DBD.const_get(const).const_get("VERSION")
112
- end
113
-
114
- def dbd_description(const)
115
- DBI::DBD.const_get(const).const_get("DESCRIPTION")
116
- end
117
-
118
-
119
- def build_dbd_tasks(dbd)
120
- task :default => DEFAULT_TASKS
121
-
122
- begin
123
- done = false
124
- dbd_const = nil
125
- Dir["lib/dbd/*.rb"].each do |dbd_file|
126
- if File.basename(dbd_file.downcase, '.rb') == dbd.to_s.downcase
127
- dbd_const = File.basename(dbd_file, '.rb')
128
- require "dbd/#{dbd_const}"
129
- done = true
130
- end
131
- end
132
-
133
- abort "No DBD found even though we asked to make tasks for it" unless done
134
-
135
- code_files = dbd_code_files(dbd_const)
136
-
137
- spec = dbd_gem_spec(dbd, dbd_const, code_files)
138
-
139
- build_package_tasks(spec, code_files)
140
-
141
- # FIXME: convert to a rake_test_loader sooner or later
142
- task :test do
143
- ENV["DBTYPES"] = dbd
144
- ruby "test/ts_dbd.rb"
145
- end
146
- rescue LoadError => e
147
- DEFAULT_TASKS.each do |x|
148
- task x do
149
- end
150
- end
151
- warn "Skipping #{dbd_namespace(dbd)} because we can't require DBD"
152
- end
153
- end
154
-
155
- def build_dbi_tasks
156
- end
157
-
158
- #
159
- # basic tasks
160
- #
161
-
162
- task :dist => [:distclean, :package, :rdoc]
163
- task :distclean => [:clobber_package, :clobber_rdoc]
164
- task :clean => [:distclean]
165
- task :default => [:test, :dist]
166
-
167
- task :to_blog => [:clobber_rdoc, :rdoc] do
168
- sh "rm -r $git/blog/content/docs/ruby-dbi && mv rdoc $git/blog/content/docs/ruby-dbi"
169
- end
170
-
171
- #
172
- # Documentation
173
- #
174
-
175
- RDoc::Task.new do |rd|
176
- rd.rdoc_dir = "rdoc"
177
- rd.main = "readme.md"
178
- rd.rdoc_files.include("./readme.md")
179
- rd.rdoc_files.include("./ChangeLog")
180
- rd.rdoc_files.include("./LICENSE")
181
- rd.rdoc_files.include("./doc/**/*.rdoc")
182
- rd.rdoc_files.include("./lib/**/*.rb")
183
- rd.rdoc_files.include("./ext/**/*.c")
184
- rd.options = %w(-a)
185
- end
186
-