sequel 0.5.0.2 → 1.0

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 (66) hide show
  1. data/COPYING +18 -18
  2. data/Rakefile +17 -98
  3. data/lib/sequel.rb +2 -71
  4. metadata +10 -108
  5. data/CHANGELOG +0 -989
  6. data/bin/sequel +0 -41
  7. data/lib/sequel/adapters/adapter_skeleton.rb +0 -68
  8. data/lib/sequel/adapters/ado.rb +0 -100
  9. data/lib/sequel/adapters/db2.rb +0 -158
  10. data/lib/sequel/adapters/dbi.rb +0 -126
  11. data/lib/sequel/adapters/informix.rb +0 -87
  12. data/lib/sequel/adapters/jdbc.rb +0 -108
  13. data/lib/sequel/adapters/mysql.rb +0 -269
  14. data/lib/sequel/adapters/odbc.rb +0 -145
  15. data/lib/sequel/adapters/odbc_mssql.rb +0 -93
  16. data/lib/sequel/adapters/openbase.rb +0 -90
  17. data/lib/sequel/adapters/oracle.rb +0 -99
  18. data/lib/sequel/adapters/postgres.rb +0 -519
  19. data/lib/sequel/adapters/sqlite.rb +0 -192
  20. data/lib/sequel/ado.rb +0 -6
  21. data/lib/sequel/array_keys.rb +0 -296
  22. data/lib/sequel/connection_pool.rb +0 -152
  23. data/lib/sequel/core_ext.rb +0 -59
  24. data/lib/sequel/core_sql.rb +0 -191
  25. data/lib/sequel/database.rb +0 -433
  26. data/lib/sequel/dataset.rb +0 -409
  27. data/lib/sequel/dataset/convenience.rb +0 -321
  28. data/lib/sequel/dataset/sequelizer.rb +0 -354
  29. data/lib/sequel/dataset/sql.rb +0 -586
  30. data/lib/sequel/db2.rb +0 -6
  31. data/lib/sequel/dbi.rb +0 -6
  32. data/lib/sequel/exceptions.rb +0 -45
  33. data/lib/sequel/informix.rb +0 -6
  34. data/lib/sequel/migration.rb +0 -191
  35. data/lib/sequel/model.rb +0 -8
  36. data/lib/sequel/mysql.rb +0 -6
  37. data/lib/sequel/odbc.rb +0 -6
  38. data/lib/sequel/oracle.rb +0 -6
  39. data/lib/sequel/postgres.rb +0 -6
  40. data/lib/sequel/pretty_table.rb +0 -73
  41. data/lib/sequel/schema.rb +0 -8
  42. data/lib/sequel/schema/schema_generator.rb +0 -131
  43. data/lib/sequel/schema/schema_sql.rb +0 -131
  44. data/lib/sequel/sqlite.rb +0 -6
  45. data/lib/sequel/worker.rb +0 -58
  46. data/spec/adapters/informix_spec.rb +0 -139
  47. data/spec/adapters/mysql_spec.rb +0 -330
  48. data/spec/adapters/oracle_spec.rb +0 -130
  49. data/spec/adapters/postgres_spec.rb +0 -189
  50. data/spec/adapters/sqlite_spec.rb +0 -345
  51. data/spec/array_keys_spec.rb +0 -679
  52. data/spec/connection_pool_spec.rb +0 -356
  53. data/spec/core_ext_spec.rb +0 -67
  54. data/spec/core_sql_spec.rb +0 -301
  55. data/spec/database_spec.rb +0 -811
  56. data/spec/dataset_spec.rb +0 -2381
  57. data/spec/migration_spec.rb +0 -261
  58. data/spec/pretty_table_spec.rb +0 -66
  59. data/spec/rcov.opts +0 -4
  60. data/spec/schema_generator_spec.rb +0 -86
  61. data/spec/schema_spec.rb +0 -230
  62. data/spec/sequel_spec.rb +0 -10
  63. data/spec/sequelizer_spec.rb +0 -389
  64. data/spec/spec.opts +0 -5
  65. data/spec/spec_helper.rb +0 -44
  66. data/spec/worker_spec.rb +0 -96
