Class: DirectoryWatcher::Scanner

### Home Classes Methods

### In Files

- lib/directory_watcher/scanner.rb

### Parent

Object

### Methods

- ::new
- #before_starting
- #run

### Included Modules

- DirectoryWatcher::Threaded
- DirectoryWatcher::Logable

### Files

- History.txt
- README.txt

### Class/Module Index

Quicksearch

- DirectoryWatcher
- DirectoryWatcher::Collector
- DirectoryWatcher::Configuration
- DirectoryWatcher::CoolioScanner
- DirectoryWatcher::EmScanner
- DirectoryWatcher::Event
- DirectoryWatcher::EventableScanner
- DirectoryWatcher::FileStat
- DirectoryWatcher::Logable
- DirectoryWatcher::Notifier
- DirectoryWatcher::NullLogger
- DirectoryWatcher::Paths
- DirectoryWatcher::RevScanner
- DirectoryWatcher::Scan
- DirectoryWatcher::ScanAndQueue
- DirectoryWatcher::Scanner
- DirectoryWatcher::Threaded
- DirectoryWatcher::Version
- Object

No matching classes.

# DirectoryWatcher::Scanner

The Scanner is responsible for polling the watched directory at a regular interval and generating a Scan which it will then send down the collection queue to the Collector.

The Scanner is a pure Ruby class, and as such it works across all Ruby interpreters on the major platforms. This also means that it can be processor intensive for large numbers of files or very fast update intervals. Your mileage will vary, but it is something to keep an eye on.

### Public Class Methods

new( configuration ) click to toggle source

    From the Configuration instance passed in Scanner uses:

    glob             - Same as that in DirectoryWatcher
    interval         - Same as that in DirectoryWatcher
    collection_queue - The Queue to send the Scans too.
                       the other end of this queue is connected to a Collector

    The Scanner is not generally used out side of a DirectoryWatcher so this is
    more of an internal API

def initialize( glob, interval, collection_queue )

    # File lib/directory_watcher/scanner.rb, line 28
    def initialize( config )
      @config = config
      @scan_and_queue = ::DirectoryWatcher::ScanAndQueue.new( @config.glob, @config.collection_queue )
    end

### Public Instance Methods

before_starting() click to toggle source

Set the interval before starting the loop. This allows for interval to be set AFTER the DirectoryWatcher instance is allocated but before it is started.

    # File lib/directory_watcher/scanner.rb, line 36
    def before_starting
      self.interval = @config.interval
    end

run() click to toggle source

Performs exactly one scan of the directory and sends the results to the Collector

    # File lib/directory_watcher/scanner.rb, line 43
    def run
      @scan_and_queue.scan_and_queue
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.