File: monitor.rb

package info (click to toggle)
ruby-fssm 0.2.10-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 380 kB
  • sloc: ruby: 1,082; makefile: 2
file content (36 lines) | stat: -rw-r--r-- 764 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class FSSM::Monitor
  def initialize(options={})
    @options = options
    @backend = FSSM::Backends::Default.new
  end

  def path(path=nil, glob=nil, &block)
    path = create_path(path, glob, &block)
    @backend.add_handler(FSSM::State::Directory.new(path, @options))
    path
  rescue FSSM::FileNotRealError => e
    FSSM.dbg("#{e}")
    nil
  end

  def file(path=nil, glob=nil, &block)
    path = create_path(path, glob, &block)
    @backend.add_handler(FSSM::State::File.new(path))
    path
  rescue FSSM::FileNotRealError => e
    FSSM.dbg("#{e}")
    nil
  end

  def run
    @backend.run
  end

  private

  def create_path(path, glob, &block)
    path = FSSM::Path.new(path, glob, @options)
    FSSM::Support.use_block(path, block)
    path
  end
end