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.
- data/COPYING +18 -18
- data/Rakefile +17 -98
- data/lib/sequel.rb +2 -71
- metadata +10 -108
- data/CHANGELOG +0 -989
- data/bin/sequel +0 -41
- data/lib/sequel/adapters/adapter_skeleton.rb +0 -68
- data/lib/sequel/adapters/ado.rb +0 -100
- data/lib/sequel/adapters/db2.rb +0 -158
- data/lib/sequel/adapters/dbi.rb +0 -126
- data/lib/sequel/adapters/informix.rb +0 -87
- data/lib/sequel/adapters/jdbc.rb +0 -108
- data/lib/sequel/adapters/mysql.rb +0 -269
- data/lib/sequel/adapters/odbc.rb +0 -145
- data/lib/sequel/adapters/odbc_mssql.rb +0 -93
- data/lib/sequel/adapters/openbase.rb +0 -90
- data/lib/sequel/adapters/oracle.rb +0 -99
- data/lib/sequel/adapters/postgres.rb +0 -519
- data/lib/sequel/adapters/sqlite.rb +0 -192
- data/lib/sequel/ado.rb +0 -6
- data/lib/sequel/array_keys.rb +0 -296
- data/lib/sequel/connection_pool.rb +0 -152
- data/lib/sequel/core_ext.rb +0 -59
- data/lib/sequel/core_sql.rb +0 -191
- data/lib/sequel/database.rb +0 -433
- data/lib/sequel/dataset.rb +0 -409
- data/lib/sequel/dataset/convenience.rb +0 -321
- data/lib/sequel/dataset/sequelizer.rb +0 -354
- data/lib/sequel/dataset/sql.rb +0 -586
- data/lib/sequel/db2.rb +0 -6
- data/lib/sequel/dbi.rb +0 -6
- data/lib/sequel/exceptions.rb +0 -45
- data/lib/sequel/informix.rb +0 -6
- data/lib/sequel/migration.rb +0 -191
- data/lib/sequel/model.rb +0 -8
- data/lib/sequel/mysql.rb +0 -6
- data/lib/sequel/odbc.rb +0 -6
- data/lib/sequel/oracle.rb +0 -6
- data/lib/sequel/postgres.rb +0 -6
- data/lib/sequel/pretty_table.rb +0 -73
- data/lib/sequel/schema.rb +0 -8
- data/lib/sequel/schema/schema_generator.rb +0 -131
- data/lib/sequel/schema/schema_sql.rb +0 -131
- data/lib/sequel/sqlite.rb +0 -6
- data/lib/sequel/worker.rb +0 -58
- data/spec/adapters/informix_spec.rb +0 -139
- data/spec/adapters/mysql_spec.rb +0 -330
- data/spec/adapters/oracle_spec.rb +0 -130
- data/spec/adapters/postgres_spec.rb +0 -189
- data/spec/adapters/sqlite_spec.rb +0 -345
- data/spec/array_keys_spec.rb +0 -679
- data/spec/connection_pool_spec.rb +0 -356
- data/spec/core_ext_spec.rb +0 -67
- data/spec/core_sql_spec.rb +0 -301
- data/spec/database_spec.rb +0 -811
- data/spec/dataset_spec.rb +0 -2381
- data/spec/migration_spec.rb +0 -261
- data/spec/pretty_table_spec.rb +0 -66
- data/spec/rcov.opts +0 -4
- data/spec/schema_generator_spec.rb +0 -86
- data/spec/schema_spec.rb +0 -230
- data/spec/sequel_spec.rb +0 -10
- data/spec/sequelizer_spec.rb +0 -389
- data/spec/spec.opts +0 -5
- data/spec/spec_helper.rb +0 -44
- data/spec/worker_spec.rb +0 -96
data/spec/sequel_spec.rb
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), 'spec_helper')
|
2
|
-
|
3
|
-
describe "Sequel::Model()" do
|
4
|
-
specify "should auto-load sequel_model and create a sequel model" do
|
5
|
-
db = Sequel::Database.new
|
6
|
-
Sequel::Model.instance_eval {@db = db}
|
7
|
-
c = Class.new(Sequel::Model(:items))
|
8
|
-
c.dataset.sql.should == "SELECT * FROM items"
|
9
|
-
end
|
10
|
-
end
|
data/spec/sequelizer_spec.rb
DELETED
@@ -1,389 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), 'spec_helper')
|
2
|
-
|
3
|
-
context "Proc#to_sql" do
|
4
|
-
DB = Sequel::Database.new
|
5
|
-
DS = DB[:items]
|
6
|
-
|
7
|
-
class ::Proc
|
8
|
-
def to_sql
|
9
|
-
DS.proc_to_sql(self)
|
10
|
-
end
|
11
|
-
|
12
|
-
def to_sql_comma_separated
|
13
|
-
DS.proc_to_sql(self, :comma_separated => true)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def DS.match_expr(l, r)
|
18
|
-
case r
|
19
|
-
when String
|
20
|
-
"(#{literal(l)} LIKE #{literal(r)})"
|
21
|
-
when Regexp
|
22
|
-
"(#{literal(l)} ~ #{literal(r.source)})"
|
23
|
-
else
|
24
|
-
raise Sequel::Error, "Unsupported match pattern class (#{r.class})."
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
specify "should support <sym> <op> <lit>" do
|
29
|
-
proc {:x > 100}.to_sql.should == '(x > 100)'
|
30
|
-
proc {:x < 100}.to_sql.should == '(x < 100)'
|
31
|
-
proc {:x >= 100}.to_sql.should == '(x >= 100)'
|
32
|
-
proc {:x <= 100}.to_sql.should == '(x <= 100)'
|
33
|
-
proc {:x == 100}.to_sql.should == '(x = 100)'
|
34
|
-
end
|
35
|
-
|
36
|
-
specify "should support number literals" do
|
37
|
-
proc {:x > 123.45}.to_sql.should == '(x > 123.45)'
|
38
|
-
proc {:x > -30_000}.to_sql.should == '(x > -30000)'
|
39
|
-
end
|
40
|
-
|
41
|
-
specify "should support string literals" do
|
42
|
-
proc {:x == 'abc'}.to_sql.should == "(x = 'abc')"
|
43
|
-
proc {:y == "ab'cd"}.to_sql.should == "(y = 'ab''cd')"
|
44
|
-
end
|
45
|
-
|
46
|
-
specify "should support boolean literals" do
|
47
|
-
proc {:x == false}.to_sql.should == "(x = 'f')"
|
48
|
-
proc {:x == true}.to_sql.should == "(x = 't')"
|
49
|
-
end
|
50
|
-
|
51
|
-
specify "should support nil literal and nil?" do
|
52
|
-
proc {:x == nil}.to_sql.should == "(x IS NULL)"
|
53
|
-
proc {:x.nil?}.to_sql.should == "(x IS NULL)"
|
54
|
-
end
|
55
|
-
|
56
|
-
specify "should support local vars or method references" do
|
57
|
-
proc {proc {:x == a}.to_sql}.should raise_error(NameError)
|
58
|
-
b = 123
|
59
|
-
proc {:x == b}.to_sql.should == "(x = 123)"
|
60
|
-
def xyz; 321; end
|
61
|
-
proc {:x == xyz}.to_sql.should == "(x = 321)"
|
62
|
-
proc {:x == xyz.to_s}.to_sql.should == "(x = '321')"
|
63
|
-
|
64
|
-
def y1(x); x; end
|
65
|
-
def y2; 111; end
|
66
|
-
|
67
|
-
proc {:x == y1(222)}.to_sql.should == "(x = 222)"
|
68
|
-
proc {:x == y2}.to_sql.should == "(x = 111)"
|
69
|
-
end
|
70
|
-
|
71
|
-
specify "sould support subscript access on symbols" do
|
72
|
-
proc {:x|1 > 0}.to_sql.should == "(x[1] > 0)"
|
73
|
-
proc {:x|2|3 > 0}.to_sql.should == "(x[2, 3] > 0)"
|
74
|
-
proc {:x|[4, 5] > 0}.to_sql.should == "(x[4, 5] > 0)"
|
75
|
-
end
|
76
|
-
|
77
|
-
specify "should support constants" do
|
78
|
-
ZZZ = 444
|
79
|
-
proc {:x == ZZZ}.to_sql.should == "(x = 444)"
|
80
|
-
|
81
|
-
CCCD = Module.new
|
82
|
-
CCCD::DDD = 'hi'
|
83
|
-
proc {:x == CCCD::DDD}.to_sql.should == "(x = 'hi')"
|
84
|
-
end
|
85
|
-
|
86
|
-
specify "should support instance attributes" do
|
87
|
-
@abc = 123
|
88
|
-
proc {:x == @abc}.to_sql.should == "(x = 123)"
|
89
|
-
end
|
90
|
-
|
91
|
-
specify "should support class attributes" do
|
92
|
-
@@abc = 321
|
93
|
-
proc {:x == @@abc}.to_sql.should == "(x = 321)"
|
94
|
-
end
|
95
|
-
|
96
|
-
specify "should support like? pattern" do
|
97
|
-
proc {:x.like? '%abc'}.to_sql.should == "(x LIKE '%abc')"
|
98
|
-
end
|
99
|
-
|
100
|
-
specify "should support =~ operator" do
|
101
|
-
# stock SQL version does not know about regexps
|
102
|
-
proc {:x =~ '123'}.to_sql.should == "(x LIKE '123')"
|
103
|
-
|
104
|
-
proc {:x =~ /^123/}.to_sql.should == "(x ~ '^123')"
|
105
|
-
end
|
106
|
-
|
107
|
-
specify "should raise on =~ operator for unsupported types" do
|
108
|
-
proc {proc {:x =~ 123}.to_sql}.should raise_error(Sequel::Error)
|
109
|
-
end
|
110
|
-
|
111
|
-
specify "should support != operator" do
|
112
|
-
proc {:x != 100}.to_sql.should == "(NOT (x = 100))"
|
113
|
-
end
|
114
|
-
|
115
|
-
specify "should support !~ operator" do
|
116
|
-
proc {:x !~ '123'}.to_sql.should == "(NOT (x LIKE '123'))"
|
117
|
-
end
|
118
|
-
|
119
|
-
specify "should support ! operator" do
|
120
|
-
proc {!:x}.to_sql.should == "(x = 'f')"
|
121
|
-
proc {!(:x > 100)}.to_sql.should == "(NOT (x > 100))"
|
122
|
-
end
|
123
|
-
|
124
|
-
specify "should support && operator" do
|
125
|
-
proc {1 && 2}.to_sql.should == "(1 AND 2)"
|
126
|
-
proc {:x > 100 && :y < 100}.to_sql.should == "((x > 100) AND (y < 100))"
|
127
|
-
proc {:x && :y && :z}.to_sql.should == "(x AND (y AND z))"
|
128
|
-
end
|
129
|
-
|
130
|
-
specify "should support << operator for assignment" do
|
131
|
-
proc {:x << 1}.to_sql.should == "x = 1"
|
132
|
-
end
|
133
|
-
|
134
|
-
specify "should concatenate separate statements using AND" do
|
135
|
-
proc {:x == 20; :y == 30}.to_sql.should == "((x = 20) AND (y = 30))"
|
136
|
-
proc {:x != 1; :y != 2; :z != 3}.to_sql.should == \
|
137
|
-
"((NOT (x = 1)) AND (NOT (y = 2)) AND (NOT (z = 3)))"
|
138
|
-
end
|
139
|
-
|
140
|
-
specify "should concatenate separate statements using custom join argument" do
|
141
|
-
proc {:x << 20; :y << 30}.to_sql_comma_separated.should == "x = 20, y = 30"
|
142
|
-
z = 333
|
143
|
-
proc {:x << :x + 1; :y << z}.to_sql_comma_separated.should == "x = (x + 1), y = 333"
|
144
|
-
end
|
145
|
-
|
146
|
-
specify "should support || operator" do
|
147
|
-
proc {1 || 2}.to_sql.should == "(1 OR 2)"
|
148
|
-
proc {:x > 100 || :y < 100}.to_sql.should == "((x > 100) OR (y < 100))"
|
149
|
-
proc {:x || :y || :z}.to_sql.should == "(x OR (y OR z))"
|
150
|
-
end
|
151
|
-
|
152
|
-
specify "should support operator combinations" do
|
153
|
-
proc {(:x > 1 || :y > 2) && (:z > 3)}.to_sql.should == "(((x > 1) OR (y > 2)) AND (z > 3))"
|
154
|
-
proc {(1 && 2) || (3 || 4)}.to_sql.should == "((1 AND 2) OR (3 OR 4))"
|
155
|
-
proc {(:x != 2) || (:y == 3) || !(:z == 4)}.to_sql.should == \
|
156
|
-
"((NOT (x = 2)) OR ((y = 3) OR (NOT (z = 4))))"
|
157
|
-
end
|
158
|
-
|
159
|
-
specify "should support late bound column references" do
|
160
|
-
def abc; :tttt; end
|
161
|
-
proc {abc > 2}.to_sql.should == "(tttt > 2)"
|
162
|
-
end
|
163
|
-
|
164
|
-
specify "should support qualified column references" do
|
165
|
-
proc {:x__y > 3}.to_sql.should == "(x.y > 3)"
|
166
|
-
end
|
167
|
-
|
168
|
-
specify "should support functions on columns" do
|
169
|
-
proc {:x.MAX > 100}.to_sql.should == "(max(x) > 100)"
|
170
|
-
proc {:x.COUNT > 100}.to_sql.should == "(count(x) > 100)"
|
171
|
-
end
|
172
|
-
|
173
|
-
specify "should support SQL functions" do
|
174
|
-
proc {:MAX[:x] > 100}.to_sql.should == "(MAX(x) > 100)"
|
175
|
-
|
176
|
-
proc {:MAX[:x__y] > 100}.to_sql.should == "(MAX(x.y) > 100)"
|
177
|
-
end
|
178
|
-
|
179
|
-
specify "should support SQL functions with multiple arguments" do
|
180
|
-
proc {:sum[1, 2, 3] > 100}.to_sql.should == "(sum(1, 2, 3) > 100)"
|
181
|
-
|
182
|
-
proc {:x[1, DB[:y].select(:z), "a'b"] > 100}.to_sql.should == \
|
183
|
-
"(x(1, (SELECT z FROM y), 'a''b') > 100)"
|
184
|
-
end
|
185
|
-
|
186
|
-
specify "should support SQL functions without arguments" do
|
187
|
-
proc {:abc[] > 100}.to_sql.should == "(abc() > 100)"
|
188
|
-
|
189
|
-
proc {:now[] - :last_stamp > 100}.to_sql.should == \
|
190
|
-
"((now() - last_stamp) > 100)"
|
191
|
-
end
|
192
|
-
|
193
|
-
specify "should do stuff like..." do
|
194
|
-
proc {:price < 100 || :category != 'ruby'}.to_sql.should == \
|
195
|
-
"((price < 100) OR (NOT (category = 'ruby')))"
|
196
|
-
t = Time.now
|
197
|
-
proc {:node_id == 1 && :stamp < t}.to_sql.should == \
|
198
|
-
"((node_id = 1) AND (stamp < #{DS.literal(t)}))"
|
199
|
-
|
200
|
-
proc {1 < :x}.to_sql.should == "(1 < x)"
|
201
|
-
end
|
202
|
-
|
203
|
-
specify "should complain if someone is crazy" do
|
204
|
-
proc {proc {def x; 1; end}.to_sql}.should raise_error(Sequel::Error::InvalidExpression)
|
205
|
-
a = 1
|
206
|
-
proc {proc {a = 1}.to_sql}.should raise_error(Sequel::Error::InvalidExpression)
|
207
|
-
end
|
208
|
-
|
209
|
-
specify "should support comparison to Range objects" do
|
210
|
-
proc {:x == (1..10)}.to_sql.should == \
|
211
|
-
"(x >= 1 AND x <= 10)"
|
212
|
-
|
213
|
-
proc {:x == (1...10)}.to_sql.should == \
|
214
|
-
"(x >= 1 AND x < 10)"
|
215
|
-
|
216
|
-
a, b = 3, 5
|
217
|
-
proc {:x == (a..b)}.to_sql.should == \
|
218
|
-
"(x >= 3 AND x <= 5)"
|
219
|
-
|
220
|
-
proc {:x == (a...b)}.to_sql.should == \
|
221
|
-
"(x >= 3 AND x < 5)"
|
222
|
-
|
223
|
-
t1 = Time.now - 4000
|
224
|
-
t2 = Time.now - 2000
|
225
|
-
|
226
|
-
proc {:stamp == (t1..t2)}.to_sql.should == \
|
227
|
-
"(stamp >= #{DS.literal(t1)} AND stamp <= #{DS.literal(t2)})"
|
228
|
-
end
|
229
|
-
|
230
|
-
specify "should support comparison to sub-queries" do
|
231
|
-
@ds2 = DB[:test].select(:node_id)
|
232
|
-
|
233
|
-
proc {:id == @ds2}.to_sql.should == \
|
234
|
-
"(id IN (SELECT node_id FROM test))"
|
235
|
-
|
236
|
-
proc {:id == DB[:test].select(:node_id)}.to_sql.should == \
|
237
|
-
"(id IN (SELECT node_id FROM test))"
|
238
|
-
|
239
|
-
proc {:id == DB[:test].select(:node_id).filter {:active == true}}.to_sql.should == \
|
240
|
-
"(id IN (SELECT node_id FROM test WHERE (active = 't')))"
|
241
|
-
|
242
|
-
proc {:price >= DB[:items].select(:price)}.to_sql.should == \
|
243
|
-
"(price >= (SELECT price FROM items))"
|
244
|
-
end
|
245
|
-
|
246
|
-
specify "should support comparison to arrays" do
|
247
|
-
proc {:id == [1, 3, 7, 15]}.to_sql.should == \
|
248
|
-
"(id IN (1, 3, 7, 15))"
|
249
|
-
end
|
250
|
-
|
251
|
-
specify "should not literalize String#expr and String#lit" do
|
252
|
-
proc {'x'.lit == 1}.to_sql.should == "(x = 1)"
|
253
|
-
proc {'x.y'.expr == 1}.to_sql.should == "(x.y = 1)"
|
254
|
-
end
|
255
|
-
|
256
|
-
specify "should support in/in? operator" do
|
257
|
-
proc {:x.in [3, 4, 5]}.to_sql.should == "(x IN (3, 4, 5))"
|
258
|
-
proc {:x.in?(3, 4, 5)}.to_sql.should == "(x IN (3, 4, 5))"
|
259
|
-
|
260
|
-
proc {:x.in(1..10)}.to_sql.should == "(x >= 1 AND x <= 10)"
|
261
|
-
proc {:x.in?(1..10)}.to_sql.should == "(x >= 1 AND x <= 10)"
|
262
|
-
|
263
|
-
@ds2 = DB[:test].select(:node_id)
|
264
|
-
proc {:x.in @ds2}.to_sql.should == "(x IN (SELECT node_id FROM test))"
|
265
|
-
end
|
266
|
-
|
267
|
-
specify "should support nested procs" do
|
268
|
-
proc {:x > 10 || proc{:y > 20}}.to_sql.should == \
|
269
|
-
"((x > 10) OR (y > 20))"
|
270
|
-
|
271
|
-
def pr(&block)
|
272
|
-
proc {:x > 10 || block}
|
273
|
-
end
|
274
|
-
|
275
|
-
pr {:y > 20}.to_sql.should == \
|
276
|
-
"((x > 10) OR (y > 20))"
|
277
|
-
end
|
278
|
-
|
279
|
-
specify "should support unfolding of calls to #each" do
|
280
|
-
# from http://groups.google.com/group/sequel-talk/browse_thread/thread/54a660568515fbb7
|
281
|
-
periods = [:day, :week, :month, :year, :alltime]
|
282
|
-
idx = 1
|
283
|
-
v = 2
|
284
|
-
pr = proc do
|
285
|
-
periods.each do |p|
|
286
|
-
(p|idx) << (p|idx) + v
|
287
|
-
end
|
288
|
-
end
|
289
|
-
pr.to_sql_comma_separated.should == \
|
290
|
-
"day[1] = (day[1] + 2), week[1] = (week[1] + 2), month[1] = (month[1] + 2), year[1] = (year[1] + 2), alltime[1] = (alltime[1] + 2)"
|
291
|
-
end
|
292
|
-
|
293
|
-
specify "should support unfolding of calls to Hash#each" do
|
294
|
-
periods = {:month => 3}
|
295
|
-
idx = 1
|
296
|
-
pr = proc do
|
297
|
-
periods.each do |k, v|
|
298
|
-
k << k + v
|
299
|
-
end
|
300
|
-
end
|
301
|
-
pr.to_sql_comma_separated.should == "month = (month + 3)"
|
302
|
-
end
|
303
|
-
|
304
|
-
specify "should support local arguments" do
|
305
|
-
def t(x)
|
306
|
-
proc {x > 10}.to_sql
|
307
|
-
end
|
308
|
-
t(:y).should == "(y > 10)"
|
309
|
-
end
|
310
|
-
|
311
|
-
specify "should support binary operators on local context" do
|
312
|
-
XXX = 1
|
313
|
-
YYY = 2
|
314
|
-
proc {XXX || YYY}.to_sql.should == "(1 OR 2)"
|
315
|
-
|
316
|
-
xxx = 1
|
317
|
-
yyy = 2
|
318
|
-
proc {xxx && yyy}.to_sql.should == "(1 AND 2)"
|
319
|
-
end
|
320
|
-
|
321
|
-
specify "should support arithmetics" do
|
322
|
-
zzz = 300
|
323
|
-
proc {(:x + 100) > zzz}.to_sql.should == "((x + 100) > 300)"
|
324
|
-
|
325
|
-
proc {(:x + :y * 100) > zzz}.to_sql.should == "((x + (y * 100)) > 300)"
|
326
|
-
|
327
|
-
proc {:units * :price}.to_sql.should == "(units * price)"
|
328
|
-
end
|
329
|
-
|
330
|
-
specify "should support | operator" do
|
331
|
-
proc {(:x | 1) > 0}.to_sql.should == "(x[1] > 0)"
|
332
|
-
proc {10 | 1}.to_sql.should == 11
|
333
|
-
end
|
334
|
-
|
335
|
-
specify "should support globals" do
|
336
|
-
$aaaa_zzzz = 400
|
337
|
-
proc {:x > $aaaa_zzzz}.to_sql.should == "(x > 400)"
|
338
|
-
end
|
339
|
-
|
340
|
-
specify "should support Regexp macros" do
|
341
|
-
"abc" =~ /(ab)/
|
342
|
-
proc {:x == $1}.to_sql.should == "(x = 'ab')"
|
343
|
-
end
|
344
|
-
|
345
|
-
specify "should evaluate expression not referring to symbols or literal strings." do
|
346
|
-
proc {:x > 2 * 3}.to_sql.should == "(x > 6)"
|
347
|
-
y = 3
|
348
|
-
proc {:x > y * 4}.to_sql.should == "(x > 12)"
|
349
|
-
|
350
|
-
proc {:AVG[:x] > 4}.to_sql.should == "(AVG(x) > 4)"
|
351
|
-
|
352
|
-
proc {:AVG[:x] > 4}.to_sql.should == "(AVG(x) > 4)"
|
353
|
-
|
354
|
-
proc {:y == (1 > 2)}.to_sql.should == "(y = 'f')"
|
355
|
-
end
|
356
|
-
|
357
|
-
specify "should support ternary operator" do
|
358
|
-
y = true
|
359
|
-
proc {:x > (y ? 1 : 2)}.to_sql.should == "(x > 1)"
|
360
|
-
|
361
|
-
proc {((1 > 2) ? :x : :y) > 3}.to_sql.should == "(y > 3)"
|
362
|
-
end
|
363
|
-
|
364
|
-
specify "should support strings with embedded Ruby code in them and literalize them" do
|
365
|
-
proc {:n == "#{1+2}"}.to_sql.should == "(n = '3')"
|
366
|
-
|
367
|
-
y = "12'34"
|
368
|
-
|
369
|
-
proc {:x > "#{y}"}.to_sql.should == "(x > '12''34')"
|
370
|
-
end
|
371
|
-
|
372
|
-
specify "should support format strings and literalize the result" do
|
373
|
-
prod = 1
|
374
|
-
proc {:x == "abc%d" % prod}.to_sql.should == "(x = 'abc1')"
|
375
|
-
|
376
|
-
proc {:x == ("%d" % prod).lit}.to_sql.should == "(x = 1)"
|
377
|
-
end
|
378
|
-
end
|
379
|
-
|
380
|
-
context "Proc#to_sql stock" do
|
381
|
-
specify "should not support regexps" do
|
382
|
-
db = Sequel::Database.new
|
383
|
-
ds = db[:items]
|
384
|
-
|
385
|
-
p = proc {:x =~ /abc/}
|
386
|
-
proc {ds.proc_to_sql(p)}.should raise_error(Sequel::Error)
|
387
|
-
end
|
388
|
-
end
|
389
|
-
|
data/spec/spec.opts
DELETED
data/spec/spec_helper.rb
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require File.join(File.dirname(__FILE__), "../lib/sequel")
|
3
|
-
|
4
|
-
class MockDataset < Sequel::Dataset
|
5
|
-
def insert(*args)
|
6
|
-
@db.execute insert_sql(*args)
|
7
|
-
end
|
8
|
-
|
9
|
-
def update(*args)
|
10
|
-
@db.execute update_sql(*args)
|
11
|
-
end
|
12
|
-
|
13
|
-
def fetch_rows(sql)
|
14
|
-
@db.execute(sql)
|
15
|
-
yield({:id => 1, :x => 1})
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
class MockDatabase < Sequel::Database
|
20
|
-
attr_reader :sqls
|
21
|
-
|
22
|
-
def execute(sql)
|
23
|
-
@sqls ||= []
|
24
|
-
@sqls << sql
|
25
|
-
end
|
26
|
-
|
27
|
-
def reset
|
28
|
-
@sqls = []
|
29
|
-
end
|
30
|
-
|
31
|
-
def transaction; yield; end
|
32
|
-
|
33
|
-
def dataset; MockDataset.new(self); end
|
34
|
-
end
|
35
|
-
|
36
|
-
class SchemaDummyDatabase < Sequel::Database
|
37
|
-
attr_reader :sqls
|
38
|
-
|
39
|
-
def execute(sql)
|
40
|
-
@sqls ||= []
|
41
|
-
@sqls << sql
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|