data/bin/sequel DELETED
@@ -1,41 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'rubygems'
4
- require 'sequel'
5
-
6
- usage = <<END
7
- Usage: sequel <connection URI>
8
- Sequel: Lightweight ORM library for Ruby
9
-
10
- Examples:
11
- sequel sqlite:///blog.db
12
- sequel postgres://localhost/my_blog
13
-
14
- For more information see http://code.google.com/p/ruby-sequel
15
- END
16
-
17
- db = ARGV.shift
18
-
19
- if db.nil? || db.empty?
20
- puts usage
21
- exit
22
- end
23
-
24
- begin
25
- DB = Sequel.connect db
26
- rescue => e
27
- puts e.message
28
- exit
29
- end
30
-
31
- begin
32
- DB.test_connection
33
- rescue => e
34
- puts e.message
35
- puts e.backtrace.first
36
- exit
37
- end
38
-
39
- require 'irb'
40
- puts "Your database is stored in DB..."
41
- IRB.start
@@ -1,68 +0,0 @@
1
- # require 'adapter_lib'
2
-
3
- module Sequel
4
- module Adapter
5
- class Database < Sequel::Database
6
- set_adapter_scheme :adapter
7
-
8
- def connect
9
- AdapterDB.new(@opts[:database], @opts[:user], @opts[:password])
10
- end
11
-
12
- def disconnect
13
- @pool.disconnect {|c| c.disconnect}
14
- end
15
-
16
- def dataset(opts = nil)
17
- Adapter::Dataset.new(self, opts)
18
- end
19
-
20
- def execute(sql)
21
- @logger.info(sql) if @logger
22
- @pool.hold {|conn| conn.exec(sql)}
23
- end
24
-
25
- alias_method :do, :execute
26
- end
27
-
28
- class Dataset < Sequel::Dataset
29
- def literal(v)
30
- case v
31
- when Time
32
- literal(v.iso8601)
33
- else
34
- super
35
- end
36
- end
37
-
38
- def fetch_rows(sql, &block)
39
- @db.synchronize do
40
- cursor = @db.execute sql
41
- begin
42
- @columns = cursor.get_col_names.map {|c| c.to_sym}
43
- while r = cursor.fetch
44
- row = {}
45
- r.each_with_index {|v, i| row[@columns[i]] = v}
46
- yield row
47
- end
48
- ensure
49
- cursor.close
50
- end
51
- end
52
- self
53
- end
54
-
55
- def insert(*values)
56
- @db.do insert_sql(*values)
57
- end
58
-
59
- def update(*args, &block)
60
- @db.do update_sql(*args, &block)
61
- end
62
-
63
- def delete(opts = nil)
64
- @db.do delete_sql(opts)
65
- end
66
- end
67
- end
68
- end
@@ -1,100 +0,0 @@
1
- require 'win32ole'
2
-
3
- module Sequel
4
- # The ADO adapter provides connectivity to ADO databases in Windows. ADO
5
- # databases can be opened using a URL with the ado schema:
6
- #
7
- # DB = Sequel.open('ado://mydb')
8
- #
9
- # or using the Sequel.ado method:
10
- #
11
- # DB = Sequel.ado('mydb')
12
- #
13
- module ADO
14
- class Database < Sequel::Database
15
- set_adapter_scheme :ado
16
-
17
- AUTO_INCREMENT = 'IDENTITY(1,1)'.freeze
18
-
19
- def auto_increment_sql
20
- AUTO_INCREMENT
21
- end
22
-
23
- def connect
24
- dbname = @opts[:database]
25
- handle = WIN32OLE.new('ADODB.Connection')
26
- handle.Open(dbname)
27
- handle
28
- end
29
-
30
- def disconnect
31
- # how do we disconnect? couldn't find anything in the docs
32
- end
33
-
34
- def dataset(opts = nil)
35
- ADO::Dataset.new(self, opts)
36
- end
37
-
38
- def execute(sql)
39
- @logger.info(sql) if @logger
40
- @pool.hold {|conn| conn.Execute(sql)}
41
- end
42
-
43
- alias_method :do, :execute
44
- end
45
-
46
- class Dataset < Sequel::Dataset
47
- def literal(v)
48
- case v
49
- when Time
50
- literal(v.iso8601)
51
- else
52
- super
53
- end
54
- end
55
-
56
- def fetch_rows(sql, &block)
57
- @db.synchronize do
58
- s = @db.execute sql
59
-
60
- @columns = s.Fields.extend(Enumerable).map {|x| x.Name.to_sym}
61
-
62
- s.moveFirst
63
- s.getRows.transpose.each {|r| yield hash_row(r)}
64
- end
65
- self
66
- end
67
-
68
- def hash_row(row)
69
- @columns.inject({}) do |m, c|
70
- m[c] = row.shift
71
- m
72
- end
73
- end
74
-
75
- def array_tuples_fetch_rows(sql, &block)
76
- @db.synchronize do
77
- s = @db.execute sql
78
-
79
- @columns = s.Fields.extend(Enumerable).map {|x| x.Name.to_sym}
80
-
81
- s.moveFirst
82
- s.getRows.transpose.each {|r| r.keys = @columns; yield r}
83
- end
84
- self
85
- end
86
-
87
- def insert(*values)
88
- @db.do insert_sql(*values)
89
- end
90
-
91
- def update(*args, &block)
92
- @db.do update_sql(*args, &block)
93
- end
94
-
95
- def delete(opts = nil)
96
- @db.do delete_sql(opts)
97
- end
98
- end
99
- end
100
- end
@@ -1,158 +0,0 @@
1
- require 'db2/db2cli'
2
-
3
- module Sequel
4
- module DB2
5
- class Database < Sequel::Database
6
- set_adapter_scheme :db2
7
- include DB2CLI
8
-
9
- # AUTO_INCREMENT = 'IDENTITY(1,1)'.freeze
10
- #
11
- # def auto_increment_sql
12
- # AUTO_INCREMENT
13
- # end
14
-
15
- def check_error(rc, msg)
16
- case rc
17
- when SQL_SUCCESS, SQL_SUCCESS_WITH_INFO
18
- nil
19
- else
20
- raise Error, msg
21
- end
22
- end
23
-
24
- rc, @@env = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE)
25
- check_error(rc, "Could not allocate DB2 environment")
26
-
27
- def connect
28
- rc, dbc = SQLAllocHandle(SQL_HANDLE_DBC, @@env)
29
- check_error(rc, "Could not allocate database connection")
30
-
31
- rc = SQLConnect(dbc, @opts[:database], @opts[:user], @opts[:password])
32
- check_error(rc, "Could not connect to database")
33
-
34
- dbc
35
- end
36
-
37
- def disconnect
38
- @pool.disconnect do |conn|
39
- rc = SQLDisconnect(conn)
40
- check_error(rc, "Could not disconnect from database")
41
-
42
- rc = SQLFreeHandle(SQL_HANDLE_DBC, conn)
43
- check_error(rc, "Could not free Database handle")
44
- end
45
- end
46
-
47
- def test_connection
48
- @pool.hold {|conn|}
49
- true
50
- end
51
-
52
- def dataset(opts = nil)
53
- DB2::Dataset.new(self, opts)
54
- end
55
-
56
- def execute(sql, &block)
57
- @logger.info(sql) if @logger
58
- @pool.hold do |conn|
59
- rc, sth = SQLAllocHandle(SQL_HANDLE_STMT, @handle)
60
- check_error(rc, "Could not allocate statement")
61
-
62
- begin
63
- rc = SQLExecDirect(sth, sql)
64
- check_error(rc, "Could not execute statement")
65
-
66
- block[sth] if block
67
-
68
- rc, rpc = SQLRowCount(sth)
69
- check_error(rc, "Could not get RPC")
70
- rpc
71
- ensure
72
- rc = SQLFreeHandle(SQL_HANDLE_STMT, sth)
73
- check_error(rc, "Could not free statement")
74
- end
75
- end
76
- end
77
- alias_method :do, :execute
78
- end
79
-
80
- class Dataset < Sequel::Dataset
81
- def literal(v)
82
- case v
83
- when Time
84
- literal(v.iso8601)
85
- else
86
- super
87
- end
88
- end
89
-
90
- def fetch_rows(sql, &block)
91
- @db.synchronize do
92
- @db.execute(sql) do |sth|
93
- @column_info = get_column_info(sth)
94
- @columns = @column_info.map {|c| c[:name]}
95
- while (rc = SQLFetch(@handle)) != SQL_NO_DATA_FOUND
96
- @db.check_error(rc, "Could not fetch row")
97
- yield hash_row(sth)
98
- end
99
- end
100
- end
101
- self
102
- end
103
-
104
- MAX_COL_SIZE = 256
105
-
106
- def get_column_info(sth)
107
- rc, column_count = SQLNumResultCols(sth)
108
- @db.check_error(rc, "Could not get number of result columns")
109
-
110
- (1..column_count).map do |i|
111
- rc, name, buflen, datatype, size, digits, nullable = SQLDescribeCol(sth, i, MAX_COL_SIZE)
112
- @b.check_error(rc, "Could not describe column")
113
-
114
- {:name => name, :db2_type => datatype, :precision => size}
115
- end
116
- end
117
-
118
- def hash_row(sth)
119
- row = {}
120
- @column_info.each_with_index do |c, i|
121
- rc, v = SQLGetData(sth, i+1, c[:db2_type], c[:precision])
122
- @db.check_error(rc, "Could not get data")
123
-
124
- @row[c[:name]] = convert_type(v)
125
- end
126
- row
127
- end
128
-
129
- def convert_type(v)
130
- case v
131
- when DB2CLI::Date
132
- DBI::Date.new(v.year, v.month, v.day)
133
- when DB2CLI::Time
134
- DBI::Time.new(v.hour, v.minute, v.second)
135
- when DB2CLI::Timestamp
136
- DBI::Timestamp.new(v.year, v.month, v.day,
137
- v.hour, v.minute, v.second, v.fraction)
138
- when DB2CLI::Null
139
- nil
140
- else
141
- v
142
- end
143
- end
144
-
145
- def insert(*values)
146
- @db.do insert_sql(*values)
147
- end
148
-
149
- def update(*args, &block)
150
- @db.do update_sql(*args, &block)
151
- end
152
-
153
- def delete(opts = nil)
154
- @db.do delete_sql(opts)
155
- end
156
- end
157
- end
158
- end
@@ -1,126 +0,0 @@
1
- require 'dbi'
2
-
3
- module Sequel
4
- module DBI
5
- class Database < Sequel::Database
6
- set_adapter_scheme :dbi
7
-
8
- DBI_ADAPTERS = {
9
- :ado => "ADO",
10
- :db2 => "DB2",
11
- :frontbase => "FrontBase",
12
- :interbase => "InterBase",
13
- :msql => "Msql",
14
- :mysql => "Mysql",
15
- :odbc => "ODBC",
16
- :oracle => "Oracle",
17
- :pg => "Pg",
18
- :proxy => "Proxy",
19
- :sqlite => "SQLite",
20
- :sqlrelay => "SQLRelay"
21
- }
22
-
23
- # Converts a uri to an options hash. These options are then passed
24
- # to a newly created database object.
25
- def self.uri_to_options(uri)
26
- database = (uri.path =~ /\/(.*)/) && ($1)
27
- if uri.scheme =~ /dbi-(.+)/
28
- adapter = DBI_ADAPTERS[$1.to_sym] || $1
29
- database = "#{adapter}:#{database}"
30
- end
31
- {
32
- :user => uri.user,
33
- :password => uri.password,
34
- :host => uri.host,
35
- :port => uri.port,
36
- :database => database
37
- }
38
- end
39
-
40
-
41
- def connect
42
- dbname = @opts[:database]
43
- dbname = 'DBI:' + dbname unless dbname =~ /^DBI:/
44
- ::DBI.connect(dbname, @opts[:user], @opts[:password])
45
- end
46
-
47
- def disconnect
48
- @pool.disconnect {|c| c.disconnect}
49
- end
50
-
51
- def dataset(opts = nil)
52
- DBI::Dataset.new(self, opts)
53
- end
54
-
55
- def execute(sql)
56
- @logger.info(sql) if @logger
57
- @pool.hold do |conn|
58
- conn.execute(sql)
59
- end
60
- end
61
-
62
- def do(sql)
63
- @logger.info(sql) if @logger
64
- @pool.hold do |conn|
65
- conn.do(sql)
66
- end
67
- end
68
- end
69
-
70
- class Dataset < Sequel::Dataset
71
- def literal(v)
72
- case v
73
- when Time
74
- literal(v.iso8601)
75
- else
76
- super
77
- end
78
- end
79
-
80
- def fetch_rows(sql, &block)
81
- @db.synchronize do
82
- s = @db.execute sql
83
- begin
84
- @columns = s.column_names.map {|c| c.to_sym}
85
- s.fetch {|r| yield hash_row(s, r)}
86
- ensure
87
- s.finish rescue nil
88
- end
89
- end
90
- self
91
- end
92
-
93
- def array_tuples_fetch_rows(sql, &block)
94
- @db.synchronize do
95
- s = @db.execute sql
96
- begin
97
- @columns = s.column_names.map {|c| c.to_sym}
98
- s.fetch {|r| r.keys = @columns; yield r}
99
- ensure
100
- s.finish rescue nil
101
- end
102
- end
103
- self
104
- end
105
-
106
- def hash_row(stmt, row)
107
- @columns.inject({}) do |m, c|
108
- m[c] = row.shift
109
- m
110
- end
111
- end
112
-
113
- def insert(*values)
114
- @db.do insert_sql(*values)
115
- end
116
-
117
- def update(*args, &block)
118
- @db.do update_sql(*args, &block)
119
- end
120
-
121
- def delete(opts = nil)
122
- @db.do delete_sql(opts)
123
- end
124
- end
125
- end
126
- end