rack-log-request 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/Rakefile +2 -0
- data/lib/rack-log-request/version.rb +5 -0
- data/lib/rack-log-request.rb +40 -0
- data/rack-log-request.gemspec +21 -0
- metadata +73 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'mongo'
|
2
|
+
module Rack
|
3
|
+
class LogRequest
|
4
|
+
|
5
|
+
##
|
6
|
+
# Intialize the LogRequest Middleware.
|
7
|
+
#
|
8
|
+
# @params[Rack] app the Rack application
|
9
|
+
# @params[Hash] options all options about this middleware
|
10
|
+
# @opts[String] mongo_db a Mongo::Database object
|
11
|
+
# @opts[String] host the host of your MongoDB database
|
12
|
+
# @opts[String] port the port of your MongoDB database
|
13
|
+
# @opts[String] database the database of your MongoDB database
|
14
|
+
# @opts[String] user the user to access your MongoDB database
|
15
|
+
# @opts[String] password the password of your MongoDB user to access database
|
16
|
+
#
|
17
|
+
def initialize(app, options = {})
|
18
|
+
@app = app
|
19
|
+
unless options.has_key?(:mongo_db)
|
20
|
+
@mongo_connection = Mongo::Connection.new(options[:host], options[:port], :timeout => 5)
|
21
|
+
if options.has_key?(:user)
|
22
|
+
@mongo_connection.add_auth(options[:database], options[:user], options[:password])
|
23
|
+
end
|
24
|
+
@mongo_database = @mongo_connection.db(options[:database])
|
25
|
+
else
|
26
|
+
@mongo_database = options[:mongo_db]
|
27
|
+
end
|
28
|
+
@mongo_collection = @mongo_database.collection('rack-log-request')
|
29
|
+
end
|
30
|
+
|
31
|
+
def call(env)
|
32
|
+
t = Time.now
|
33
|
+
re = @app.call(env)
|
34
|
+
@mongo_collection.insert({:request => env['REQUEST_URI'],
|
35
|
+
:millis => (Time.now - t)*1000})
|
36
|
+
return re
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "rack-log-request/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "rack-log-request"
|
7
|
+
s.version = Rack::LogRequest::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Cyril Mougel"]
|
10
|
+
s.email = ["cyril.mougel@gmail.com"]
|
11
|
+
s.homepage = ""
|
12
|
+
s.summary = %q{Log in mongoDB all request do with their time to generate it}
|
13
|
+
s.description = %q{Log in mongoDB all request do with their time to generate it}
|
14
|
+
|
15
|
+
s.rubyforge_project = "rack-log-request"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rack-log-request
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Cyril Mougel
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-03-16 00:00:00 +01:00
|
19
|
+
default_executable:
|
20
|
+
dependencies: []
|
21
|
+
|
22
|
+
description: Log in mongoDB all request do with their time to generate it
|
23
|
+
email:
|
24
|
+
- cyril.mougel@gmail.com
|
25
|
+
executables: []
|
26
|
+
|
27
|
+
extensions: []
|
28
|
+
|
29
|
+
extra_rdoc_files: []
|
30
|
+
|
31
|
+
files:
|
32
|
+
- .gitignore
|
33
|
+
- Gemfile
|
34
|
+
- Rakefile
|
35
|
+
- lib/rack-log-request.rb
|
36
|
+
- lib/rack-log-request/version.rb
|
37
|
+
- rack-log-request.gemspec
|
38
|
+
has_rdoc: true
|
39
|
+
homepage: ""
|
40
|
+
licenses: []
|
41
|
+
|
42
|
+
post_install_message:
|
43
|
+
rdoc_options: []
|
44
|
+
|
45
|
+
require_paths:
|
46
|
+
- lib
|
47
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
48
|
+
none: false
|
49
|
+
requirements:
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
hash: 3
|
53
|
+
segments:
|
54
|
+
- 0
|
55
|
+
version: "0"
|
56
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
hash: 3
|
62
|
+
segments:
|
63
|
+
- 0
|
64
|
+
version: "0"
|
65
|
+
requirements: []
|
66
|
+
|
67
|
+
rubyforge_project: rack-log-request
|
68
|
+
rubygems_version: 1.5.2
|
69
|
+
signing_key:
|
70
|
+
specification_version: 3
|
71
|
+
summary: Log in mongoDB all request do with their time to generate it
|
72
|
+
test_files: []
|
73
|
+
|