class Ramaze::Reloader::WatchStat
Public Class Methods
new()
click to toggle source
# File lib/ramaze/reloader/watch_stat.rb, line 4 def initialize # @files[file_path] = stat @files = {} @last = Time.now end
Public Instance Methods
call(cooldown) { || ... }
click to toggle source
# File lib/ramaze/reloader/watch_stat.rb, line 10 def call(cooldown) if cooldown and Time.now > @last + cooldown yield @last = Time.now end end
changed_files() { |file| ... }
click to toggle source
return files changed since last call
# File lib/ramaze/reloader/watch_stat.rb, line 40 def changed_files @files.each do |file, stat| if new_stat = safe_stat(file) if new_stat.mtime > stat.mtime @files[file] = new_stat yield(file) end end end end
close()
click to toggle source
no need for cleanup
# File lib/ramaze/reloader/watch_stat.rb, line 36 def close end
remove_watch(file)
click to toggle source
stop watching a file for changes
# File lib/ramaze/reloader/watch_stat.rb, line 31 def remove_watch(file) @files.delete(file) end
safe_stat(file)
click to toggle source
# File lib/ramaze/reloader/watch_stat.rb, line 51 def safe_stat(file) File.stat(file) rescue Errno::ENOENT, Errno::ENOTDIR nil end
watch(file)
click to toggle source
start watching a file for changes true if succeeded, false if failure
# File lib/ramaze/reloader/watch_stat.rb, line 19 def watch(file) return true if watching?(file) # if already watching if stat = safe_stat(file) @files[file] = stat end end
watching?(file)
click to toggle source
# File lib/ramaze/reloader/watch_stat.rb, line 26 def watching?(file) @files.has_key?(file) end