sequel 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. data/CHANGELOG +4 -0
  2. data/README +1 -6
  3. data/Rakefile +1 -1
  4. data/bin/sequel +1 -3
  5. data/lib/sequel.rb +18 -1
  6. data/lib/sequel/adapters/ado.rb +104 -0
  7. data/lib/sequel/adapters/db2.rb +160 -0
  8. data/lib/sequel/adapters/dbi.rb +130 -0
  9. data/lib/sequel/adapters/informix.rb +78 -0
  10. data/lib/sequel/adapters/mysql.rb +256 -0
  11. data/lib/sequel/adapters/odbc.rb +144 -0
  12. data/lib/sequel/adapters/oracle.rb +109 -0
  13. data/lib/sequel/adapters/postgres.rb +507 -0
  14. data/lib/sequel/adapters/sqlite.rb +186 -0
  15. data/lib/sequel/ado.rb +2 -104
  16. data/lib/{sequel-core → sequel}/array_keys.rb +0 -0
  17. data/lib/{sequel-core → sequel}/connection_pool.rb +0 -0
  18. data/lib/{sequel-core → sequel}/core_ext.rb +0 -0
  19. data/lib/{sequel-core → sequel}/core_sql.rb +0 -0
  20. data/lib/{sequel-core → sequel}/database.rb +10 -20
  21. data/lib/{sequel-core → sequel}/dataset.rb +0 -0
  22. data/lib/{sequel-core → sequel}/dataset/convenience.rb +0 -0
  23. data/lib/{sequel-core → sequel}/dataset/sequelizer.rb +0 -0
  24. data/lib/{sequel-core → sequel}/dataset/sql.rb +0 -0
  25. data/lib/sequel/db2.rb +2 -160
  26. data/lib/sequel/dbi.rb +2 -130
  27. data/lib/{sequel-core → sequel}/error.rb +0 -0
  28. data/lib/sequel/informix.rb +2 -78
  29. data/lib/{sequel-core → sequel}/migration.rb +0 -0
  30. data/lib/{sequel-core → sequel}/model.rb +0 -0
  31. data/lib/{sequel-core → sequel}/model/base.rb +0 -0
  32. data/lib/{sequel-core → sequel}/model/caching.rb +0 -0
  33. data/lib/{sequel-core → sequel}/model/hooks.rb +0 -0
  34. data/lib/{sequel-core → sequel}/model/record.rb +0 -0
  35. data/lib/{sequel-core → sequel}/model/relations.rb +0 -0
  36. data/lib/{sequel-core → sequel}/model/schema.rb +0 -0
  37. data/lib/sequel/mysql.rb +2 -256
  38. data/lib/sequel/odbc.rb +2 -144
  39. data/lib/sequel/oracle.rb +2 -109
  40. data/lib/sequel/postgres.rb +2 -507
  41. data/lib/{sequel-core → sequel}/pretty_table.rb +0 -0
  42. data/lib/{sequel-core → sequel}/schema.rb +0 -0
  43. data/lib/{sequel-core → sequel}/schema/schema_generator.rb +0 -0
  44. data/lib/{sequel-core → sequel}/schema/schema_sql.rb +0 -0
  45. data/lib/sequel/sqlite.rb +2 -186
  46. data/lib/{sequel-core → sequel}/worker.rb +0 -0
  47. data/spec/database_spec.rb +7 -9
  48. metadata +39 -29
