sequel 0.3.1 → 0.3.2
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/CHANGELOG +28 -0
- data/Rakefile +1 -1
- data/lib/sequel/ado.rb +12 -5
- data/lib/sequel/array_keys.rb +61 -2
- data/lib/sequel/connection_pool.rb +6 -0
- data/lib/sequel/core_ext.rb +18 -14
- data/lib/sequel/database.rb +40 -4
- data/lib/sequel/dataset.rb +9 -3
- data/lib/sequel/dataset/convenience.rb +66 -19
- data/lib/sequel/dataset/sequelizer.rb +4 -4
- data/lib/sequel/dataset/sql.rb +41 -42
- data/lib/sequel/db2.rb +160 -0
- data/lib/sequel/dbi.rb +1 -1
- data/lib/sequel/error.rb +11 -0
- data/lib/sequel/model.rb +28 -22
- data/lib/sequel/model/record.rb +3 -1
- data/lib/sequel/mysql.rb +9 -9
- data/lib/sequel/odbc.rb +1 -1
- data/lib/sequel/oracle.rb +2 -2
- data/lib/sequel/postgres.rb +18 -20
- data/lib/sequel/pretty_table.rb +2 -2
- data/lib/sequel/schema/schema_sql.rb +3 -3
- data/lib/sequel/sqlite.rb +4 -0
- data/spec/adapters/mysql_spec.rb +1 -1
- data/spec/adapters/sqlite_spec.rb +8 -0
- data/spec/core_ext_spec.rb +23 -23
- data/spec/dataset_spec.rb +204 -19
- data/spec/model_spec.rb +71 -1
- data/spec/schema_generator_spec.rb +3 -3
- metadata +4 -3
- data/lib/sequel/expressions.rb +0 -76
data/spec/dataset_spec.rb
CHANGED
@@ -109,13 +109,13 @@ context "A simple dataset" do
|
|
109
109
|
@dataset.insert_sql({}).should == "INSERT INTO test DEFAULT VALUES;"
|
110
110
|
end
|
111
111
|
|
112
|
-
specify "should format an insert statement with array
|
112
|
+
specify "should format an insert statement with array with keys" do
|
113
113
|
v = [1, 2, 3]
|
114
|
-
v.
|
114
|
+
v.keys = [:a, :b, :c]
|
115
115
|
@dataset.insert_sql(v).should == "INSERT INTO test (a, b, c) VALUES (1, 2, 3);"
|
116
116
|
|
117
117
|
v = []
|
118
|
-
v.
|
118
|
+
v.keys = [:a, :b]
|
119
119
|
@dataset.insert_sql(v).should == "INSERT INTO test DEFAULT VALUES;"
|
120
120
|
end
|
121
121
|
|
@@ -155,9 +155,9 @@ context "A simple dataset" do
|
|
155
155
|
"UPDATE test SET name = 'abc'"
|
156
156
|
end
|
157
157
|
|
158
|
-
specify "should format an update statement with array
|
158
|
+
specify "should format an update statement with array with keys" do
|
159
159
|
v = ['abc']
|
160
|
-
v.
|
160
|
+
v.keys = [:name]
|
161
161
|
|
162
162
|
@dataset.update_sql(v).should == "UPDATE test SET name = 'abc'"
|
163
163
|
end
|
@@ -458,7 +458,7 @@ context "Dataset#having" do
|
|
458
458
|
@grouped = @dataset.group(:region).select(:region, :population.SUM, :gdp.AVG)
|
459
459
|
@d1 = @grouped.having('sum(population) > 10')
|
460
460
|
@d2 = @grouped.having(:region => 'Asia')
|
461
|
-
@
|
461
|
+
@columns = "region, sum(population), avg(gdp)"
|
462
462
|
end
|
463
463
|
|
464
464
|
specify "should raise if the dataset is not grouped" do
|
@@ -467,12 +467,12 @@ context "Dataset#having" do
|
|
467
467
|
|
468
468
|
specify "should affect select statements" do
|
469
469
|
@d1.select_sql.should ==
|
470
|
-
"SELECT #{@
|
470
|
+
"SELECT #{@columns} FROM test GROUP BY region HAVING sum(population) > 10"
|
471
471
|
end
|
472
472
|
|
473
473
|
specify "should support proc expressions" do
|
474
474
|
@grouped.having {:sum[:population] > 10}.sql.should ==
|
475
|
-
"SELECT #{@
|
475
|
+
"SELECT #{@columns} FROM test GROUP BY region HAVING (sum(population) > 10)"
|
476
476
|
end
|
477
477
|
end
|
478
478
|
|
@@ -789,19 +789,19 @@ context "Dataset#naked" do
|
|
789
789
|
end
|
790
790
|
end
|
791
791
|
|
792
|
-
context "Dataset#
|
792
|
+
context "Dataset#qualified_column_name" do
|
793
793
|
setup do
|
794
794
|
@dataset = Sequel::Dataset.new(nil).from(:test)
|
795
795
|
end
|
796
796
|
|
797
797
|
specify "should return the same if already qualified" do
|
798
|
-
@dataset.
|
799
|
-
@dataset.
|
798
|
+
@dataset.qualified_column_name('test.a', :items).should == 'test.a'
|
799
|
+
@dataset.qualified_column_name(:ccc__b, :items).should == 'ccc.b'
|
800
800
|
end
|
801
801
|
|
802
|
-
specify "should qualify the
|
803
|
-
@dataset.
|
804
|
-
@dataset.
|
802
|
+
specify "should qualify the column with the supplied table name" do
|
803
|
+
@dataset.qualified_column_name('a', :items).should == 'items.a'
|
804
|
+
@dataset.qualified_column_name(:b1, :items).should == 'items.b1'
|
805
805
|
end
|
806
806
|
end
|
807
807
|
|
@@ -825,7 +825,7 @@ context "Dataset#map" do
|
|
825
825
|
@d.map {|n| n[:a] + n[:b]}.should == [3, 7, 11]
|
826
826
|
end
|
827
827
|
|
828
|
-
specify "should map using #[
|
828
|
+
specify "should map using #[column name] if column name is given" do
|
829
829
|
@d.map(:a).should == [1, 3, 5]
|
830
830
|
end
|
831
831
|
|
@@ -839,7 +839,7 @@ context "Dataset#to_hash" do
|
|
839
839
|
@d = DummyDataset.new(nil).from(:items)
|
840
840
|
end
|
841
841
|
|
842
|
-
specify "should provide a hash with the first
|
842
|
+
specify "should provide a hash with the first column as key and the second as value" do
|
843
843
|
@d.to_hash(:a, :b).should == {1 => 2, 3 => 4, 5 => 6}
|
844
844
|
@d.to_hash(:b, :a).should == {2 => 1, 4 => 3, 6 => 5}
|
845
845
|
end
|
@@ -889,6 +889,26 @@ context "Dataset#count" do
|
|
889
889
|
end
|
890
890
|
end
|
891
891
|
|
892
|
+
|
893
|
+
context "Dataset#group_and_count" do
|
894
|
+
setup do
|
895
|
+
@c = Class.new(Sequel::Dataset) do
|
896
|
+
def self.sql
|
897
|
+
@@sql
|
898
|
+
end
|
899
|
+
|
900
|
+
def fetch_rows(sql)
|
901
|
+
@@sql = sql
|
902
|
+
yield({1 => 1})
|
903
|
+
end
|
904
|
+
end
|
905
|
+
@ds = @c.new(nil).from(:test)
|
906
|
+
end
|
907
|
+
|
908
|
+
specify "should format SQL properly" do
|
909
|
+
@ds.group_and_count(:name).sql.should == "SELECT name, count(name) AS count FROM test GROUP BY name ORDER BY count"
|
910
|
+
end
|
911
|
+
end
|
892
912
|
context "Dataset#empty?" do
|
893
913
|
specify "should return true if #count == 0" do
|
894
914
|
@c = Class.new(Sequel::Dataset) do
|
@@ -1025,6 +1045,28 @@ context "Dataset#[]=" do
|
|
1025
1045
|
end
|
1026
1046
|
end
|
1027
1047
|
|
1048
|
+
context "Dataset#set" do
|
1049
|
+
setup do
|
1050
|
+
c = Class.new(Sequel::Dataset) do
|
1051
|
+
def last_sql
|
1052
|
+
@@last_sql
|
1053
|
+
end
|
1054
|
+
|
1055
|
+
def update(*args)
|
1056
|
+
@@last_sql = update_sql(*args)
|
1057
|
+
end
|
1058
|
+
end
|
1059
|
+
|
1060
|
+
@d = c.new(nil).from(:items)
|
1061
|
+
end
|
1062
|
+
|
1063
|
+
specify "should act as alis to #update" do
|
1064
|
+
@d.set({:x => 3})
|
1065
|
+
@d.last_sql.should == 'UPDATE items SET x = 3'
|
1066
|
+
end
|
1067
|
+
end
|
1068
|
+
|
1069
|
+
|
1028
1070
|
context "Dataset#insert_multiple" do
|
1029
1071
|
setup do
|
1030
1072
|
c = Class.new(Sequel::Dataset) do
|
@@ -1076,11 +1118,69 @@ context "Dataset aggregate methods" do
|
|
1076
1118
|
@d.avg(:d).should == 'SELECT avg(d) AS v FROM test'
|
1077
1119
|
end
|
1078
1120
|
|
1079
|
-
specify "should accept qualified
|
1121
|
+
specify "should accept qualified columns" do
|
1080
1122
|
@d.avg(:test__bc).should == 'SELECT avg(test.bc) AS v FROM test'
|
1081
1123
|
end
|
1082
1124
|
end
|
1083
1125
|
|
1126
|
+
context "Dataset#range" do
|
1127
|
+
setup do
|
1128
|
+
c = Class.new(Sequel::Dataset) do
|
1129
|
+
@@sql = nil
|
1130
|
+
|
1131
|
+
def last_sql; @@sql; end
|
1132
|
+
|
1133
|
+
def fetch_rows(sql)
|
1134
|
+
@@sql = sql
|
1135
|
+
yield(:v1 => 1, :v2 => 10)
|
1136
|
+
end
|
1137
|
+
end
|
1138
|
+
@d = c.new(nil).from(:test)
|
1139
|
+
end
|
1140
|
+
|
1141
|
+
specify "should generate a correct SQL statement" do
|
1142
|
+
@d.range(:stamp)
|
1143
|
+
@d.last_sql.should == "SELECT min(stamp) AS v1, max(stamp) AS v2 FROM test LIMIT 1"
|
1144
|
+
|
1145
|
+
@d.filter {:price > 100}.range(:stamp)
|
1146
|
+
@d.last_sql.should == "SELECT min(stamp) AS v1, max(stamp) AS v2 FROM test WHERE (price > 100) LIMIT 1"
|
1147
|
+
end
|
1148
|
+
|
1149
|
+
specify "should return a range object" do
|
1150
|
+
@d.range(:tryme).should == (1..10)
|
1151
|
+
@d.last_sql.should == "SELECT min(tryme) AS v1, max(tryme) AS v2 FROM test LIMIT 1"
|
1152
|
+
end
|
1153
|
+
end
|
1154
|
+
|
1155
|
+
context "Dataset#range" do
|
1156
|
+
setup do
|
1157
|
+
c = Class.new(Sequel::Dataset) do
|
1158
|
+
@@sql = nil
|
1159
|
+
|
1160
|
+
def last_sql; @@sql; end
|
1161
|
+
|
1162
|
+
def fetch_rows(sql)
|
1163
|
+
@@sql = sql
|
1164
|
+
yield(:v => 1234)
|
1165
|
+
end
|
1166
|
+
end
|
1167
|
+
@d = c.new(nil).from(:test)
|
1168
|
+
end
|
1169
|
+
|
1170
|
+
specify "should generate a correct SQL statement" do
|
1171
|
+
@d.interval(:stamp)
|
1172
|
+
@d.last_sql.should == "SELECT (max(stamp) - min(stamp)) AS v FROM test LIMIT 1"
|
1173
|
+
|
1174
|
+
@d.filter {:price > 100}.interval(:stamp)
|
1175
|
+
@d.last_sql.should == "SELECT (max(stamp) - min(stamp)) AS v FROM test WHERE (price > 100) LIMIT 1"
|
1176
|
+
end
|
1177
|
+
|
1178
|
+
specify "should return a range object" do
|
1179
|
+
@d.interval(:tryme).should == 1234
|
1180
|
+
@d.last_sql.should == "SELECT (max(tryme) - min(tryme)) AS v FROM test LIMIT 1"
|
1181
|
+
end
|
1182
|
+
end
|
1183
|
+
|
1084
1184
|
context "Dataset#first" do
|
1085
1185
|
setup do
|
1086
1186
|
@c = Class.new(Sequel::Dataset) do
|
@@ -2023,6 +2123,10 @@ context "Dataset#transform" do
|
|
2023
2123
|
@ds.each(:naked => true) {|r| f = r}
|
2024
2124
|
f.should == {:x => "wow", :y => 'hello'}
|
2025
2125
|
end
|
2126
|
+
|
2127
|
+
specify "should return self" do
|
2128
|
+
@ds.transform(:x => :marshal).should be(@ds)
|
2129
|
+
end
|
2026
2130
|
end
|
2027
2131
|
|
2028
2132
|
context "Dataset#to_csv" do
|
@@ -2033,7 +2137,7 @@ context "Dataset#to_csv" do
|
|
2033
2137
|
|
2034
2138
|
def fetch_rows(sql, &block)
|
2035
2139
|
@columns = @cols
|
2036
|
-
@data.each {|r| r.
|
2140
|
+
@data.each {|r| r.keys = @columns; block[r]}
|
2037
2141
|
end
|
2038
2142
|
|
2039
2143
|
# naked should return self here because to_csv wants a naked result set.
|
@@ -2066,7 +2170,7 @@ context "Dataset#each_hash" do
|
|
2066
2170
|
@c = Class.new(Sequel::Dataset) do
|
2067
2171
|
def each(&block)
|
2068
2172
|
a = [[1, 2, 3], [4, 5, 6]]
|
2069
|
-
a.each {|r| r.
|
2173
|
+
a.each {|r| r.keys = [:a, :b, :c]; block[r]}
|
2070
2174
|
end
|
2071
2175
|
end
|
2072
2176
|
|
@@ -2078,4 +2182,85 @@ context "Dataset#each_hash" do
|
|
2078
2182
|
@ds.each_hash {|h| hashes << h}
|
2079
2183
|
hashes.should == [{:a => 1, :b => 2, :c => 3}, {:a => 4, :b => 5, :c => 6}]
|
2080
2184
|
end
|
2185
|
+
end
|
2186
|
+
|
2187
|
+
context "Dataset magic methods" do
|
2188
|
+
setup do
|
2189
|
+
@c = Class.new(Sequel::Dataset) do
|
2190
|
+
@@sqls = []
|
2191
|
+
|
2192
|
+
def self.sqls; @@sqls; end
|
2193
|
+
|
2194
|
+
def fetch_rows(sql)
|
2195
|
+
@@sqls << sql
|
2196
|
+
yield({:a => 1, :b => 2})
|
2197
|
+
end
|
2198
|
+
end
|
2199
|
+
|
2200
|
+
@ds = @c.new(nil).from(:items)
|
2201
|
+
end
|
2202
|
+
|
2203
|
+
specify "should support order_by_xxx" do
|
2204
|
+
@ds.should_not respond_to(:order_by_name)
|
2205
|
+
proc {@ds.order_by_name}.should_not raise_error
|
2206
|
+
@ds.should respond_to(:order_by_name)
|
2207
|
+
@ds.order_by_name.should be_a_kind_of(@c)
|
2208
|
+
@ds.order_by_name.sql.should == "SELECT * FROM items ORDER BY name"
|
2209
|
+
end
|
2210
|
+
|
2211
|
+
specify "should support group_by_xxx" do
|
2212
|
+
@ds.should_not respond_to(:group_by_name)
|
2213
|
+
proc {@ds.group_by_name}.should_not raise_error
|
2214
|
+
@ds.should respond_to(:group_by_name)
|
2215
|
+
@ds.group_by_name.should be_a_kind_of(@c)
|
2216
|
+
@ds.group_by_name.sql.should == "SELECT * FROM items GROUP BY name"
|
2217
|
+
end
|
2218
|
+
|
2219
|
+
specify "should support count_by_xxx" do
|
2220
|
+
@ds.should_not respond_to(:count_by_name)
|
2221
|
+
proc {@ds.count_by_name}.should_not raise_error
|
2222
|
+
@ds.should respond_to(:count_by_name)
|
2223
|
+
@ds.count_by_name.should be_a_kind_of(@c)
|
2224
|
+
@ds.count_by_name.sql.should == "SELECT name, count(name) AS count FROM items GROUP BY name ORDER BY count"
|
2225
|
+
end
|
2226
|
+
|
2227
|
+
specify "should support filter_by_xxx" do
|
2228
|
+
@ds.should_not respond_to(:filter_by_name)
|
2229
|
+
proc {@ds.filter_by_name('sharon')}.should_not raise_error
|
2230
|
+
@ds.should respond_to(:filter_by_name)
|
2231
|
+
@ds.filter_by_name('sharon').should be_a_kind_of(@c)
|
2232
|
+
@ds.filter_by_name('sharon').sql.should == "SELECT * FROM items WHERE (name = 'sharon')"
|
2233
|
+
end
|
2234
|
+
|
2235
|
+
specify "should support all_by_xxx" do
|
2236
|
+
@ds.should_not respond_to(:all_by_name)
|
2237
|
+
proc {@ds.all_by_name('sharon')}.should_not raise_error
|
2238
|
+
@ds.should respond_to(:all_by_name)
|
2239
|
+
@ds.all_by_name('sharon').should == [{:a => 1, :b => 2}]
|
2240
|
+
@c.sqls.should == ["SELECT * FROM items WHERE (name = 'sharon')"] * 2
|
2241
|
+
end
|
2242
|
+
|
2243
|
+
specify "should support find_by_xxx" do
|
2244
|
+
@ds.should_not respond_to(:find_by_name)
|
2245
|
+
proc {@ds.find_by_name('sharon')}.should_not raise_error
|
2246
|
+
@ds.should respond_to(:find_by_name)
|
2247
|
+
@ds.find_by_name('sharon').should == {:a => 1, :b => 2}
|
2248
|
+
@c.sqls.should == ["SELECT * FROM items WHERE (name = 'sharon') LIMIT 1"] * 2
|
2249
|
+
end
|
2250
|
+
|
2251
|
+
specify "should support first_by_xxx" do
|
2252
|
+
@ds.should_not respond_to(:first_by_name)
|
2253
|
+
proc {@ds.first_by_name('sharon')}.should_not raise_error
|
2254
|
+
@ds.should respond_to(:first_by_name)
|
2255
|
+
@ds.first_by_name('sharon').should == {:a => 1, :b => 2}
|
2256
|
+
@c.sqls.should == ["SELECT * FROM items ORDER BY name LIMIT 1"] * 2
|
2257
|
+
end
|
2258
|
+
|
2259
|
+
specify "should support last_by_xxx" do
|
2260
|
+
@ds.should_not respond_to(:last_by_name)
|
2261
|
+
proc {@ds.last_by_name('sharon')}.should_not raise_error
|
2262
|
+
@ds.should respond_to(:last_by_name)
|
2263
|
+
@ds.last_by_name('sharon').should == {:a => 1, :b => 2}
|
2264
|
+
@c.sqls.should == ["SELECT * FROM items ORDER BY name DESC LIMIT 1"] * 2
|
2265
|
+
end
|
2081
2266
|
end
|
data/spec/model_spec.rb
CHANGED
@@ -968,5 +968,75 @@ context "A Model constructor" do
|
|
968
968
|
m.should be_new
|
969
969
|
end
|
970
970
|
|
971
|
-
specify "should "
|
971
|
+
specify "should accept a block and yield itself to the block" do
|
972
|
+
block_called = false
|
973
|
+
m = @m.new {|i| block_called = true; i.should be_a_kind_of(@m); i.values[:a] = 1}
|
974
|
+
|
975
|
+
block_called.should be_true
|
976
|
+
m.values[:a].should == 1
|
977
|
+
end
|
978
|
+
end
|
979
|
+
|
980
|
+
context "Model magic methods" do
|
981
|
+
setup do
|
982
|
+
@c = Class.new(Sequel::Dataset) do
|
983
|
+
@@sqls = []
|
984
|
+
|
985
|
+
def self.sqls; @@sqls; end
|
986
|
+
|
987
|
+
def fetch_rows(sql)
|
988
|
+
@@sqls << sql
|
989
|
+
yield({:id => 123, :name => 'hey'})
|
990
|
+
end
|
991
|
+
end
|
992
|
+
|
993
|
+
@m = Class.new(Sequel::Model(@c.new(nil).from(:items)))
|
994
|
+
end
|
995
|
+
|
996
|
+
specify "should support order_by_xxx" do
|
997
|
+
@m.order_by_name.should be_a_kind_of(@c)
|
998
|
+
@m.order_by_name.sql.should == "SELECT * FROM items ORDER BY name"
|
999
|
+
end
|
1000
|
+
|
1001
|
+
specify "should support group_by_xxx" do
|
1002
|
+
@m.group_by_name.should be_a_kind_of(@c)
|
1003
|
+
@m.group_by_name.sql.should == "SELECT * FROM items GROUP BY name"
|
1004
|
+
end
|
1005
|
+
|
1006
|
+
specify "should support count_by_xxx" do
|
1007
|
+
@m.count_by_name.should be_a_kind_of(@c)
|
1008
|
+
@m.count_by_name.sql.should == "SELECT name, count(name) AS count FROM items GROUP BY name ORDER BY count"
|
1009
|
+
end
|
1010
|
+
|
1011
|
+
specify "should support filter_by_xxx" do
|
1012
|
+
@m.filter_by_name('sharon').should be_a_kind_of(@c)
|
1013
|
+
@m.filter_by_name('sharon').sql.should == "SELECT * FROM items WHERE (name = 'sharon')"
|
1014
|
+
end
|
1015
|
+
|
1016
|
+
specify "should support all_by_xxx" do
|
1017
|
+
all = @m.all_by_name('sharon')
|
1018
|
+
all.class.should == Array
|
1019
|
+
all.size.should == 1
|
1020
|
+
all.first.should be_a_kind_of(@m)
|
1021
|
+
all.first.values.should == {:id => 123, :name => 'hey'}
|
1022
|
+
@c.sqls.should == ["SELECT * FROM items WHERE (name = 'sharon')"]
|
1023
|
+
end
|
1024
|
+
|
1025
|
+
specify "should support find_by_xxx" do
|
1026
|
+
@m.find_by_name('sharon').should be_a_kind_of(@m)
|
1027
|
+
@m.find_by_name('sharon').values.should == {:id => 123, :name => 'hey'}
|
1028
|
+
@c.sqls.should == ["SELECT * FROM items WHERE (name = 'sharon') LIMIT 1"] * 2
|
1029
|
+
end
|
1030
|
+
|
1031
|
+
specify "should support first_by_xxx" do
|
1032
|
+
@m.first_by_name('sharon').should be_a_kind_of(@m)
|
1033
|
+
@m.first_by_name('sharon').values.should == {:id => 123, :name => 'hey'}
|
1034
|
+
@c.sqls.should == ["SELECT * FROM items ORDER BY name LIMIT 1"] * 2
|
1035
|
+
end
|
1036
|
+
|
1037
|
+
specify "should support last_by_xxx" do
|
1038
|
+
@m.last_by_name('sharon').should be_a_kind_of(@m)
|
1039
|
+
@m.last_by_name('sharon').values.should == {:id => 123, :name => 'hey'}
|
1040
|
+
@c.sqls.should == ["SELECT * FROM items ORDER BY name DESC LIMIT 1"] * 2
|
1041
|
+
end
|
972
1042
|
end
|
@@ -13,9 +13,9 @@ describe Sequel::Schema::Generator do
|
|
13
13
|
@table_name, @columns, @indexes = @generator.create_info
|
14
14
|
end
|
15
15
|
|
16
|
-
{:name => :id, :primary_key => true}.each do |
|
17
|
-
it "uses default primary key #{
|
18
|
-
@columns.first[
|
16
|
+
{:name => :id, :primary_key => true}.each do |column, expected|
|
17
|
+
it "uses default primary key #{column}" do
|
18
|
+
@columns.first[column].should == expected
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
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.3.
|
7
|
-
date: 2007-
|
6
|
+
version: 0.3.2
|
7
|
+
date: 2007-11-01 00:00:00 +02:00
|
8
8
|
summary: Lightweight ORM library for Ruby
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -33,6 +33,7 @@ files:
|
|
33
33
|
- README
|
34
34
|
- Rakefile
|
35
35
|
- bin/sequel
|
36
|
+
- doc/rdoc
|
36
37
|
- spec/adapters
|
37
38
|
- spec/adapters/mysql_spec.rb
|
38
39
|
- spec/adapters/postgres_spec.rb
|
@@ -60,9 +61,9 @@ files:
|
|
60
61
|
- lib/sequel/dataset/sequelizer.rb
|
61
62
|
- lib/sequel/dataset/sql.rb
|
62
63
|
- lib/sequel/dataset.rb
|
64
|
+
- lib/sequel/db2.rb
|
63
65
|
- lib/sequel/dbi.rb
|
64
66
|
- lib/sequel/error.rb
|
65
|
-
- lib/sequel/expressions.rb
|
66
67
|
- lib/sequel/migration.rb
|
67
68
|
- lib/sequel/model
|
68
69
|
- lib/sequel/model/base.rb
|