Sha256: 31b07fbbe1397b1f274ea5ae1f7d9a40ad77feb03f53de0f550bbfe7a96f82f2
Contents?: true
Size: 1.21 KB
Versions: 1
Compression:
Stored size: 1.21 KB
Contents
module Stack class Watcher attr_accessor :source, :target attr_accessor :generator attr_accessor :directory_watcher attr_accessor :keep_alive def initialize(generator) self.generator = generator self.source = self.generator.source self.target = self.generator.target self.keep_alive = true end def observe dirs = "" Dir.chdir(self.source) do dirs = Dir['*'].select { |x| File.directory?(x) } dirs -= ['_stack'] dirs = dirs.map { |x| "#{x}/**/*" } dirs += ['*'] end self.directory_watcher = DirectoryWatcher.new(self.source) self.directory_watcher.interval = 1 self.directory_watcher.glob = dirs self.directory_watcher.add_observer do |*args| time = Time.now.strftime("%Y-%m-%d %H:%M:%S") puts "[#{time}] #{args.size} files changed." self.generator.process! self.generator.transform! time = Time.now.strftime("%Y-%m-%d %H:%M:%S") puts "[#{time}] #{args.size} files processed." end self.directory_watcher.start if self.keep_alive loop { sleep 1000 } end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
stack-0.0.7 | lib/stack/watcher.rb |