Sha256: d21b59f556a026989ec500b54dfaed6d11da4d532a771118ae63f6f3cf9a8b14

Contents?: true

Size: 1.02 KB

Versions: 8

Compression:

Stored size: 1.02 KB

Contents

require 'directory_watcher'

module LedgerWeb
  class Watcher
    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[0] == :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

    def self.stop!
      @@dw.stop
    end
  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
ledger_web-1.5.0 lib/ledger_web/watcher.rb
ledger_web-1.4.11 lib/ledger_web/watcher.rb
ledger_web-1.4.10 lib/ledger_web/watcher.rb
ledger_web-1.4.9 lib/ledger_web/watcher.rb
ledger_web-1.4.8 lib/ledger_web/watcher.rb
ledger_web-1.4.7 lib/ledger_web/watcher.rb
ledger_web-1.4.6 lib/ledger_web/watcher.rb
ledger_web-1.4.4 lib/ledger_web/watcher.rb