Sha256: c5f197bf8aacf85ec24574811366ded4aeab3e26efd24741f8259a2e3b1431f8
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
require "listen" require "singleton" require "cuco" require "script" class Controller include Singleton attr_reader :listener def run puts "*** Controller.run" if debug @listener = Listen.to(".") do |modified, added, removed| run_files(modified, :modified) run_files(added, :added) end @listener.start puts "*** Listen started" if debug sleep end def stop puts "*** Controller.stop" if debug @listener&.stop G.script = nil @listener = nil end def run_files(files, type) puts "*** Controller.run_files(#{files}, #{type})" if debug if files.include?(G.scriptname) G.script = Script.new File.read(G.scriptname) return end files.map! { |filename| filename[G.pwd_length + 1..] } files.each { |filename| file_run(filename, type) } end def file_run(pattern, type = nil) puts "*** file_run(#{pattern}, #{type})" if debug rules = find_rules(pattern, type) rules.each { |rule| match_run(rule, pattern) } end private def find_rules(pattern, type) puts "*** find_rules(#{pattern}, #{type})" if debug G.script.__rules.reverse.select { |rule| pattern.match(rule.pattern) && (rule.event_type.nil? || rule.event_type == type) } end def match_run(rule, pattern) md = pattern.match(rule.pattern) puts "*** match_run #{rule}" if debug rule.proc.call(md) if md end def debug G.options[:debug] end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cuco-0.1.1 | lib/controller.rb |