module Pakyow::Behavior::Watching
Public Instance Methods
change_callbacks(path)
click to toggle source
@api private
# File lib/pakyow/behavior/watching.rb, line 56 def change_callbacks(path) @on_change_matchers.each_with_object([]) { |(matcher, blocks), matched_blocks| if matcher.match?(path) matched_blocks.concat(blocks) end } end
on_change(matcher, &block)
click to toggle source
Register a callback to be called when a file changes.
# File lib/pakyow/behavior/watching.rb, line 39 def on_change(matcher, &block) (@on_change_matchers[matcher] ||= []) << block end
watch(*paths, &block)
click to toggle source
Register one or more path for changes.
# File lib/pakyow/behavior/watching.rb, line 45 def watch(*paths, &block) @watched_paths.concat(paths).uniq! if block paths.each do |path| on_change(File.expand_path(path), &block) end end end
watch_callback(path, _event)
click to toggle source
@api private
# File lib/pakyow/behavior/watching.rb, line 65 def watch_callback(path, _event) change_callbacks(path).each do |callback| instance_exec(&callback) end end