sequel 0.0.15 → 0.0.16
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +12 -0
- data/Rakefile +1 -1
- data/lib/sequel/core_ext.rb +7 -0
- data/lib/sequel/database.rb +1 -0
- data/lib/sequel/dataset.rb +5 -1
- data/lib/sequel/model.rb +5 -2
- data/lib/sequel/mysql.rb +3 -0
- data/lib/sequel/postgres.rb +3 -0
- data/lib/sequel/sqlite.rb +2 -0
- metadata +2 -2
data/CHANGELOG
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
*0.0.16*
|
2
|
+
|
3
|
+
* Added support for subqueries in Dataset#literal.
|
4
|
+
|
5
|
+
* Added support for Model.all_by_XXX methods through Model.method_missing.
|
6
|
+
|
7
|
+
* Added basic SQL logging to Database.
|
8
|
+
|
9
|
+
* Added Enumerable#send_each convenience method.
|
10
|
+
|
11
|
+
* Changed Dataset#destroy to return the number of deleted records.
|
12
|
+
|
1
13
|
*0.0.15*
|
2
14
|
|
3
15
|
* Improved Dataset#insert_sql to allow arrays as well as hashes.
|
data/Rakefile
CHANGED
@@ -6,7 +6,7 @@ require 'fileutils'
|
|
6
6
|
include FileUtils
|
7
7
|
|
8
8
|
NAME = "sequel"
|
9
|
-
VERS = "0.0.
|
9
|
+
VERS = "0.0.16"
|
10
10
|
CLEAN.include ['**/.*.sw?', 'pkg/*', '.config', 'doc/*', 'coverage/*']
|
11
11
|
RDOC_OPTS = ['--quiet', '--title', "Sequel: Concise ORM for Ruby",
|
12
12
|
"--opname", "index.html",
|
data/lib/sequel/core_ext.rb
CHANGED
data/lib/sequel/database.rb
CHANGED
data/lib/sequel/dataset.rb
CHANGED
@@ -104,6 +104,7 @@ module Sequel
|
|
104
104
|
end
|
105
105
|
|
106
106
|
NULL = "NULL".freeze
|
107
|
+
SUBQUERY = "(%s)".freeze
|
107
108
|
|
108
109
|
# Returns a literal representation of a value to be used as part
|
109
110
|
# of an SQL expression. This method is overriden in descendants.
|
@@ -114,6 +115,7 @@ module Sequel
|
|
114
115
|
when NilClass: NULL
|
115
116
|
when Symbol: v.to_field_name
|
116
117
|
when Array: v.empty? ? NULL : v.map {|i| literal(i)}.join(COMMA_SEPARATOR)
|
118
|
+
when self.class: SUBQUERY % v.sql
|
117
119
|
else
|
118
120
|
raise "can't express #{v.inspect}:#{v.class} as a SQL literal"
|
119
121
|
end
|
@@ -421,7 +423,9 @@ module Sequel
|
|
421
423
|
def destroy
|
422
424
|
raise 'Dataset not associated with model' unless @record_class
|
423
425
|
|
424
|
-
|
426
|
+
count = 0
|
427
|
+
@db.transaction {each {|r| count += 1; r.destroy}}
|
428
|
+
count
|
425
429
|
end
|
426
430
|
|
427
431
|
def print(*columns)
|
data/lib/sequel/model.rb
CHANGED
@@ -202,6 +202,7 @@ module Sequel
|
|
202
202
|
|
203
203
|
FIND_BY_REGEXP = /^find_by_(.*)/.freeze
|
204
204
|
FILTER_BY_REGEXP = /^filter_by_(.*)/.freeze
|
205
|
+
ALL_BY_REGEXP = /^all_by_(.*)/.freeze
|
205
206
|
|
206
207
|
def self.method_missing(m, *args)
|
207
208
|
Thread.exclusive do
|
@@ -209,13 +210,15 @@ module Sequel
|
|
209
210
|
if method_name =~ FIND_BY_REGEXP
|
210
211
|
c = $1
|
211
212
|
meta_def(method_name) {|arg| find(c => arg)}
|
212
|
-
send(m, *args) if respond_to?(m)
|
213
213
|
elsif method_name =~ FILTER_BY_REGEXP
|
214
214
|
c = $1
|
215
215
|
meta_def(method_name) {|arg| filter(c => arg)}
|
216
|
-
|
216
|
+
elsif method_name =~ ALL_BY_REGEXP
|
217
|
+
c = $1
|
218
|
+
meta_def(method_name) {|arg| filter(c => arg).all}
|
217
219
|
end
|
218
220
|
end
|
221
|
+
respond_to?(m) ? send(m, *args) : super(m, *args)
|
219
222
|
end
|
220
223
|
|
221
224
|
def db; self.class.db; end
|
data/lib/sequel/mysql.rb
CHANGED
@@ -23,12 +23,14 @@ module Sequel
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def execute(sql)
|
26
|
+
@logger.info(sql) if @logger
|
26
27
|
@pool.hold do |conn|
|
27
28
|
conn.query(sql)
|
28
29
|
end
|
29
30
|
end
|
30
31
|
|
31
32
|
def execute_insert(sql)
|
33
|
+
@logger.info(sql) if @logger
|
32
34
|
@pool.hold do |conn|
|
33
35
|
conn.query(sql)
|
34
36
|
conn.insert_id
|
@@ -36,6 +38,7 @@ module Sequel
|
|
36
38
|
end
|
37
39
|
|
38
40
|
def execute_affected(sql)
|
41
|
+
@logger.info(sql) if @logger
|
39
42
|
@pool.hold do |conn|
|
40
43
|
conn.query(sql)
|
41
44
|
conn.affected_rows
|
data/lib/sequel/postgres.rb
CHANGED
@@ -188,14 +188,17 @@ module Sequel
|
|
188
188
|
end
|
189
189
|
|
190
190
|
def execute(sql)
|
191
|
+
@logger.info(sql) if @logger
|
191
192
|
@pool.hold {|conn| conn.execute(sql)}
|
192
193
|
end
|
193
194
|
|
194
195
|
def execute_and_forget(sql)
|
196
|
+
@logger.info(sql) if @logger
|
195
197
|
@pool.hold {|conn| conn.execute(sql).clear}
|
196
198
|
end
|
197
199
|
|
198
200
|
def execute_insert(sql, table)
|
201
|
+
@logger.info(sql) if @logger
|
199
202
|
@pool.hold do |conn|
|
200
203
|
conn.execute(sql).clear
|
201
204
|
conn.last_insert_id(table)
|
data/lib/sequel/sqlite.rb
CHANGED
@@ -30,10 +30,12 @@ module Sequel
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def execute(sql)
|
33
|
+
@logger.info(sql) if @logger
|
33
34
|
@pool.hold {|conn| conn.execute(sql)}
|
34
35
|
end
|
35
36
|
|
36
37
|
def execute_insert(sql)
|
38
|
+
@logger.info(sql) if @logger
|
37
39
|
@pool.hold {|conn| conn.execute(sql); conn.last_insert_row_id}
|
38
40
|
end
|
39
41
|
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: sequel
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.0.
|
7
|
-
date: 2007-
|
6
|
+
version: 0.0.16
|
7
|
+
date: 2007-04-08 00:00:00 +03:00
|
8
8
|
summary: Concise ORM for Ruby.
|
9
9
|
require_paths:
|
10
10
|
- lib
|