class Logput::Middleware
Public Class Methods
new(app, options = {})
click to toggle source
# File lib/logput/middleware.rb, line 5 def initialize(app, options = {}) @app = app @path_to_log_file = options[:path_to_log_file] @lines_to_read = options[:lines_to_read] || 500 end
Public Instance Methods
call(env)
click to toggle source
Call
# File lib/logput/middleware.rb, line 12 def call(env) @env = env @path_to_log_file ||= default_path_to_log_file ensure_log_file_exists! if is_logput? generate_output! else @app.call(@env) end end
Private Instance Methods
default_path_to_log_file()
click to toggle source
# File lib/logput/middleware.rb, line 40 def default_path_to_log_file raise Exception, 'Must specify path to Rails log file' unless defined? Rails path end
ensure_log_file_exists!()
click to toggle source
# File lib/logput/middleware.rb, line 27 def ensure_log_file_exists! raise 'Log file does not exist' unless File.exist? @path_to_log_file end
generate_output!()
click to toggle source
# File lib/logput/middleware.rb, line 35 def generate_output! out = `tail -n #{@lines_to_read} #{@path_to_log_file}` [200, {"Content-Type" => "text/html"}, ["<pre>", out, "</pre>"]] end
is_logput?()
click to toggle source
# File lib/logput/middleware.rb, line 31 def is_logput? @env['PATH_INFO'] == '/logput' end
logger()
click to toggle source
# File lib/logput/middleware.rb, line 45 def logger @env['action_dispatch.logger'] end
logger_adapter()
click to toggle source
# File lib/logput/middleware.rb, line 53 def logger_adapter @logger_adapter ||= Logput::Adapters.obtain(logger) end
path()
click to toggle source
# File lib/logput/middleware.rb, line 49 def path logger_adapter.path end