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.
- checksums.yaml +4 -4
- data/ChangeLog +4 -0
- data/lib/dbi/version.rb +1 -1
- data/readme.md +4 -3
- data/test/dbi/tc_dbi.rb +1 -1
- metadata +7 -125
- data/.github/workflows/ruby.yml +0 -35
- data/.gitignore +0 -8
- data/.travis.yml +0 -15
- data/Gemfile +0 -5
- data/Rakefile +0 -10
- data/TODO +0 -44
- data/bench/bench.rb +0 -79
- data/build/rake_task_lib.rb +0 -186
- data/doc/DBD_SPEC.rdoc +0 -88
- data/doc/DBI_SPEC.rdoc +0 -157
- data/doc/homepage/contact.html +0 -62
- data/doc/homepage/development.html +0 -124
- data/doc/homepage/index.html +0 -83
- data/doc/homepage/ruby-dbi.css +0 -91
- data/lib/dbd/Mysql.rb +0 -137
- data/lib/dbd/ODBC.rb +0 -89
- data/lib/dbd/Pg.rb +0 -188
- data/lib/dbd/SQLite.rb +0 -97
- data/lib/dbd/SQLite3.rb +0 -124
- data/lib/dbd/mysql/database.rb +0 -405
- data/lib/dbd/mysql/driver.rb +0 -125
- data/lib/dbd/mysql/statement.rb +0 -188
- data/lib/dbd/odbc/database.rb +0 -128
- data/lib/dbd/odbc/driver.rb +0 -38
- data/lib/dbd/odbc/statement.rb +0 -137
- data/lib/dbd/pg/database.rb +0 -504
- data/lib/dbd/pg/exec.rb +0 -47
- data/lib/dbd/pg/statement.rb +0 -160
- data/lib/dbd/pg/tuples.rb +0 -121
- data/lib/dbd/pg/type.rb +0 -209
- data/lib/dbd/sqlite/database.rb +0 -151
- data/lib/dbd/sqlite/statement.rb +0 -125
- data/lib/dbd/sqlite3/database.rb +0 -201
- data/lib/dbd/sqlite3/statement.rb +0 -78
- data/prototypes/types2.rb +0 -237
- data/setup.rb +0 -1585
- data/test/DBD_TESTS +0 -50
- data/test/TESTING +0 -16
- data/test/dbd/general/test_database.rb +0 -206
- data/test/dbd/general/test_statement.rb +0 -326
- data/test/dbd/general/test_types.rb +0 -296
- data/test/dbd/mysql/base.rb +0 -26
- data/test/dbd/mysql/down.sql +0 -19
- data/test/dbd/mysql/test_blob.rb +0 -18
- data/test/dbd/mysql/test_new_methods.rb +0 -7
- data/test/dbd/mysql/test_patches.rb +0 -111
- data/test/dbd/mysql/up.sql +0 -28
- data/test/dbd/odbc/base.rb +0 -30
- data/test/dbd/odbc/down.sql +0 -19
- data/test/dbd/odbc/test_new_methods.rb +0 -12
- data/test/dbd/odbc/test_ping.rb +0 -10
- data/test/dbd/odbc/test_statement.rb +0 -44
- data/test/dbd/odbc/test_transactions.rb +0 -58
- data/test/dbd/odbc/up.sql +0 -33
- data/test/dbd/postgresql/base.rb +0 -31
- data/test/dbd/postgresql/down.sql +0 -31
- data/test/dbd/postgresql/test_arrays.rb +0 -179
- data/test/dbd/postgresql/test_async.rb +0 -121
- data/test/dbd/postgresql/test_blob.rb +0 -36
- data/test/dbd/postgresql/test_bytea.rb +0 -87
- data/test/dbd/postgresql/test_ping.rb +0 -10
- data/test/dbd/postgresql/test_timestamp.rb +0 -77
- data/test/dbd/postgresql/test_transactions.rb +0 -58
- data/test/dbd/postgresql/testdbipg.rb +0 -307
- data/test/dbd/postgresql/up.sql +0 -60
- data/test/dbd/sqlite/base.rb +0 -32
- data/test/dbd/sqlite/test_database.rb +0 -30
- data/test/dbd/sqlite/test_driver.rb +0 -68
- data/test/dbd/sqlite/test_statement.rb +0 -112
- data/test/dbd/sqlite/up.sql +0 -25
- data/test/dbd/sqlite3/base.rb +0 -32
- data/test/dbd/sqlite3/test_database.rb +0 -77
- data/test/dbd/sqlite3/test_driver.rb +0 -67
- data/test/dbd/sqlite3/test_statement.rb +0 -88
- data/test/dbd/sqlite3/up.sql +0 -33
- data/test/ts_dbd.rb +0 -131
- data/ydbi.gemspec +0 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62f01549856766688a97c7b0978a288de3036664ada7ada30004210f3d59204e
|
4
|
+
data.tar.gz: 035ef8999addc9d27a10d2e51ccf7390c4aac40227d3273a93e5b4d0c0079cba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d863b375ab55be7eaa5556427fce403e0cfb7197daa9dd7b997af1bf1e1ef920d383ff5ccdd5bbcacf63373b4466ef2a3722398175d949ad80be8f2f12aab44a
|
7
|
+
data.tar.gz: 11a57ae2353ff07445bf79e3a770023387284cf8883dafda2087b8e466fbbe6a2184d6aece6a4ee097cefb53aeff6849cfb12ae6e9062a85dedb9621f3e4bf85
|
data/ChangeLog
CHANGED
data/lib/dbi/version.rb
CHANGED
data/readme.md
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
# Release a new ydbi gem
|
2
2
|
|
3
|
-
*
|
4
|
-
*
|
5
|
-
* gem push
|
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
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.
|
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-
|
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:
|
96
|
+
version: 1.8.0
|
215
97
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
216
98
|
requirements:
|
217
99
|
- - ">="
|
data/.github/workflows/ruby.yml
DELETED
@@ -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
data/.travis.yml
DELETED
data/Gemfile
DELETED
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
|
-
|
data/build/rake_task_lib.rb
DELETED
@@ -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
|
-
|