lib/autoreload.rb in autoreload-0.0.1 vs lib/autoreload.rb in autoreload-0.2.0
- old
+ new
@@ -1,100 +1,9 @@
-# Copyright (C) 2003-2007 Kouichirou Eto, All rights reserved.
-# License: Ruby License
+require 'autoreload/reloader'
+
+module AutoReload
+ # TODO: version constant
+end
-require 'thread'
-
-module AutoReload #:nodoc:
- module VERSION #:nodoc:
- MAJOR = 0
- MINOR = 0
- TINY = 1
- STRING = [MAJOR, MINOR, TINY].join('.')
- end
-
- class Reloader
- def self.start(*a)
- self.new(*a).start
- end
-
- DEFAULT_INTERVAL = 1
-
- def initialize(interval = DEFAULT_INTERVAL,
- verbose = false, name = nil) #:nodoc:
- @interval = interval
- @verbose = verbose
- @name = name
- @status = {}
- @thread = nil
- end
-
- def start #:nodoc:
- @thread = Thread.new {
- loop {
- begin
- update
- rescue Exception
- warn 'update failed: ' + $!
- end
- sleep @interval
- }
- }
- @thread.abort_on_exception = true
- end
-
- private
-
- def warn(msg, out = $stderr)
- msg = "#{@name}: #{msg}" if @name
- out << msg + "\n"
- # $stderr.puts()
- end
-
- def update
- libs = [$0] + $"
- libs.each {|lib|
- check_lib(lib)
- }
- end
-
- def check_lib(lib)
- if @status[lib]
- file, mtime = @status[lib]
- return if ! FileTest.exist?(file) # file is disappered.
- curtime = File.mtime(file).to_i
- if mtime < curtime
- if @verbose
- warn "reload: '#{file}'"
- end
- load file # Load it.
- @status[lib] = [file, curtime]
- end
- return
- end
-
- check_path = [''] + $LOAD_PATH
- #check_path = ['']
- check_path.each {|path|
- file = File.join(path, lib)
- file = lib if path.empty? # Check if the lib is a filename.
- if FileTest.exist?(file)
- @status[lib] = [file, File.mtime(file).to_i]
- return
- end
- }
-
- #raise "The library '#{lib}' is not found."
- # $stdout.puts(message("The library '#{lib}' is not found.")) if @verbose
- end
-
- def get_status(file)
- if FileTest.exist?(file)
- return [file, File.mtime(file).to_i]
- end
- return nil
- end
- end
-end
-
-def autoreload(*a)
- AutoReload::Reloader.start(*a)
+def autoreload(*files)
+ AutoReload::Reloader.start(*files)
end