lib/factbase/looged.rb in factbase-0.0.39 vs lib/factbase/looged.rb in factbase-0.0.40

- old
+ new

@@ -18,10 +18,11 @@ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. +require 'time' require 'loog' # A decorator of a Factbase, that logs all operations. # Author:: Yegor Bugayenko (yegor256@gmail.com) # Copyright:: Copyright (c) 2024 Yegor Bugayenko @@ -112,41 +113,53 @@ end def each(&) q = Factbase::Syntax.new(@expr).to_term.to_s if block_given? - r = @query.each(&) + r = nil + tail = Factbase::Looged.elapsed do + r = @query.each(&) + end raise ".each of #{@query.class} returned #{r.class}" unless r.is_a?(Integer) if r.zero? - @loog.debug("Nothing found by '#{q}'") + @loog.debug("Nothing found by '#{q}' #{tail}") else - @loog.debug("Found #{r} fact(s) by '#{q}'") + @loog.debug("Found #{r} fact(s) by '#{q}' #{tail}") end r else array = [] - # rubocop:disable Style/MapIntoArray - @query.each do |f| - array << f + tail = Factbase::Looged.elapsed do + @query.each do |f| + array << f + end end - # rubocop:enable Style/MapIntoArray if array.empty? - @loog.debug("Nothing found by '#{q}'") + @loog.debug("Nothing found by '#{q}' #{tail}") else - @loog.debug("Found #{array.size} fact(s) by '#{q}'") + @loog.debug("Found #{array.size} fact(s) by '#{q}' #{tail}") end array end end def delete! - r = @query.delete! + r = nil + tail = Factbase::Looged.elapsed do + r = @query.delete! + end raise ".delete! of #{@query.class} returned #{r.class}" unless r.is_a?(Integer) if r.zero? - @loog.debug("Nothing deleted by '#{@expr}'") + @loog.debug("Nothing deleted by '#{@expr}' #{tail}") else - @loog.debug("Deleted #{r} fact(s) by '#{@expr}'") + @loog.debug("Deleted #{r} fact(s) by '#{@expr}' #{tail}") end r end + end + + def self.elapsed + start = Time.now + yield + "in #{format('%.2f', (Time.now - start) * 1000)}ms" end end