Class: Syncbox::Syncer
- Inherits:
-
Object
- Object
- Syncbox::Syncer
- Defined in:
- lib/syncbox/syncer.rb
Instance Method Summary collapse
-
#initialize(local_directory, store) ⇒ Syncer
constructor
Initializes listener.
-
#sync ⇒ Object
Listen to local directory Sync local action to remote store.
Constructor Details
#initialize(local_directory, store) ⇒ Syncer
Initializes listener
Note: raise arguement error when local_directory does not exist.
13 14 15 16 17 18 |
# 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 |
Instance Method Details
#sync ⇒ Object
Listen to local directory Sync local action to remote store
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# 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 |