Sha256: 10afa0edeafa7895433ce749443318f2015262ea85804a9b463dfb1155068e37
Contents?: true
Size: 1.25 KB
Versions: 2
Compression:
Stored size: 1.25 KB
Contents
module ArchitectureJS class Watcher attr_accessor :project, :listener def initialize(project) @project = project @listener = Listen.to(@project.root) @listener.ignore(/#{@project.config[:build_dir]}/) .filter(/\.jst?$|\.blueprint$/) .change do |modified, added, removed| update_files(modified, "modified") if modified.length > 0 update_files(added, "added") if added.length > 0 update_files(removed, "deleted") if removed.length > 0 end end def watch(message = false) @listener.start(false) puts ArchitectureJS::Notification.log message if message self end def stop @listener.stop end private def update_files(files, action) files.each do |f| f = File.basename f if action == "deleted" FileUtils.rm_rf("#{@project.root}/#{@project.config[:build_dir]}/#{f}") if File.exists? "#{@project.root}/#{@project.config[:build_dir]}/#{f}" end puts "\n" << ArchitectureJS::Notification.event("#{f} was #{action}") end @project.read_config @project.update print ArchitectureJS::Notification.prompt end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
architecture-js-0.6.0 | lib/architecture-js/watcher.rb |
architecture-js-0.5.8 | lib/architecture-js/watcher.rb |