File without changes
File without changes
File without changes
data/lib/sequel/sqlite.rb CHANGED
@@ -1,186 +1,2 @@
1
- if !Object.const_defined?('Sequel')
2
- require File.join(File.dirname(__FILE__), '../sequel')
3
- end
4
-
5
- require 'sqlite3'
6
-
7
- module Sequel
8
- module SQLite
9
- class Database < Sequel::Database
10
- set_adapter_scheme :sqlite
11
-
12
- def serial_primary_key_options
13
- {:primary_key => true, :type => :integer, :auto_increment => true}
14
- end
15
-
16
- def connect
17
- if @opts[:database].nil? || @opts[:database].empty?
18
- @opts[:database] = ':memory:'
19
- end
20
- db = ::SQLite3::Database.new(@opts[:database])
21
- db.type_translation = true
22
- # fix for timestamp translation
23
- db.translator.add_translator("timestamp") do |t, v|
24
- v =~ /^\d+$/ ? Time.at(v.to_i) : Time.parse(v)
25
- end
26
- db
27
- end
28
-
29
- def disconnect
30
- @pool.disconnect {|c| c.close}
31
- end
32
-
33
- def dataset(opts = nil)
34
- SQLite::Dataset.new(self, opts)
35
- end
36
-
37
- TABLES_FILTER = "type = 'table' AND NOT name = 'sqlite_sequence'"
38
-
39
- def tables
40
- self[:sqlite_master].filter(TABLES_FILTER).map {|r| r[:name].to_sym}
41
- end
42
-
43
- def execute(sql)
44
- @logger.info(sql) if @logger
45
- @pool.hold {|conn| conn.execute_batch(sql); conn.changes}
46
- end
47
-
48
- def execute_insert(sql)
49
- @logger.info(sql) if @logger
50
- @pool.hold {|conn| conn.execute(sql); conn.last_insert_row_id}
51
- end
52
-
53
- def single_value(sql)
54
- @logger.info(sql) if @logger
55
- @pool.hold {|conn| conn.get_first_value(sql)}
56
- end
57
-
58
- def execute_select(sql, &block)
59
- @logger.info(sql) if @logger
60
- @pool.hold {|conn| conn.query(sql, &block)}
61
- end
62
-
63
- def pragma_get(name)
64
- single_value("PRAGMA #{name}")
65
- end
66
-
67
- def pragma_set(name, value)
68
- execute("PRAGMA #{name} = #{value}")
69
- end
70
-
71
- AUTO_VACUUM = {'0' => :none, '1' => :full, '2' => :incremental}.freeze
72
-
73
- def auto_vacuum
74
- AUTO_VACUUM[pragma_get(:auto_vacuum)]
75
- end
76
-
77
- def auto_vacuum=(value)
78
- value = AUTO_VACUUM.index(value) || (raise SequelError, "Invalid value for auto_vacuum option. Please specify one of :none, :full, :incremental.")
79
- pragma_set(:auto_vacuum, value)
80
- end
81
-
82
- SYNCHRONOUS = {'0' => :off, '1' => :normal, '2' => :full}.freeze
83
-
84
- def synchronous
85
- SYNCHRONOUS[pragma_get(:synchronous)]
86
- end
87
-
88
- def synchronous=(value)
89
- value = SYNCHRONOUS.index(value) || (raise SequelError, "Invalid value for synchronous option. Please specify one of :off, :normal, :full.")
90
- pragma_set(:synchronous, value)
91
- end
92
-
93
- TEMP_STORE = {'0' => :default, '1' => :file, '2' => :memory}.freeze
94
-
95
- def temp_store
96
- TEMP_STORE[pragma_get(:temp_store)]
97
- end
98
-
99
- def temp_store=(value)
100
- value = TEMP_STORE.index(value) || (raise SequelError, "Invalid value for temp_store option. Please specify one of :default, :file, :memory.")
101
- pragma_set(:temp_store, value)
102
- end
103
-
104
- def transaction(&block)
105
- @pool.hold do |conn|
106
- if conn.transaction_active?
107
- return yield(conn)
108
- end
109
- begin
110
- result = nil
111
- conn.transaction {result = yield(conn)}
112
- result
113
- rescue => e
114
- raise e unless SequelRollbackError === e
115
- end
116
- end
117
- end
118
- end
119
-
120
- class Dataset < Sequel::Dataset
121
- def literal(v)
122
- case v
123
- when Time: literal(v.iso8601)
124
- else
125
- super
126
- end
127
- end
128
-
129
- def insert_sql(*values)
130
- if (values.size == 1) && values.first.is_a?(Sequel::Dataset)
131
- "INSERT INTO #{@opts[:from]} #{values.first.sql};"
132
- else
133
- super(*values)
134
- end
135
- end
136
-
137
- def fetch_rows(sql, &block)
138
- @db.execute_select(sql) do |result|
139
- @columns = result.columns.map {|c| c.to_sym}
140
- column_count = @columns.size
141
- result.each do |values|
142
- row = {}
143
- column_count.times {|i| row[@columns[i]] = values[i]}
144
- block.call(row)
145
- end
146
- end
147
- end
148
-
149
- def array_tuples_fetch_rows(sql, &block)
150
- @db.execute_select(sql) do |result|
151
- @columns = result.columns.map {|c| c.to_sym}
152
- result.each {|r| r.keys = @columns; block[r]}
153
- end
154
- end
155
-
156
- def insert(*values)
157
- @db.execute_insert insert_sql(*values)
158
- end
159
-
160
- def update(values, opts = nil)
161
- @db.execute update_sql(values, opts)
162
- end
163
-
164
- def delete(opts = nil)
165
- # check if no filter is specified
166
- unless (opts && opts[:where]) || @opts[:where]
167
- @db.transaction do
168
- unfiltered_count = count
169
- @db.execute delete_sql(opts)
170
- unfiltered_count
171
- end
172
- else
173
- @db.execute delete_sql(opts)
174
- end
175
- end
176
-
177
- EXPLAIN = 'EXPLAIN %s'.freeze
178
-
179
- def explain
180
- res = []
181
- @db.result_set(EXPLAIN % select_sql(opts), nil) {|r| res << r}
182
- res
183
- end
184
- end
185
- end
186
- end
1
+ warn "Requiring 'sequel/sqlite' is deprecated. Please modify your code to require 'sequel' instead."
2
+ require File.join(File.dirname(__FILE__), 'adapters/sqlite')
File without changes
@@ -375,9 +375,7 @@ context "A Database adapter with a scheme" do
375
375
  c.opts[:database].should == 'db'
