ydbi 0.5.7 → 0.5.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
-