From b5112d9a48d092ef6b46c302c865b0b24369c766 Mon Sep 17 00:00:00 2001 From: Ary Borenszweig Date: Sun, 17 Jul 2016 21:50:52 -0300 Subject: [PATCH] Add `ResultSet#column_names`. Fixes #11 --- spec/result_set_spec.cr | 8 ++++++++ src/db/result_set.cr | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/spec/result_set_spec.cr b/spec/result_set_spec.cr index 21d8424..bb633fd 100644 --- a/spec/result_set_spec.cr +++ b/spec/result_set_spec.cr @@ -56,4 +56,12 @@ describe DB::ResultSet do cols.should eq(["c0", "c1"]) end + + it "gets all column names" do + with_dummy do |db| + db.query "1,2" do |rs| + rs.column_names.should eq(%w(c0 c1)) + end + end + end end diff --git a/src/db/result_set.cr b/src/db/result_set.cr index a3a4e6d..99d9c54 100644 --- a/src/db/result_set.cr +++ b/src/db/result_set.cr @@ -61,6 +61,11 @@ module DB # Returns the name of the column in `index` 0-based position. abstract def column_name(index : Int32) : String + # Returns the name of the columns. + def column_names + Array(String).new(column_count) { |i| column_name(i) } + end + # Reads the next column value abstract def read