sequel 0.1.7 → 0.1.8

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.
@@ -0,0 +1,151 @@
1
+ require File.join(File.dirname(__FILE__), '../lib/sequel')
2
+
3
+ context "A Proc object containing a single comparison" do
4
+ setup do
5
+ @p1 = proc {a > 1}
6
+ @e = @p1.to_expressions
7
+ end
8
+
9
+ specify "should compile into an array containing a single expression" do
10
+ @e.should be_a_kind_of(Array)
11
+ @e.size.should == 1
12
+
13
+ expr = @e.first
14
+ expr.left.should == :a
15
+ expr.op.should == :gt
16
+ expr.right.should == 1
17
+ end
18
+ end
19
+
20
+ context "A Proc object containing numerous expressions" do
21
+ setup do
22
+ @p1 = proc {a > 1 && b < 5 && c <=> 4}
23
+ @e = @p1.to_expressions
24
+ end
25
+
26
+ specify "should compile into a list of expressions" do
27
+ @e.should be_a_kind_of(Array)
28
+ @e.size.should == 3
29
+
30
+ e1 = @e[0]
31
+ e1.left.should == :a
32
+ e1.op.should == :gt
33
+ e1.right.should == 1
34
+
35
+ e2 = @e[1]
36
+ e2.left.should == :b
37
+ e2.op.should == :lt
38
+ e2.right.should == 5
39
+
40
+ e3 = @e[2]
41
+ e3.left.should == :c
42
+ e3.op.should == :not
43
+ e3.right.should == 4
44
+ end
45
+ end
46
+
47
+ context "Expression" do
48
+ setup do
49
+ @e = Sequel::Dataset::Expression.new(:a)
50
+ end
51
+
52
+ specify "should support ==" do
53
+ @e == 3
54
+ @e.op.should == :eql
55
+ @e.right.should == 3
56
+ end
57
+
58
+ specify "should support <=> (!=)" do
59
+ @e <=> 3
60
+ @e.op.should == :not
61
+ @e.right.should == 3
62
+ end
63
+
64
+ specify "should support >" do
65
+ @e > 3
66
+ @e.op.should == :gt
67
+ @e.right.should == 3
68
+ end
69
+
70
+ specify "should support <" do
71
+ @e < 3
72
+ @e.op.should == :lt
73
+ @e.right.should == 3
74
+ end
75
+
76
+ specify "should support >=" do
77
+ @e >= 3
78
+ @e.op.should == :gte
79
+ @e.right.should == 3
80
+ end
81
+
82
+ specify "should support <=" do
83
+ @e <= 3
84
+ @e.op.should == :lte
85
+ @e.right.should == 3
86
+ end
87
+
88
+ specify "should support =~" do
89
+ @e =~ 3
90
+ @e.op.should == :like
91
+ @e.right.should == 3
92
+ end
93
+
94
+ specify "should support nil?" do
95
+ @e.nil?
96
+ @e.op.should == :eql
97
+ @e.right.should == nil
98
+ end
99
+
100
+ specify "should support in" do
101
+ @e.in 1..5
102
+ @e.op.should == :eql
103
+ @e.right.should == (1..5)
104
+ end
105
+
106
+ specify "should support in?" do
107
+ @e.in? 1..5
108
+ @e.op.should == :eql
109
+ @e.right.should == (1..5)
110
+ end
111
+
112
+ specify "should support like" do
113
+ @e.like "1028%"
114
+ @e.op.should == :like
115
+ @e.right.should == "1028%"
116
+ end
117
+
118
+ specify "should support like?" do
119
+ @e.like? "1028%"
120
+ @e.op.should == :like
121
+ @e.right.should == "1028%"
122
+ end
123
+
124
+ specify "should support is_not" do
125
+ @e.is_not 5
126
+ @e.op.should == :not
127
+ @e.right.should == 5
128
+ end
129
+
130
+ specify "should turn an unknown operator into a qualified field name" do
131
+ @e.id <=> 5
132
+ @e.left.should == 'a.id'
133
+ @e.op.should == :not
134
+ @e.right.should == 5
135
+ end
136
+ end
137
+
138
+ context "An invalid expression" do
139
+ specify "should raise a SequelError" do
140
+ proc {proc {abc < Object.vzxczs}.to_expressions}.should raise_error(SequelError)
141
+ end
142
+ end
143
+
144
+ context "Expressions" do
145
+ specify "should support SUM" do
146
+ e = proc {SUM(:test) >= 100}.to_expressions.first
147
+ e.left.should == 'sum(test)'
148
+ e.op.should == :gte
149
+ e.right.should == 100
150
+ end
151
+ end
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: sequel
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.1.7
7
- date: 2007-06-30 00:00:00 +03:00
6
+ version: 0.1.8
7
+ date: 2007-07-10 00:00:00 +03:00
8
8
  summary: Concise ORM for Ruby.
9
9
  require_paths:
10
10
  - lib
@@ -33,11 +33,19 @@ files:
33
33
  - README
34
34
  - Rakefile
35
35
  - bin/sequel
36
+ - spec/adapters
37
+ - spec/connection_pool_spec.rb
38
+ - spec/core_ext_spec.rb
39
+ - spec/database_spec.rb
40
+ - spec/dataset_spec.rb
41
+ - spec/expressions_spec.rb
42
+ - spec/adapters/sqlite_spec.rb
36
43
  - lib/sequel
37
44
  - lib/sequel.rb
38
45
  - lib/sequel/connection_pool.rb
39
46
  - lib/sequel/core_ext.rb
40
47
  - lib/sequel/database.rb
48
+ - lib/sequel/dataset
41
49
  - lib/sequel/dataset.rb
42
50
  - lib/sequel/dbi.rb
43
51
  - lib/sequel/error.rb
@@ -49,6 +57,8 @@ files:
49
57
  - lib/sequel/pretty_table.rb
50
58
  - lib/sequel/schema.rb
51
59
  - lib/sequel/sqlite.rb
60
+ - lib/sequel/dataset/dataset_convenience.rb
61
+ - lib/sequel/dataset/dataset_sql.rb
52
62
  - CHANGELOG
53
63
  test_files: []
54
64