class FSPSocket::Manager
Attributes
m[R]
Public Class Methods
new()
click to toggle source
# File lib/fspsocket.rb, line 180 def initialize @paths = {} @m = FileMonitor.new do |f| @@log.info "Modified: #{f.path}" file_modified(f.path) end end
Public Instance Methods
add_dir(path)
click to toggle source
# File lib/fspsocket.rb, line 188 def add_dir(path) @@log.info "add_dir: #{path}" @m.add(path) do |f| @@log.info "dir modified #{f.path}" @paths.store(f.path, [0, 0]) # dummy data file_modified(f.path) end end
add_file(path)
click to toggle source
# File lib/fspsocket.rb, line 197 def add_file(path) @@log.info "add_file: #{path}" st = File::stat(path) @paths.store(path, [st.mtime, st.size]) @m << path end
file_deleted(path)
click to toggle source
# File lib/fspsocket.rb, line 231 def file_deleted(path) @@log.info "file_deleted: #{path}" @paths.delete(path) end
file_modified(path)
click to toggle source
# File lib/fspsocket.rb, line 212 def file_modified(path) @@log.info "file_modifled: #{path}" prev = @paths.fetch(path) st = File::stat(path) open(path, "r") do |f| f.seek(prev[1], IO::SEEK_SET) data = f.read(st.size - prev[1]) @@log.info "data: #{data}" begin changed idpart = path.sub(@@base, "").split(File::Separator)[1] notify_observers [idpart, data] # XXX May contain multiple json entries rescue STDERR.puts $! end end # open @paths.store(path, [st.mtime, st.size]) end
get_file()
click to toggle source
# File lib/fspsocket.rb, line 208 def get_file @paths.each_key end
remove_file(path)
click to toggle source
# File lib/fspsocket.rb, line 204 def remove_file(path) @paths.delete(path) end