tokyo_wrapper 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
data/lib/tokyo_wrapper/table.rb
CHANGED
@@ -55,6 +55,12 @@ module TokyoWrapper
|
|
55
55
|
@table[id.to_s]
|
56
56
|
end
|
57
57
|
|
58
|
+
def all_by_key_value(key, value)
|
59
|
+
@table.query do |query|
|
60
|
+
query.add key, :equals, value
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
58
64
|
private
|
59
65
|
#
|
60
66
|
# rufus-tokyo converts array to string without a delimiter e.g. It converts [1,2,3,4] to "1234".
|
@@ -263,7 +263,7 @@ describe TokyoWrapper::TableMethods::Associations do
|
|
263
263
|
"notes" => "Some notes",
|
264
264
|
"sector_ids" => ["2","5","32","8"]}
|
265
265
|
id_1 = write_table.add(data_hash_1)
|
266
|
-
data_hash_2 = {"street" => "1111
|
266
|
+
data_hash_2 = {"street" => "1111 Maisonneuve",
|
267
267
|
"city" => "Montreal",
|
268
268
|
"notes" => "Another notes",
|
269
269
|
"sector_ids" => ["1","2","3458","9"]}
|
@@ -280,19 +280,23 @@ describe TokyoWrapper::TableMethods::Associations do
|
|
280
280
|
begin
|
281
281
|
read_table = TokyoWrapper::Table.create_with_read_non_locking(@table_file)
|
282
282
|
|
283
|
-
read_table.all_by_has_many_association_id("sector_id", "2").should == [{
|
283
|
+
read_table.all_by_has_many_association_id("sector_id", "2").should == [{:pk => id_1.to_s,
|
284
|
+
"street" => "1111 Main",
|
284
285
|
"city" => "Montreal",
|
285
286
|
"notes" => "Some notes",
|
286
287
|
"sector_ids" => "2,5,32,8"},
|
287
|
-
{
|
288
|
+
{:pk => id_2.to_s,
|
289
|
+
"street" => "1111 Maisonneuve",
|
288
290
|
"city" => "Montreal",
|
289
291
|
"notes" => "Another notes",
|
290
292
|
"sector_ids" => "1,2,3458,9"}]
|
291
|
-
read_table.all_by_has_many_association_id("sector_id", "45").should == [{
|
293
|
+
read_table.all_by_has_many_association_id("sector_id", "45").should == [{:pk => id_3.to_s,
|
294
|
+
"street" => "1111 Desjardins",
|
292
295
|
"city" => "Quebec",
|
293
296
|
"notes" => "Different notes",
|
294
297
|
"sector_ids" => "87,45,1,727"}]
|
295
|
-
read_table.all_by_has_many_association_id("sector_id", "3458").should == [{
|
298
|
+
read_table.all_by_has_many_association_id("sector_id", "3458").should == [{:pk => id_2.to_s,
|
299
|
+
"street" => "1111 Maisonneuve",
|
296
300
|
"city" => "Montreal",
|
297
301
|
"notes" => "Another notes",
|
298
302
|
"sector_ids" => "1,2,3458,9"}]
|
@@ -139,4 +139,57 @@ describe TokyoWrapper::Table do
|
|
139
139
|
|
140
140
|
end
|
141
141
|
|
142
|
+
context "Find all" do
|
143
|
+
|
144
|
+
it "should find all the rows that have a given value" do
|
145
|
+
|
146
|
+
begin
|
147
|
+
write_table = TokyoWrapper::Table.create_with_create_write_non_blocking_lock(@table_file)
|
148
|
+
|
149
|
+
data_hash_1 = {"street" => "1111 Main",
|
150
|
+
"city" => "Montreal",
|
151
|
+
"province" => "Quebec",
|
152
|
+
"country" => "Canada",
|
153
|
+
"notes" => "Some notes"}
|
154
|
+
id_1 = write_table.add(data_hash_1)
|
155
|
+
data_hash_2 = {"street" => "1111 Maisonneuve",
|
156
|
+
"city" => "Montreal",
|
157
|
+
"province" => "Quebec",
|
158
|
+
"country" => "Canada",
|
159
|
+
"notes" => "Another notes"}
|
160
|
+
id_2 = write_table.add(data_hash_2)
|
161
|
+
data_hash_3 = {"street" => "1111 Main",
|
162
|
+
"city" => "Quebec",
|
163
|
+
"province" => "Quebec",
|
164
|
+
"country" => "Canada",
|
165
|
+
"notes" => "Different notes"}
|
166
|
+
id_3 = write_table.add(data_hash_3)
|
167
|
+
|
168
|
+
ensure
|
169
|
+
write_table.close unless write_table.nil?
|
170
|
+
end
|
171
|
+
|
172
|
+
begin
|
173
|
+
read_table = TokyoWrapper::Table.create_with_read_non_locking(@table_file)
|
174
|
+
|
175
|
+
read_table.all_by_key_value("city", "Montreal").should == [{:pk => id_1.to_s,
|
176
|
+
"street" => "1111 Main",
|
177
|
+
"city" => "Montreal",
|
178
|
+
"province" => "Quebec",
|
179
|
+
"country" => "Canada",
|
180
|
+
"notes" => "Some notes"},
|
181
|
+
{:pk => id_2.to_s,
|
182
|
+
"street" => "1111 Maisonneuve",
|
183
|
+
"city" => "Montreal",
|
184
|
+
"province" => "Quebec",
|
185
|
+
"country" => "Canada",
|
186
|
+
"notes" => "Another notes"}]
|
187
|
+
ensure
|
188
|
+
read_table.close unless read_table.nil?
|
189
|
+
end
|
190
|
+
|
191
|
+
end
|
192
|
+
|
193
|
+
end
|
194
|
+
|
142
195
|
end
|