File does not trigger 'contents-change' when its md5 does not change

This commit is contained in:
Corey Johnson & Nathan Sobo
2012-07-02 17:47:54 -07:00
parent 6ebe75c0bd
commit ef7121dfb3

View File

@@ -5,7 +5,11 @@ _ = require 'underscore'
module.exports =
class File
path: null
md5: null
constructor: (@path) ->
@updateMd5()
getPath: ->
@path
@@ -13,6 +17,9 @@ class File
getName: ->
fs.base(@path)
updateMd5: ->
@md5 = fs.md5ForPath(@path)
afterSubscribe: ->
@subscribeToNativeChangeEvents() if @subscriptionCount() == 1
@@ -21,7 +28,10 @@ class File
subscribeToNativeChangeEvents: ->
@watchId = $native.watchPath @path, (eventTypes) =>
@trigger 'contents-change' if eventTypes.modified?
newMd5 = fs.md5ForPath(@getPath())
if eventTypes.modified? and newMd5 != @md5
@md5 = newMd5
@trigger 'contents-change'
unsubscribeFromNativeChangeEvents: ->
$native.unwatchPath(@path, @watchId)