From 670a92d666b7e249dab2a4cb1b62237f2e16f7bf Mon Sep 17 00:00:00 2001 From: Colin Kelley Date: Sun, 9 Jan 2022 15:13:43 -0800 Subject: [PATCH] issue #548: remove _auto_hash in favor of a reset_tree method --- lib/listen/record.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/listen/record.rb b/lib/listen/record.rb index 03566886..efa6a37a 100644 --- a/lib/listen/record.rb +++ b/lib/listen/record.rb @@ -12,7 +12,7 @@ class Record attr_reader :root def initialize(directory, silencer) - @tree = _auto_hash + reset_tree @root = directory.to_s @silencer = silencer end @@ -50,19 +50,19 @@ def dir_entries(rel_path) subtree = if ['', '.'].include?(rel_path_s) @tree else - @tree[rel_path_s] ||= _auto_hash + @tree[rel_path_s] end subtree.each_with_object({}) do |(key, values), result| - # only return data for file entries - if values.respond_to?(:has_key?) + # only return data for file entries inside the dir (which will each be sub-hashes) + if values.is_a?(Hash) result[key] = values.has_key?(:mtime) ? values : {} end end end def build - @tree = _auto_hash + reset_tree # TODO: test with a file name given # TODO: test other permissions # TODO: test with mixed encoding @@ -74,8 +74,8 @@ def build private - def _auto_hash - Hash.new { |h, k| h[k] = {} } + def reset_tree + @tree = Hash.new { |h, k| h[k] = {} } end def _fast_update_file(dirname, basename, data)