Watson1978
7/17/2012 - 3:19 PM

sample_gcd_source.rb

# -*- coding: utf-8 -*-
# MacRuby - Dispatch::Source のサンプル

# 変更を監視するファイル
path = File.expand_path "~/test.txt"

gcdque = Dispatch::Queue.new('sample')
gcdsem = Dispatch::Semaphore.new(0)

fmask = Dispatch::Source::VNODE_DELETE | Dispatch::Source::VNODE_WRITE
io = File.open(path, "w")

Dispatch::Source.new(Dispatch::Source::VNODE,
                     io,
                     fmask,
                     gcdque) do |s|
  puts "changed"
  gcdsem.signal
end

gcdsem.wait