ydbi 0.5.7 → 0.5.8

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 (83) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +4 -0
  3. data/lib/dbi/version.rb +1 -1
  4. data/readme.md +4 -3
  5. data/test/dbi/tc_dbi.rb +1 -1
  6. metadata +7 -125
  7. data/.github/workflows/ruby.yml +0 -35
  8. data/.gitignore +0 -8
  9. data/.travis.yml +0 -15
  10. data/Gemfile +0 -5
  11. data/Rakefile +0 -10
  12. data/TODO +0 -44
  13. data/bench/bench.rb +0 -79
  14. data/build/rake_task_lib.rb +0 -186
  15. data/doc/DBD_SPEC.rdoc +0 -88
  16. data/doc/DBI_SPEC.rdoc +0 -157
  17. data/doc/homepage/contact.html +0 -62
  18. data/doc/homepage/development.html +0 -124
  19. data/doc/homepage/index.html +0 -83
  20. data/doc/homepage/ruby-dbi.css +0 -91
  21. data/lib/dbd/Mysql.rb +0 -137
  22. data/lib/dbd/ODBC.rb +0 -89
  23. data/lib/dbd/Pg.rb +0 -188
  24. data/lib/dbd/SQLite.rb +0 -97
  25. data/lib/dbd/SQLite3.rb +0 -124
  26. data/lib/dbd/mysql/database.rb +0 -405
  27. data/lib/dbd/mysql/driver.rb +0 -125
  28. data/lib/dbd/mysql/statement.rb +0 -188
  29. data/lib/dbd/odbc/database.rb +0 -128
  30. data/lib/dbd/odbc/driver.rb +0 -38
  31. data/lib/dbd/odbc/statement.rb +0 -137
  32. data/lib/dbd/pg/database.rb +0 -504
  33. data/lib/dbd/pg/exec.rb +0 -47
  34. data/lib/dbd/pg/statement.rb +0 -160
  35. data/lib/dbd/pg/tuples.rb +0 -121
  36. data/lib/dbd/pg/type.rb +0 -209
  37. data/lib/dbd/sqlite/database.rb +0 -151
  38. data/lib/dbd/sqlite/statement.rb +0 -125
  39. data/lib/dbd/sqlite3/database.rb +0 -201
  40. data/lib/dbd/sqlite3/statement.rb +0 -78
  41. data/prototypes/types2.rb +0 -237
  42. data/setup.rb +0 -1585
  43. data/test/DBD_TESTS +0 -50
  44. data/test/TESTING +0 -16
  45. data/test/dbd/general/test_database.rb +0 -206
  46. data/test/dbd/general/test_statement.rb +0 -326
  47. data/test/dbd/general/test_types.rb +0 -296
  48. data/test/dbd/mysql/base.rb +0 -26
  49. data/test/dbd/mysql/down.sql +0 -19
  50. data/test/dbd/mysql/test_blob.rb +0 -18
  51. data/test/dbd/mysql/test_new_methods.rb +0 -7
  52. data/test/dbd/mysql/test_patches.rb +0 -111
  53. data/test/dbd/mysql/up.sql +0 -28
  54. data/test/dbd/odbc/base.rb +0 -30
  55. data/test/dbd/odbc/down.sql +0 -19
  56. data/test/dbd/odbc/test_new_methods.rb +0 -12
  57. data/test/dbd/odbc/test_ping.rb +0 -10
  58. data/test/dbd/odbc/test_statement.rb +0 -44
  59. data/test/dbd/odbc/test_transactions.rb +0 -58
  60. data/test/dbd/odbc/up.sql +0 -33
  61. data/test/dbd/postgresql/base.rb +0 -31
  62. data/test/dbd/postgresql/down.sql +0 -31
  63. data/test/dbd/postgresql/test_arrays.rb +0 -179
  64. data/test/dbd/postgresql/test_async.rb +0 -121
  65. data/test/dbd/postgresql/test_blob.rb +0 -36
  66. data/test/dbd/postgresql/test_bytea.rb +0 -87
  67. data/test/dbd/postgresql/test_ping.rb +0 -10
  68. data/test/dbd/postgresql/test_timestamp.rb +0 -77
  69. data/test/dbd/postgresql/test_transactions.rb +0 -58
  70. data/test/dbd/postgresql/testdbipg.rb +0 -307
  71. data/test/dbd/postgresql/up.sql +0 -60
  72. data/test/dbd/sqlite/base.rb +0 -32
  73. data/test/dbd/sqlite/test_database.rb +0 -30
  74. data/test/dbd/sqlite/test_driver.rb +0 -68
  75. data/test/dbd/sqlite/test_statement.rb +0 -112
  76. data/test/dbd/sqlite/up.sql +0 -25
  77. data/test/dbd/sqlite3/base.rb +0 -32
  78. data/test/dbd/sqlite3/test_database.rb +0 -77
  79. data/test/dbd/sqlite3/test_driver.rb +0 -67
  80. data/test/dbd/sqlite3/test_statement.rb +0 -88
  81. data/test/dbd/sqlite3/up.sql +0 -33
  82. data/test/ts_dbd.rb +0 -131
  83. 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: 62f01549856766688a97c7b0978a288de3036664ada7ada30004210f3d59204e
