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
data/doc/DBD_SPEC.rdoc DELETED
@@ -1,88 +0,0 @@
1
- = DBD Specification Version 0.4.0
2
- By Erik Hollensbe <erik@hollensbe.org>
3
-
4
- == FOREWORD
5
-
6
- DBI is still in a large state of flux. Previous versions of this
7
- specification rarely reflected reality, and the 0.4.0 release is an
8
- attempt to get the code and documentation in touch with each other to
9
- better reflect said reality.
10
-
11
- While this is a goal, nobody's perfect and there is still a lot of
12
- code to check, sanitize, and otherwise clean up. If you find something
13
- missing in these specifications while working on a new DBD or a patch
14
- for DBI, please, do not do what everything else is doing; alert the
15
- appropriate person to get the spec revised. Doing this will save
16
- yourself (and the DBI authors) infinite amounts of time.
17
-
18
- == WHAT A DBD IS
19
-
20
- DBD stands for "DataBase Driver" and is the layer that DBI uses to interface
21
- with the database. DBDs often employ a low level driver to do the real work
22
- with the database, leaving the DBD itself to act as a medium between DBI and
23
- that lower level API.
24
-
25
- This allows a great deal of flexibility without having to sacrifice features
26
- for compatibility. For example, instead of having one PostgreSQL DBD that
27
- handles all version of PostgreSQL and attempts to limit it's functionality
28
- based on what version it detects (a error-prone and time/design prohibitive
29
- process), one can write two PostgreSQL DBD that handle the differences between
30
- "new" and "old" postgres, all while talking to the same low-level driver (yet
31
- leveraging different functionality). This method leads to cleaner internals and
32
- puts the choice of which to use on the end-user, who is probably a lot more
33
- informed about what features they want than your code.
34
-
35
- One traditionally loads a DBD using the DBI.connect method (see DBD LOAD
36
- PATHS below) which will attempt to load the DBD, connect to the database with
37
- the arguments supplied and return a DatabaseHandle if successful. However, if
38
- the DBD is written properly, requiring it directly without DBI's involvement
39
- (or existence) should not be an issue.
40
-
41
- == WHERE DBDs LIVE
42
-
43
- DBDs have an expected require path to be loaded by DBI. DBI will attempt to
44
- load the middle portion of the DBI.connect DSN provided.
45
-
46
- Example: DBI.connect("dbi:Mysql:mydb") # requires 'dbd/Mysql'
47
-
48
- Since rubygems potentially renders this path virtual, it is not OK to expect
49
- this path physically exists in one spot on the filesystem. Many assuptions are
50
- currently made about this and will be pruned in 0.6.0.
51
-
52
- If you wish to create submodules for your DBD, create a directory in the 'dbd'
53
- directory named the same as the DBD. (E.g., "dbd/Mysql" would have a directory
54
- with files in it relating to the Mysql.rb file that DBI loads).
55
-
56
- == HOW DBI INTERFACES WITH YOUR DBD
57
-
58
- Your DBD will create classes representing a DBI::BaseDriver, DBI::BaseDatabase,
59
- and DBI::BaseStatement. DBI will link these to DBI::DriverHandle,
60
- DBI::DatabaseHandle, and DBI::StatementHandle respectively. Your classes will
61
- be called by the Handle classes to retreive information to manipulate and send
62
- to the user. This manipulation can be influenced in a number of ways.
63
-
64
- It is strongly recommended you make the effort to read the RDoc for all six
65
- of these classes, as they are the meat of this specification, not this
66
- document.
67
-
68
- == BUILDING A DBD FROM SCRATCH
69
-
70
- For the purposes of this discussion, we'll call your driver 'Foo'.
71
-
72
- Create your module, DBI::DBD::Foo. Store it somewhere in your load path under
73
- dbd/Foo.rb.
74
-
75
- Create classes Driver, Database, and Statement in this new namespace, which
76
- inherit from DBI::BaseDriver, DBI::BaseDatabase, and DBI::BaseStatement.
77
- Override (at mininum) the methods that return NotImplementedError in your new
78
- classes.
79
-
80
- Create a method in the root namespace named +driver_name+. This should return a
81
- string with a short name for your driver, this key will be used in type
82
- conversion.
83
-
84
- Everything else is up to you, up to and including worrying about interacting
85
- with the database.
86
-
87
- At this point, you should be ready to test your driver. See test/DBD_TESTS for
88
- information on how to configure that.
data/doc/DBI_SPEC.rdoc DELETED
@@ -1,157 +0,0 @@
1
- = DBI Interface Spec, for version 0.4.0
2
-
3
- by Erik Hollensbe <erik@hollensbe.org>
4
-
5
- == Foreword
6
-
7
- DBI is still in a large state of flux. Previous versions of this
8
- specification rarely reflected reality, and the 0.4.0 release is an
9
- attempt to get the code and documentation more in sync.
10
-
11
- While this is the goal, there is still a lot of
12
- code to check, sanitize, and otherwise clean up. If you find something
13
- missing in these specifications while working on a new DBD or a patch
14
- for DBI, please bring it to our attention (in IRC or on the mailing list)
15
- to get the spec revised. Doing this will save
16
- yourself (and the DBI authors) a lot of time.
17
-
18
- == Design
19
-
20
- With DBI, there are the concepts of driver, database, and statement. The core
21
- functionality for these concepts is provided by a database driver, or
22
- DBD. DBI controls one or more drivers at once, a driver has databases, a
23
- database may have statements.
24
-
25
- DBI uses a delegation model to communicate with its DBDs through a
26
- series of handles. When a connection to a database is requested, DBI contacts
27
- the appropriate DBD and builds a handle in
28
- its name that it aligns with a DBI base class for that concept. The
29
- handle provided by the DBD is the first-class method of communication,
30
- otherwise it resorts to calling the base class methods. This allows
31
- DBI to provide a level of consistency unless the DBD author finds it
32
- otherwise unnecessary.
33
-
34
- For example: DBI will provide handy methods like fetch_all and
35
- fetch_scroll which all leverage the fetch method in the base class,
36
- and the fetch method must be implemented by the DBD. However, the DBD
37
- may have an internal representation of fetch_scroll (as is the case
38
- with the ODBC driver) that may be more suited to direct use, and
39
- therefore DBI will never see the base class method. This is similar to
40
- inheritance, but there is a distinct disconnect between the handles
41
- and the base classes, intentionally so. This way the DBDs have no
42
- access to the base class and DBI does all the delegation work. Also,
43
- DBI has no idea what the DBD is doing underneath, nor does it need to
44
- care as long as valid data is returned.
45
-
46
- == Classes
47
-
48
- These are the classes that make up the core of DBI and provide
49
- various functionality:
50
-
51
- === DBI
52
- Core module, responsible for everything underneath it, kickstarting
53
- connections and loading drivers.
54
-
55
- === DBI::Row
56
-
57
- Responsible for representing the result set and managing the type
58
- conversion of the result set.
59
-
60
- === DBI::Utils
61
-
62
- Utility methods which propogate through the rest of DBI.
63
-
64
- === DBI::SQL
65
-
66
- Utility methods for working with SQL queries. Includes a
67
- driver-independent SQL bind manager.
68
-
69
- === DBI::ColumnInfo
70
-
71
- Responsible for representing the information per column for both
72
- queries and table descriptions.
73
-
74
- === DBI::Type
75
-
76
- Namespace for typecasting classes. These classes are provided with a
77
- parse method which converts them to a native Ruby type from a string.
78
-
79
- === DBI::TypeUtil
80
-
81
- The inverse of DBI::Type, this provides functionality to turn native
82
- Ruby types into a representation suitable for the DBD's queries.
83
-
84
- === DBI::Binary
85
-
86
- The representation of a BLOB/CLOB in a Ruby object. This will
87
- eventually be rolled into DBI::Type::, but remains here currently for
88
- compatibility purposes.
89
-
90
- === DBI::Base* and DBI::*Handle
91
-
92
- Please see the Design section above for the description of these modules.
93
-
94
- == Exceptions
95
-
96
- DBI has a slew of custom exceptions it uses to control program flow,
97
- and alert the user to specific classes of problems.
98
-
99
- They currently all live in the DBI namespace, although it's expected
100
- that there will eventually be an exception namespace.
101
-
102
- === DBI::Warning < RuntimeError
103
- For important warnings such as data truncation, etc.
104
-
105
- === DBI::Error < RuntimeError
106
- Base class of all other error exceptions.
107
- Rescue this to rescue all DBI errors.
108
-
109
- === DBI::InterfaceError < DBI::Error
110
- Exception for errors related to the DBI interface rather
111
- than the database itself.
112
-
113
- === DBI::NotImplementedError < DBI::InterfaceError
114
- Exception raised if the DBD driver has not specified
115
- a mandatory method.
116
-
117
- === DBI::DatabaseError < DBI::Error
118
- Exception for errors related to the database.
119
-
120
- Has three attributes: ((|err|)), ((|errstr|)) and ((|state|)).
121
-
122
- === DBI::DataError < DBI::DatabaseError
123
- Exception for errors due to problems with the processed
124
- data, such as division by zero, numeric value out of range, etc.
125
-
126
- === DBI::OperationalError < DBI::DatabaseError
127
- Exception for errors related to the database's operation which
128
- are not necessarily under the control of the programmer. This would include
129
- such things as unexpected disconnection, failure to find a datasource name,
130
- failure to process a transaction, memory allocation errors, etc.
131
-
132
- === DBI::IntegrityError < DBI::DatabaseError
133
- Exception raised when the relational integrity of the database
134
- is affected, such as when a foreign key constraint is violated.
135
-
136
- === DBI::InternalError < DBI::DatabaseError
137
- Exception raised when the database encounters an internal error,
138
- such as a cursor not being valid anymore, or a transaction going out of
139
- sync.
140
-
141
- === DBI::ProgrammingError < DBI::DatabaseError
142
- Exception raised for programming errors, e.g., table not found
143
- or already exists, syntax error in SQL statement, wrong number
144
- of parameters specified, etc.
145
-
146
- === DBI::NotSupportedError < DBI::DatabaseError
147
- Raised if, e.g., ((<commit>)) is called for a database that does not
148
- support transactions.
149
-
150
- == API
151
-
152
- To save my sanity, I have joined the specification and the rdoc for
153
- DBI. Please review the specification there.
154
-
155
- If you wish to author your own DBD, please see DBD_SPEC.rdoc,
156
- which is a more in-depth view of the communication between DBI and
157
- DBDs.
@@ -1,62 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
4
- <head>
5
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8"/>
6
- <title>Ruby/DBI - Direct database access layer for Ruby</title>
7
- <link rel="stylesheet" type="text/css" href="ruby-dbi.css"/>
8
- </head>
9
- <body>
10
- <div class="body-container">
11
- <h1>Ruby/DBI - Contact Information</h1>
12
- <div class="main-container">
13
- <div class="nav-container">
14
- <h1>Links</h1>
15
- <a href="index.html">Home</a>
16
- <a href="http://rubyforge.org/projects/ruby-dbi">RubyForge Project</a>
17
- <a href="http://ruby-dbi.rubyforge.org/rdoc/index.html">RDoc</a>
18
- <a href="development.html">Developer Information</a>
19
- <a href="http://www.kitebird.com/articles/ruby-dbi.html">Ruby/DBI Tutorial</a>
20
- <a href="contact.html">Contact/Reporting Bugs</a>
21
- </div>
22
- <p>
23
- If you'd like to contact us to report a bug or submit a patch,
24
- please use the <a
25
- href="http://rubyforge.org/tracker/?group_id=234">tracker</a>
26
- on RubyForge.
27
- </p>
28
-
29
- <p>
30
- If you'd like to ask questions about using Ruby/DBI, there is a
31
- <a href="http://rubyforge.org/mailman/listinfo/ruby-dbi-users">ruby-dbi-users</a> email list where those questions
32
- can be answered. Likewise, <a
33
- href="http://rubyforge.org/mailman/listinfo/ruby-dbi-bugs">ruby-dbi-bugs</a>
34
- is for discussing bug reports in detail, and <a
35
- href="http://rubyforge.org/mailman/listinfo/ruby-dbi-devel-new">ruby-dbi-devel-new</a> is for discussing future
36
- development and management of the project.
37
- </p>
38
-
39
- <p>
40
- If you're an irc user, the <b>#ruby-dbi</b> irc channel on
41
- <b>freenode</b> will get you in touch with developers and
42
- advanced users.
43
- </p>
44
-
45
- <p>
46
- If these avenues are not working for you for some reason,
47
- please feel free to contact <a
48
- href="mailto:erik-at-hollensbe-dot-org">Erik</a>
49
- directly. He will be glad to help!
50
- </p>
51
- </div>
52
- <br />
53
- <br />
54
- <div class="copyright">
55
- &copy;2008 Erik Hollensbe, all rights reserved. Please see the
56
- README file for the full copyright notice. Please see the
57
- LICENSE file in the source package for information on
58
- redistributing the source or any of the site content.
59
- </div>
60
- </div>
61
- </body>
62
- </html>
@@ -1,124 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
4
- <head>
5
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8"/>
6
- <title>Ruby/DBI - Direct database access layer for Ruby</title>
7
- <link rel="stylesheet" type="text/css" href="ruby-dbi.css"/>
8
- </head>
9
- <body>
10
- <div class="body-container">
11
- <h1>Ruby/DBI - Development Information</h1>
12
- <div class="main-container">
13
- <div class="nav-container">
14
- <h1>Links</h1>
15
- <a href="index.html">Home</a>
16
- <a href="http://rubyforge.org/projects/ruby-dbi">RubyForge Project</a>
17
- <a href="http://ruby-dbi.rubyforge.org/rdoc/index.html">RDoc</a>
18
- <a href="development.html">Developer Information</a>
19
- <a href="http://www.kitebird.com/articles/ruby-dbi.html">Ruby/DBI Tutorial</a>
20
- <a href="contact.html">Contact/Reporting Bugs</a>
21
- </div>
22
- <p>
23
- Regarding patches, please consider these issues:
24
- <br />
25
- <ul>
26
- <li>
27
- If your patch does not contain tests, it better be
28
- very compelling, as someone else will be forced to
29
- write them.
30
- </li>
31
- <li>
32
- Please ensure your patch addresses the whole
33
- problem space. If it's a patch for DBI, makes sure it
34
- works with <b>all</b> DBDs. Likewise, if it is DBD
35
- scope, it should handle all versions of the database
36
- that DBD supports.
37
- </li>
38
- <li>
39
- Please follow the existing formatting in the
40
- files. Check your diffs to see that you aren't
41
- generating patches with tons of formatting-only
42
- changes.
43
- </li>
44
- <li>
45
- If you plan a series of patches, consider setting
46
- up a git repository, or merging your patches before
47
- you submit them.
48
- </li>
49
- </ul>
50
- <br />
51
- </p>
52
- <p>
53
- Regarding bug reports, please consider these issues:
54
- <br />
55
- <ul>
56
- <li>
57
- Use the tracker if you can. Posting to the lists or
58
- a private email is ok, but if it's multipart or
59
- significantly complex you may be asked to post it
60
- to the tracker anyways.
61
- </li>
62
- <li>
63
- Please search the tracker first, and have a
64
- repeatable use case that accurately describes your
65
- problem.
66
- </li>
67
- <li>
68
- If you post to the tracker, have a rubyforge
69
- account and ensure you're logged in. If you don't,
70
- and questions to need to be asked, your bug will
71
- likely be quickly round-filed. Our tracker is not
72
- your cathartic dumping ground.
73
- </li>
74
- </ul>
75
- <p>
76
- If you'd like to contact us to report a bug or submit a patch,
77
- please use the <a
78
- href="http://rubyforge.org/tracker/?group_id=234">tracker</a>
79
- on RubyForge. If you plan long term development, consider
80
- setting up a git repository other developers can pull from.
81
- </p>
82
-
83
- <p>
84
- Please see the <a href="contact.html">contact</a> page
85
- about contacting developers or mailing lists.
86
- </p>
87
-
88
- <p>
89
- We now use 'git' for our revision control system. We now push
90
- to several locations:
91
-
92
- <dl>
93
- <dt>Rubyforge</dt>
94
- <dd>git://rubyforge.org/ruby-dbi.git</dd>
95
- <dt>GitHub</dt>
96
- <dd>git://github.com/erikh/ruby-dbi.git</dd>
97
- <dt>hollensbe.org</dt>
98
- <dd>git://hollensbe.org/git/ruby-dbi.git</dd>
99
- </dl>
100
- <br />
101
-
102
- Forward development occurs in the 'development' branch,
103
- which is version-tagged and merged into 'master' at release
104
- time. 'master' is used to track release versions and
105
- maintenance to those versions.
106
- </p>
107
-
108
- <p>
109
- Ruby/DBI is a BSD-licensed product. As a result, the
110
- licensing on your patches must be the same. Please do
111
- not send patches that are of any other license. Thanks!
112
- </p>
113
- </div>
114
- <br />
115
- <br />
116
- <div class="copyright">
117
- &copy;2008 Erik Hollensbe, all rights reserved. Please see the
118
- README file for the full copyright notice. Please see the
119
- LICENSE file in the source package for information on
120
- redistributing the source or any of the site content.
121
- </div>
122
- </div>
123
- </body>
124
- </html>
@@ -1,83 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
4
- <head>
5
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8"/>
6
- <title>Ruby/DBI - Direct database access layer for Ruby</title>
7
- <link rel="stylesheet" type="text/css" href="ruby-dbi.css"/>
8
- </head>
9
- <body>
10
- <div class="body-container">
11
- <h1>Ruby/DBI - Direct database access layer for Ruby</h1>
12
- <div class="main-container">
13
- <div class="nav-container">
14
- <h1>Links</h1>
15
- <a href="index.html">Home</a>
16
- <a href="http://rubyforge.org/projects/ruby-dbi">RubyForge Project</a>
17
- <a href="http://ruby-dbi.rubyforge.org/rdoc/index.html">RDoc</a>
18
- <a href="development.html">Developer Information</a>
19
- <a href="http://www.kitebird.com/articles/ruby-dbi.html">Ruby/DBI Tutorial</a>
20
- <a href="contact.html">Contact/Reporting Bugs</a>
21
- </div>
22
-
23
- <p>
24
- Ruby/DBI is a database interface in the spirit of Perl's prolific
25
- <a href="http://search.cpan.org/~timb/DBI/DBI.pm">DBI</a> authored
26
- by Tim Bunce.
27
- </p>
28
-
29
- <p>
30
- Ruby/DBI differs in quite a few ways, however. It incorporates
31
- many "rubyisms" while maintaining the core DBI interface, and a
32
- suite of commonly used DBD's are maintained with the
33
- application.
34
- </p>
35
-
36
- <p>
37
- Ruby/DBI is <i>not</i> an ORM, like <a
38
- href="http://ar.rubyonrails.com">ActiveRecord</a> or <a
39
- href="http://datamapper.rubyforge.org">DataMapper</a>. It is a
40
- lightweight, centralized API to database manipulation. An ORM may
41
- or may not be what you want for a given situation, due to weight,
42
- ease-of-use or other issues. Our goal with Ruby/DBI is to provide a
43
- compelling, lightweight interface that you can use for things where
44
- an ORM is too much or too cumbersome.
45
- </p>
46
-
47
- <p>
48
- Getting started with Ruby/DBI is very easy if you have a working
49
- knowledge of SQL and your target database. Read the <a
50
- href="http://ruby-dbi.rubyforge.org/rdoc/index.html">Documentation</a>
51
- to get on your way!
52
- </p>
53
-
54
- <p>
55
- The maintainer, Erik Hollensbe, has made a commitment to
56
- keeping Ruby/DBI compatible with future Ruby releases. There is
57
- also a significant interest in enhancing the suite by further
58
- clarifying and enforcing the interface, and further tailoring DBI
59
- for the specific needs of Ruby users (as opposed to many of the
60
- Perlisms maintained) without impacting the goal of the project.
61
- There is also significant effort applied to clarifying the
62
- underpinnings, making debugging and development simpler.
63
- </p>
64
-
65
- <p>
66
- Ruby/DBI is a very old project as far as the ruby community is
67
- concerned, tracing back to at least 2001. There are plenty of
68
- people who <a
69
- href="http://ruby-dbi.rubyforge.org/rdoc/index.html">have
70
- contributed</a> to this effort. Big thanks to the original
71
- project lead, Michael Neumann, and Francis Hwang and Daniel Berger, who held the
72
- project in escrow for such a long time.
73
- </p>
74
- </div>
75
- <div class="copyright">
76
- &copy;2008 Erik Hollensbe, all rights reserved. Please see the
77
- README file for the full copyright notice. Please see the
78
- LICENSE file in the source package for information on
79
- redistributing the source or any of the site content.
80
- </div>
81
- </div>
82
- </body>
83
- </html>