class Middleman::SourceWatcher
def update(updated_paths, removed_paths)
def update(updated_paths, removed_paths) valid_updates = updated_paths .map { |p| @files[p] || path_to_source_file(p, @directory, @type, @options[:destination_dir]) } .select(&method(:valid?)) valid_updates.each do |f| record_file_change(f) logger.debug "== Change (#{f[:types].inspect}): #{f[:relative_path]}" end related_sources = valid_updates.map { |u| u[:full_path] } + removed_paths related_updates = ::Middleman::Util.find_related_files(app, related_sources).select(&method(:valid?)) related_updates.each do |f| logger.debug "== Possible Change (#{f[:types].inspect}): #{f[:relative_path]}" end valid_updates |= related_updates valid_removes = removed_paths .select(&@files.method(:key?)) .map(&@files.method(:[])) .select(&method(:valid?)) .each do |f| remove_file_from_cache(f) logger.debug "== Deletion (#{f[:types].inspect}): #{f[:relative_path]}" end unless valid_updates.empty? && valid_removes.empty? execute_callbacks(:on_change, [ valid_updates, valid_removes, self ]) end [valid_updates, valid_removes] end