Class: Driskell::Listen::Change
- Inherits:
-
Object
- Object
- Driskell::Listen::Change
- Defined in:
- lib/driskell-listen/change.rb
Overview
TODO: rename to Snapshot
Defined Under Namespace
Classes: Config
Instance Attribute Summary collapse
-
#record ⇒ Object
readonly
Returns the value of attribute record.
Instance Method Summary collapse
-
#initialize(config, record) ⇒ Change
constructor
A new instance of Change.
-
#invalidate(type, rel_path, options) ⇒ Object
Invalidate some part of the snapshot/record (dir, file, subtree, etc.).
Constructor Details
#initialize(config, record) ⇒ Change
Returns a new instance of Change.
25 26 27 28 |
# File 'lib/driskell-listen/change.rb', line 25 def initialize(config, record) @config = config @record = record end |
Instance Attribute Details
#record ⇒ Object (readonly)
Returns the value of attribute record.
23 24 25 |
# File 'lib/driskell-listen/change.rb', line 23 def record @record end |
Instance Method Details
#invalidate(type, rel_path, options) ⇒ Object
Invalidate some part of the snapshot/record (dir, file, subtree, etc.)
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/driskell-listen/change.rb', line 31 def invalidate(type, rel_path, ) watched_dir = Pathname.new(record.root) change = [:change] = [:cookie] if ! && config.silenced?(rel_path, type) Driskell::Listen::Logger.debug { "(silenced): #{rel_path.inspect}" } return end path = watched_dir + rel_path Driskell::Listen::Logger.debug do log_details = [:silence] && 'recording' || change || 'unknown' "#{log_details}: #{type}:#{path} (#{.inspect})" end if change = ? { cookie: } : {} config.queue(type, change, watched_dir, rel_path, ) else if type == :tree # Invalid the entire directory tree Directory.scan(self, rel_path, **, recurse: true) elsif type == :dir # Invalid directory contents, but do not recurse Directory.scan(self, rel_path, **, recurse: false) else change = File.change(record, rel_path) return if !change || [:silence] config.queue(:file, change, watched_dir, rel_path) end end rescue RuntimeError => ex msg = format( '%s#%s crashed %s:%s', self.class, __method__, exinspect, ex.backtrace * "\n") Driskell::Listen::Logger.error(msg) raise end |