376
376
  end
377
377
 
378
- specify "should register a convenience method on Sequel" do
379
- Sequel.should respond_to(:ccc)
380
-
378
+ specify "should be accessible through Sequel.<adapter>" do
381
379
  # invalid parameters
382
380
  proc {Sequel.ccc('abc', 'def')}.should raise_error(SequelError)
383
381
 
@@ -396,16 +394,16 @@ context "A Database adapter with a scheme" do
396
394
  end
397
395
 
398
396
  context "An unknown database scheme" do
399
- specify "should raise an exception in Sequel::Database.connect" do
400
- proc {Sequel::Database.connect('ddd://localhost/db')}.should raise_error(SequelError)
397
+ specify "should raise an error in Sequel::Database.connect" do
398
+ proc {Sequel::Database.connect('ddd://localhost/db')}.should raise_error(LoadError)
401
399
  end
402
400
 
403
- specify "should raise an exception in Sequel.connect" do
404
- proc {Sequel.connect('ddd://localhost/db')}.should raise_error(SequelError)
401
+ specify "should raise an error in Sequel.connect" do
402
+ proc {Sequel.connect('ddd://localhost/db')}.should raise_error(LoadError)
405
403
  end
406
404
 
407
- specify "should raise an exception in Sequel.open" do
408
- proc {Sequel.open('ddd://localhost/db')}.should raise_error(SequelError)
405
+ specify "should raise an error in Sequel.open" do
406
+ proc {Sequel.open('ddd://localhost/db')}.should raise_error(LoadError)
409
407
  end
410
408
  end
411
409
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2007-11-24 00:00:00 +02:00
12
+ date: 2007-11-25 00:00:00 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -54,6 +54,7 @@ files:
54
54
  - README
55
55
  - Rakefile
56
56
  - bin/sequel
57
+ - doc/rdoc
57
58
  - spec/adapters
58
59
  - spec/adapters/mysql_spec.rb
