class Driskell::Listen::Record::Entry
Represents a directory entry (dir or file)
Attributes
name[R]
root[R]
Public Class Methods
new(root, relative, name = nil)
click to toggle source
file: “/home/me/watched_dir”, “app/models”, “foo.rb” dir, “/home/me/watched_dir”, “.”
# File lib/driskell-listen/record/entry.rb, line 8 def initialize(root, relative, name = nil) @root, @relative, @name = root, relative, name end
Public Instance Methods
children()
click to toggle source
# File lib/driskell-listen/record/entry.rb, line 19 def children child_relative = _join (Dir.entries(sys_path) - %w(. ..)).map do |name| Entry.new(@root, child_relative, name) end end
meta()
click to toggle source
# File lib/driskell-listen/record/entry.rb, line 26 def meta lstat = ::File.lstat(sys_path) { mtime: lstat.mtime.to_f, mode: lstat.mode } end
real_path()
click to toggle source
# File lib/driskell-listen/record/entry.rb, line 44 def real_path @real_path ||= ::File.realpath(sys_path) end
record_dir_key()
click to toggle source
record hash is e.g. if @record[“project/app/models”] if @record[“project/app”] record_dir_key
is “project/app/models”
# File lib/driskell-listen/record/entry.rb, line 35 def record_dir_key ::File.join(*[@relative, @name].compact) end
relative()
click to toggle source
# File lib/driskell-listen/record/entry.rb, line 14 def relative return '.' if @relative.nil? @relative end
sys_path()
click to toggle source
# File lib/driskell-listen/record/entry.rb, line 39 def sys_path # Use full path in case someone uses chdir ::File.join(*[@root, @relative, @name].compact) end
Private Instance Methods
_join()
click to toggle source
# File lib/driskell-listen/record/entry.rb, line 50 def _join args = [@relative, @name].compact args.empty? ? nil : ::File.join(*args) end