From 038ffef33aa176b364c6753b4853b0b0b76441ee Mon Sep 17 00:00:00 2001 From: Ary Borenszweig Date: Wed, 29 Jun 2016 16:54:16 -0300 Subject: [PATCH] Don't use tap so return value is that of `yield` --- src/db.cr | 11 +++++------ src/db/query_methods.cr | 9 ++------- src/db/statement.cr | 15 +++++---------- 3 files changed, 12 insertions(+), 23 deletions(-) diff --git a/src/db.cr b/src/db.cr index 499f799..75e8c13 100644 --- a/src/db.cr +++ b/src/db.cr @@ -102,12 +102,11 @@ module DB # Same as `#open` but the database is yielded and closed automatically. def self.open(uri : URI | String, &block) - build_database(uri).tap do |db| - begin - yield db - ensure - db.close - end + db = build_database(uri) + begin + yield db + ensure + db.close end end diff --git a/src/db/query_methods.cr b/src/db/query_methods.cr index b404c4f..3047f30 100644 --- a/src/db/query_methods.cr +++ b/src/db/query_methods.cr @@ -31,13 +31,8 @@ module DB # The `ResultSet` is closed automatically. def query(query, *args) # CHECK prepare(query).query(*args, &block) - query(query, *args).tap do |rs| - begin - yield rs - ensure - rs.close - end - end + rs = query(query, *args) + yield rs ensure rs.close end # Performs the `query` and returns an `ExecResult` diff --git a/src/db/statement.cr b/src/db/statement.cr index 51272ad..94d7afa 100644 --- a/src/db/statement.cr +++ b/src/db/statement.cr @@ -69,19 +69,14 @@ module DB # See `QueryMethods#query` def query(*args) - query(*args).tap do |rs| - begin - yield rs - ensure - rs.close - end - end + rs = query(*args) + yield rs ensure rs.close end private def perform_exec_and_release(args : Enumerable) : ExecResult - perform_exec(args).tap do - release_connection - end + res = perform_exec(args) + release_connection + res end protected abstract def perform_query(args : Enumerable) : ResultSet