59
60
  - spec/adapters/oracle_spec.rb
@@ -74,42 +75,51 @@ files:
74
75
  - spec/spec_helper.rb
75
76
  - spec/worker_spec.rb
76
77
  - lib/sequel
78
+ - lib/sequel/adapters
79
+ - lib/sequel/adapters/ado.rb
80
+ - lib/sequel/adapters/db2.rb
81
+ - lib/sequel/adapters/dbi.rb
82
+ - lib/sequel/adapters/informix.rb
83
+ - lib/sequel/adapters/mysql.rb
84
+ - lib/sequel/adapters/odbc.rb
85
+ - lib/sequel/adapters/oracle.rb
86
+ - lib/sequel/adapters/postgres.rb
87
+ - lib/sequel/adapters/sqlite.rb
77
88
  - lib/sequel/ado.rb
89
+ - lib/sequel/array_keys.rb
90
+ - lib/sequel/connection_pool.rb
91
+ - lib/sequel/core_ext.rb
92
+ - lib/sequel/core_sql.rb
93
+ - lib/sequel/database.rb
94
+ - lib/sequel/dataset
95
+ - lib/sequel/dataset/convenience.rb
96
+ - lib/sequel/dataset/sequelizer.rb
97
+ - lib/sequel/dataset/sql.rb
98
+ - lib/sequel/dataset.rb
78
99
  - lib/sequel/db2.rb
79
100
  - lib/sequel/dbi.rb
101
+ - lib/sequel/error.rb
80
102
  - lib/sequel/informix.rb
103
+ - lib/sequel/migration.rb
104
+ - lib/sequel/model
105
+ - lib/sequel/model/base.rb
106
+ - lib/sequel/model/caching.rb
107
+ - lib/sequel/model/hooks.rb
108
+ - lib/sequel/model/record.rb
109
+ - lib/sequel/model/relations.rb
110
+ - lib/sequel/model/schema.rb
111
+ - lib/sequel/model.rb
81
112
  - lib/sequel/mysql.rb
82
113
  - lib/sequel/odbc.rb
83
114
  - lib/sequel/oracle.rb
84
115
  - lib/sequel/postgres.rb
116
+ - lib/sequel/pretty_table.rb
117
+ - lib/sequel/schema
118
+ - lib/sequel/schema/schema_generator.rb
119
+ - lib/sequel/schema/schema_sql.rb
120
+ - lib/sequel/schema.rb
85
121
  - lib/sequel/sqlite.rb
86
- - lib/sequel-core
87
- - lib/sequel-core/array_keys.rb
88
- - lib/sequel-core/connection_pool.rb
89
- - lib/sequel-core/core_ext.rb
90
- - lib/sequel-core/core_sql.rb
91
- - lib/sequel-core/database.rb
92
- - lib/sequel-core/dataset
93
- - lib/sequel-core/dataset/convenience.rb
94
- - lib/sequel-core/dataset/sequelizer.rb
95
- - lib/sequel-core/dataset/sql.rb
96
- - lib/sequel-core/dataset.rb
97
- - lib/sequel-core/error.rb
98
- - lib/sequel-core/migration.rb
99
- - lib/sequel-core/model
100
- - lib/sequel-core/model/base.rb
101
- - lib/sequel-core/model/caching.rb
102
- - lib/sequel-core/model/hooks.rb
103
- - lib/sequel-core/model/record.rb
104
- - lib/sequel-core/model/relations.rb
105
- - lib/sequel-core/model/schema.rb
106
- - lib/sequel-core/model.rb
107
- - lib/sequel-core/pretty_table.rb
108
- - lib/sequel-core/schema
109
- - lib/sequel-core/schema/schema_generator.rb
110
- - lib/sequel-core/schema/schema_sql.rb
111
- - lib/sequel-core/schema.rb
112
- - lib/sequel-core/worker.rb
122
+ - lib/sequel/worker.rb
113
123
  - lib/sequel.rb
114
124
  - CHANGELOG
115
125
  has_rdoc: true