4
+ data.tar.gz: 035ef8999addc9d27a10d2e51ccf7390c4aac40227d3273a93e5b4d0c0079cba
5
5
  SHA512:
6
- metadata.gz: 98384cb09b842819df7c29bc0798538e4971d9c96250332aac735899e0f3dbb18abc696a63b4d99394cf541edc2f4e2b4ceba93db01281acb54c01b4fa27519a
7
- data.tar.gz: 0a4194f180d61a9fd3f1611602da728e9e38aa976170fa4190d6027ad857c627c9a989396c40fd965aac782fdd8b477d6d898edaed79fd44cbe947a1775616f0
6
+ metadata.gz: d863b375ab55be7eaa5556427fce403e0cfb7197daa9dd7b997af1bf1e1ef920d383ff5ccdd5bbcacf63373b4466ef2a3722398175d949ad80be8f2f12aab44a
7
+ data.tar.gz: 11a57ae2353ff07445bf79e3a770023387284cf8883dafda2087b8e466fbbe6a2184d6aece6a4ee097cefb53aeff6849cfb12ae6e9062a85dedb9621f3e4bf85
data/ChangeLog CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.5.8 - 11/03/2021
2
+
3
+ * removed fixed dependency to pg (is now optional like mysql)
4
+
1
5
  ## 0.5.7 - 18/01/2021
2
6
 
3
7
  * 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.8"
3
3
  end
data/readme.md CHANGED
@@ -1,8 +1,9 @@
1
1
  # Release a new ydbi gem
2
2
 
3
- * rake ydbd-pg:clobber_package rake ydbd-pg:clobber_package; rake ydbi:gem ydbd-pg:gem
4
- * gem push ydbd-pg-0.5.4.gem
5
- * gem push ydbi-0.5.4.gem
3
+ * bundle exec rake test test_dbd test_dbi
4
+ * rake ydbd-pg:clobber_package; rake ydbd-pg:clobber_package; rake ydbi:gem ydbd-pg:gem
5
+ * bundle exec gem push pkg/ydbd-*.gem
6
+ * bundle exec gem push pkg/ydbi-*.gem
6
7
 
7
8
  # Description
8
9
  The DBI package is a vendor independent interface for accessing databases.
data/test/dbi/tc_dbi.rb CHANGED
@@ -16,7 +16,7 @@ class TC_DBI < Test::Unit::TestCase
16
16
  end
17
17
 
18
18
  def test_dbi_version
19
- assert_equal("0.5.7", DBI::VERSION)
19
+ assert_equal("0.5.8", DBI::VERSION)
20
20
  end
21
21
 
22
22
  def test_dbd_module
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.8
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: 2021-03-11 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,9 +80,7 @@ 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
85
  licenses:
204
86
  - MIT
@@ -211,7 +93,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
211
93
  requirements:
212
94
  - - ">="
213
95
  - !ruby/object:Gem::Version
214
- version: '0'
96
+ version: 1.8.0
215
97
  required_rubygems_version: !ruby/object:Gem::Requirement
216
98
  requirements:
217
99
  - - ">="
@@ -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
-