diff --git a/spec/std/db/dummy_driver_spec.cr b/spec/std/db/dummy_driver_spec.cr index bb9a063..d8ff216 100644 --- a/spec/std/db/dummy_driver_spec.cr +++ b/spec/std/db/dummy_driver_spec.cr @@ -54,5 +54,16 @@ describe DummyDriver do result_set.read(UInt64).should eq(1) result_set.read(UInt64).should eq(2) end + + it "should enumerate records using each" do + nums = [] of UInt64 + result_set = get_dummy.prepare("3,4 1,2").exec + result_set.each do + nums << result_set.read(UInt64) + nums << result_set.read(UInt64) + end + + nums.should eq([3, 4, 1, 2]) + end end end diff --git a/src/db/result_set.cr b/src/db/result_set.cr index a9e10a1..147f8e3 100644 --- a/src/db/result_set.cr +++ b/src/db/result_set.cr @@ -5,6 +5,12 @@ module DB def initialize(@statement : Statement) end + def each + while has_next + yield + end + end + abstract def has_next : Bool # def read(t : T.class) : T