class Syncbox::Syncer
Public Class Methods
new(local_directory, store)
click to toggle source
Initializes listener
@param [String] local_directory @param [Store] store
Note: raise arguement error when local_directory does not exist.
# File lib/syncbox/syncer.rb, line 13 def initialize(local_directory, store) raise ArgumentError, "Local directory #{local_directory} does not exist." unless Dir.exists?(local_directory) @local_directory = local_directory @store = store @listener = Listen.to(local_directory).latency(0.1) end
Public Instance Methods
sync()
click to toggle source
Listen to local directory Sync local action to remote store
# File lib/syncbox/syncer.rb, line 23 def sync callback = Proc.new do |modified, added, removed| added && added.each do |add_file| @store.add(@local_directory + "/" + add_file) end modified && modified.each do |modified_file| @store.modify(@local_directory + "/" + modified_file) end removed && removed.each do |remove_file| @store.remove(@local_directory + "/" + remove_file) end end @listener.change(&callback) # convert the callback to a block and register it @listener.start! # have to use ! end