Sha256: 49158ddfc5243ee204358bcd009324dd0e24a177c2bc895b8ea5548b213ea841

Contents?: true

Size: 1.01 KB

Versions: 8

Compression:

Stored size: 1.01 KB

Contents

require 'listen'

module Fontcustom
  class Watcher
    def self.watch(*args)
      callback = Proc.new do |modified, added, removed|
        puts '    >> Changed: ' + modified.join(' ') unless modified.empty?
        puts '    >> Added: ' + added.join(' ') unless added.empty?
        puts '    >> Removed: ' + removed.join(' ') unless removed.empty?

        changed = modified + added + removed
        Fontcustom.compile(*args) unless changed.empty?
      end

      dir = args.first
      @listener = Listen.to(dir).filter(/\.(eps|svg)$/).change(&callback)

      begin
        puts "Fontcustom is watching your icons at " + dir
        Fontcustom.compile(*args)
        @listener.start()

      # Catches Cmd/Ctrl + C
      # Does listen gem have a better way of handling this?
      rescue SignalException
        stop
      end
    end

    def self.stop
      # Newline exists so message is not prepended with ^C on SIGTERM
      puts "\nFontcustom is signing off. Goodnight and good luck."
      @listener.stop
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
fontcustom-0.1.3 lib/fontcustom/watcher.rb
fontcustom-0.1.2 lib/fontcustom/watcher.rb
fontcustom-0.1.1 lib/fontcustom/watcher.rb
fontcustomtoadstool-0.1.3.2 lib/fontcustom/watcher.rb
fontcustomtoadstool-0.1.3.1 lib/fontcustom/watcher.rb
fontcustomtoadstool-0.1.3 lib/fontcustom/watcher.rb
fontcustomtoadstool-0.1.2 lib/fontcustom/watcher.rb
fontcustom-0.1.0 lib/fontcustom/watcher.rb