ydbi 0.5.7 → 0.5.8

Sign up to get free protection for your applications and to get access to all the features.
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
-