I don't think this method should be mutating state. As a 'public' method called 'file_modified', it's not obvious that calling this method isn't idempotent. To me, the expected behavior is to return whether the watched file has changed since the last reload, not since the last time this was called.

My suggestion is to either push the logic that assigns to 'self' up into 'reload_if_changed', or into a separate method 'reload_if_changed' calls.

However, I know that this would _technically_ break backwards compatibility, so I'll shipit this if you don't want to change it.