Sha256: 6ceb5b37815e6fe4c25f82d97bcc5b1f67de73c4df86a7ae7413f606c0cdae56

Contents?: true

Size: 681 Bytes

Versions: 9

Compression:

Stored size: 681 Bytes

Contents

require 'rest-core/event'
require 'rest-core/middleware'

class RestCore::CommonLogger
  def self.members; [:log_method]; end
  include RestCore::Middleware

  def call env
    start_time = Time.now
    response = app.call(flushed = flush(env))
    flush(log(response, log_request(start_time, response)))
  rescue
    flush(log(flushed, log_request(start_time, flushed)))
    raise
  end

  def flush env
    return env if !log_method(env) || env[ASK]
    (env[LOG] || []).each{ |obj| log_method(env).call("RestCore: #{obj}") }
    env.merge(LOG => [])
  end

  def log_request start_time, response
    Event::Requested.new(Time.now - start_time, request_uri(response))
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
rest-core-0.3.0 lib/rest-core/middleware/common_logger.rb
rest-core-0.3.0.pre.2 lib/rest-core/middleware/common_logger.rb
rest-core-0.3.0.pre.1 lib/rest-core/middleware/common_logger.rb
rest-core-0.3.0.pre.0 lib/rest-core/middleware/common_logger.rb
rest-core-0.2.3 lib/rest-core/middleware/common_logger.rb
rest-core-0.2.2 lib/rest-core/middleware/common_logger.rb
rest-core-0.2.1 lib/rest-core/middleware/common_logger.rb
rest-core-0.2.0 lib/rest-core/middleware/common_logger.rb
rest-core-0.0.1 lib/rest-core/middleware/common_logger.rb