def initialize( directory, opts = {} )
@dir = directory
@observer_peers = {}
if Kernel.test(?e, @dir)
unless Kernel.test(?d, @dir)
raise ArgumentError, "'#{@dir}' is not a directory"
end
else
Dir.mkdir @dir
end
klass = opts[:scanner].to_s.capitalize + 'Scanner'
klass = DirectoryWatcher.const_get klass rescue Scanner
@scanner = klass.new {|events| notify_observers(events)}
self.glob = opts[:glob] || '*'
self.interval = opts[:interval] || 30
self.stable = opts[:stable] || nil
self.persist = opts[:persist]
@scanner.reset opts[:pre_load]
end