[rubygems/rubygems] Use a constant empty tar header to avoid extra allocations
[ruby.git] / sample / drb / dbiff.rb
blob290eb1d28b55fe64fa406f4084e5c5ff2ec03f5d
2 # dbiff.rb - distributed cdbiff (server)
3 #  * original: cdbiff by Satoru Takabayashi <http://namazu.org/~satoru/cdbiff>
5 require 'drb/drb'
6 require 'drb/eq'
7 require 'drb/observer'
9 class Biff
10   include DRb::DRbObservable
12   def initialize(filename, interval)
13     super()
14     @filename = filename
15     @interval = interval
16   end
18   def run
19     last = Time.now
20     while true
21       begin
22         sleep(@interval)
23         current = File::mtime(@filename)
24         if current > last
25           changed
26           begin
27             notify_observers(@filename, current)
28           rescue Error
29           end
30           last = current
31         end
32       rescue
33         next
34       end
35     end
36   end
37 end
39 def main
40   filename = "/var/mail/#{ENV['USER']}"
41   interval = 15
42   uri = 'druby://:19903'
44   biff = Biff.new(filename, interval)
46   DRb.start_service(uri, biff)
47   biff.run
48 end
50 main