Class: LedgerWeb::Watcher

Inherits:
Object
  • Object
show all
Defined in:
lib/ledger_web/watcher.rb

Class Method Summary collapse

Class Method Details

.run!Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/ledger_web/watcher.rb', line 5

def self.run!
  directory = LedgerWeb::Config.instance.get :watch_directory
  glob = "*"

  if directory.nil?
    directory = File.dirname(LedgerWeb::Config.instance.get :ledger_file)
    glob = File.basename(LedgerWeb::Config.instance.get :ledger_file)
  end

  @@dw = DirectoryWatcher.new directory, :glob => glob
  @@dw.interval = LedgerWeb::Config.instance.get :watch_interval
  @@dw.stable = LedgerWeb::Config.instance.get :watch_stable_count

  LedgerWeb::Database.connect

  @@dw.add_observer do |*args|
    args.each do |event|
      if event.type == :stable
        puts "Loading database"
        LedgerWeb::Database.run_migrations
        file = LedgerWeb::Database.dump_ledger_to_csv
        count = LedgerWeb::Database.load_database(file)
        puts "Loaded #{count} records"
      end
    end
  end

  @@dw.start

end

.stop!Object



36
37
38
# File 'lib/ledger_web/watcher.rb', line 36

def self.stop!
  @@dw.stop
end