Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Branch: master
Commits on Jul 2, 2008
  1. FSEvents::Event#deleted_files -- returns files deleted for this event.

    This only works if the stream is in cache mode. Trying this with mtime mode raises an exception because there isn't enough information to get a list of deleted files.
Commits on Jun 30, 2008
  1. Stripping trailing slash from paths.

    This was originally just a minor visual annoyance, but it became something that messed up the caching.
  2. Modifying stream caching strategy to store subdirs.

    Any directory found during caching should be stored in its own cache. Otherwise, the cache is permanently empty for any sub-directory under a watched path.
  3. Better empty-cache behavior in Event#modified_files.

    It won't do for the event to raise an exception simply because nothing's been cached yet.
  4. Modifying Stream#update_last_event to consider mode.

    The mtime mode is the default, and the only thing to do is the same old behavior of storing the last event time.
    The cache mode involves more work, going through each path and storing a File::Stat object for each file.
  5. Checking stream mode in Event#modified_files.

    The mtime mode is the default and is the same as before, checking if any file's mtime is greater than or equal to the last event time.
    The cache mode will check the stream's cache to see if any file's mtime or size has changed. (The checks happen explicitly because File::Stat#<=> only compares mtime).
  6. Adding stream mode.

    The mode is the first option for the FSEvents::Stream object itself (and not the OSX FSEvent stream). It will primarily affect the strategy for getting an event's modified files.
Commits on Jun 28, 2008
Commits on Jun 17, 2008
Commits on Jun 15, 2008
  1. Housecleaning.

    History, License, config, Manifest, blah blah. README is the important bit.
  2. Added FSEvents::Stream#run as a way to easily run the stream.

    This merely calls OSX.CFRunLoopRun, which passes control to the Carbon framework.
  3. FSEvents::Event#modified_files -- uses the stream last event time to …

    …get modified files in the event path.
  4. FSEvents::Stream now creates FSEvents::Event objects to pass to the c…

    …allback (instead of just simple paths).
  5. Creating FSEvents::Event class, mostly to make getting files from the…

    … path easier.
    This is heavily inspired by the Rucola fsevents.rb.
Commits on Jun 14, 2008
  1. Adding, which returns a newly created FSEvents…

    …::Stream object and starts it up.
    This should be the main popular interface since it goes directly from path, options, and callback directly to an operating stream.
  2. Adding FSEvents::Stream.create, which returns a new FSEvents::Stream …

    …object with the stream created.
    I imagine this will be a more popular interface than since it removes the step of creating the stream after initialization.
  3. Requiring a callback block for initialization.

    The best part about this is what it does to the specs.  `, @options) {}.flags` looks so AWESOMe.
  4. Completing initialization refactoring, simplifying initialization.

    Now initialization does nothing but store some attributes. This is a good thing.
  5. Continuing initialization refactoring, creating fs event stream.

    The actual fs event stream itself (from OSX.FSEventStreamCreate) is now made outside of initialization. This should free initialization to be simple.
  6. Continuing initialization refactoring, stream callback.

    This is the 'same boring thing every time' that will be used as the FSEvent stream callback, mostly taken from Rucola's fsevents.rb (without having a special object for each event, only caring about the path). From what I can tell, this is what people will care about, just getting a list of the paths where an fs event occurred.
  7. Continuing initialization refactoring, storing callback block.

    Note that the callback here is the 'real' callback, the one the user is interested in. The FSEvent stream callback will be the same boring thing every time.
  8. Refactoring FSEvents::Stream initialization to not do too much.

    This is just the first step, setting attributes in initialization for later methods to use.
Commits on Jun 13, 2008
Commits on Jun 12, 2008
  1. FSEvents::Stream#startup.

    To start up a stream, the stream should be scheduled and started (taken from the example of 'taming the autotest beast with FSEvents').
  2. FSEvents::Stream#shutdown.

    To shut down a stream, the stream should be stopped, invalidated, and released (taken from the example of 'taming the autotest beast with FSEvents').
  3. Got the last pending spec for FSEvents::Stream#schedule.

    "Cannot convert the passed-by-reference argument #0 as '{__FSEventStream=}' to Ruby" can cram it.
Something went wrong with that request. Please try again.