Sha256: 47f7e745f4a7dcefce528bb0a2dc4c49f552a560c73c7bd497e7b25df7fd1c39

Contents?: true

Size: 713 Bytes

Versions: 2

Compression:

Stored size: 713 Bytes

Contents

module Space
  module Shell
    module Watcher
      class << self
        def suspend
          @suspended = true
          yield.tap do
            @suspended = false
          end
        end

        def suspended?
          !!@suspended
        end
      end

      def initialize(*args)
        watch
      end

      private

        def watch
          targets.each do |path|
            Watch.new(path, &method(:trigger)).run
          end
        end

        def trigger(paths)
          refresh unless Watcher.suspended?
        end

        def targets
          self.class.watch.map do |path|
            path[0, 1] == '~' ? path : "#{self.path}/#{path}"
          end
        end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
space-0.0.5 lib/space/shell/watcher.rb
space-0.0.4 lib/space/shell/watcher.rb