From a10e473b8124f16538a2616858e243408f6ffcee Mon Sep 17 00:00:00 2001
From: Jeremy Kemper <jeremy@bitsweat.net>
Date: Thu, 18 Dec 2008 14:42:06 -0800
Subject: Rename Rails::Rack::Logger -> LogTailer. Speed up log mtime checks.

---
 railties/lib/rails/rack.rb            |  2 +-
 railties/lib/rails/rack/log_tailer.rb | 35 +++++++++++++++++++++++++++++++++++
 railties/lib/rails/rack/logger.rb     | 28 ----------------------------
 3 files changed, 36 insertions(+), 29 deletions(-)
 create mode 100644 railties/lib/rails/rack/log_tailer.rb
 delete mode 100644 railties/lib/rails/rack/logger.rb

diff --git a/railties/lib/rails/rack.rb b/railties/lib/rails/rack.rb
index f721abddc8..9705f65e52 100644
--- a/railties/lib/rails/rack.rb
+++ b/railties/lib/rails/rack.rb
@@ -1,7 +1,7 @@
 module Rails
   module Rack
     autoload :Debugger, "rails/rack/debugger"
-    autoload :Logger, "rails/rack/logger"
+    autoload :LogTailer, "rails/rack/log_tailer"
     autoload :Metal, "rails/rack/metal"
     autoload :Static, "rails/rack/static"
   end
diff --git a/railties/lib/rails/rack/log_tailer.rb b/railties/lib/rails/rack/log_tailer.rb
new file mode 100644
index 0000000000..a237cee6bc
--- /dev/null
+++ b/railties/lib/rails/rack/log_tailer.rb
@@ -0,0 +1,35 @@
+module Rails
+  module Rack
+    class LogTailer
+      EnvironmentLog = "#{File.expand_path(Rails.root)}/log/#{Rails.env}.log"
+
+      def initialize(app, log = nil)
+        @app = app
+
+        path = Pathname.new(log || EnvironmentLog).cleanpath
+        @cursor = ::File.size(path)
+        @last_checked = Time.now.to_f
+
+        @file = ::File.open(path, 'r')
+      end
+
+      def call(env)
+        response = @app.call(env)
+        tail_log
+        response
+      end
+
+      def tail_log
+        @file.seek @cursor
+
+        mod = @file.mtime.to_f
+        if mod > @last_checked
+          contents = @file.read
+          @last_checked = mod
+          @cursor += contents.size
+          $stdout.print contents
+        end
+      end
+    end
+  end
+end
diff --git a/railties/lib/rails/rack/logger.rb b/railties/lib/rails/rack/logger.rb
deleted file mode 100644
index 25a814f1db..0000000000
--- a/railties/lib/rails/rack/logger.rb
+++ /dev/null
@@ -1,28 +0,0 @@
-module Rails
-  module Rack
-    class Logger
-      EnvironmentLog = "#{File.expand_path(Rails.root)}/log/#{Rails.env}.log"
-
-      def initialize(app, log = nil)
-        @app = app
-        @path = Pathname.new(log || EnvironmentLog).cleanpath
-        @cursor = ::File.size(@path)
-        @last_checked = Time.now.to_f
-      end
-
-      def call(env)
-        response = @app.call(env)
-        ::File.open(@path, 'r') do |f|
-          f.seek @cursor
-          if f.mtime.to_f > @last_checked
-            contents = f.read
-            @last_checked = f.mtime.to_f
-            @cursor += contents.length
-            print contents
-          end
-        end
-        response
-      end
-    end
-  end
-end
-- 
cgit v1.2.3