rack-simple_logger 0.0.1 → 0.0.2
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.
- checksums.yaml +14 -6
- data/.coveralls.yml +1 -0
- data/.travis.yml +13 -0
- data/README.md +5 -0
- data/lib/rack/simple_logger/log_proxy.rb +7 -6
- data/lib/rack/simple_logger/version.rb +1 -1
- data/rack-simple_logger.gemspec +2 -2
- data/spec/rack/simple_logger/log_proxy_spec.rb +161 -0
- data/spec/rack/simple_logger_spec.rb +39 -0
- data/spec/spec_helper.rb +4 -0
- data/spec/support/test_app.rb +11 -0
- metadata +32 -12
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZTM2NzNlNDRiYmNiNGZlZjcyM2U3YzEwN2NjMDlkZTM5YzZmZDIxMQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZDM0Mjg4Mjc3NjZmOGEwMTljNWQ4ZjRlZmZjMTQyYTgyNTU4ZDBiYQ==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MTgxYTcyZjEyZGVmOTRiZjZmNDQ5MGU3Nzg3ZWI3OTQ3NmNkZmRjYzU1YzU1
|
10
|
+
NWJkOWU0M2U0MDJiOTBmODIwYjU2YjcxZTI2YmUwMDE4NDM4ZWMzOGYyYjMw
|
11
|
+
MWUxNjBlZmFlMjE5OGY1YTI0NjMxNTg0N2I3NjA0Y2Y2Njg0NGY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NzEyZTI2OTk2Yjk0NDE3MzFlNzFjNDA0YWVhYjEyYmQxNTI3NDNlMTE0ZTU3
|
14
|
+
ZTk3ZWM0NTkyMjY5ZDkyYjA5N2Y5ZGZjYmQ5ZWI1NTEyYTgzOWM2NmY4Mzdj
|
15
|
+
MmUxODI1YjNkMzZjYTk2ZTIzZGE5N2Y0ODMwNGEzMDBmZGU2MjA=
|
data/.coveralls.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
repo_token: aUWKzMB87Ndks1lvyCKgD2WVPwqwiYoXN
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# Rack::SimpleLogger
|
2
2
|
|
3
|
+
[](http://badge.fury.io/rb/rack-simple_logger)
|
4
|
+
[](https://travis-ci.org/i2bskn/rack-simple_logger)
|
5
|
+
[](https://coveralls.io/r/i2bskn/rack-simple_logger?branch=master)
|
6
|
+
[](https://codeclimate.com/github/i2bskn/rack-simple_logger)
|
7
|
+
|
3
8
|
Simple logger for rack.
|
4
9
|
|
5
10
|
## Installation
|
@@ -21,12 +21,6 @@ module Rack
|
|
21
21
|
logger_formatter if @log_type == :logger
|
22
22
|
end
|
23
23
|
|
24
|
-
def logger_formatter
|
25
|
-
@logger.formatter = Proc.new do |severity, datetime, progname, msg|
|
26
|
-
"#{msg}\n"
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
24
|
def write(log_hash)
|
31
25
|
send("write_#{@log_type}", log_hash)
|
32
26
|
end
|
@@ -42,5 +36,12 @@ module Rack
|
|
42
36
|
def write_other(log_hash)
|
43
37
|
@logger.write log_hash
|
44
38
|
end
|
39
|
+
|
40
|
+
private
|
41
|
+
def logger_formatter
|
42
|
+
@logger.formatter = Proc.new do |severity, datetime, progname, msg|
|
43
|
+
"#{msg}\n"
|
44
|
+
end
|
45
|
+
end
|
45
46
|
end
|
46
47
|
end
|
data/rack-simple_logger.gemspec
CHANGED
@@ -21,6 +21,6 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
22
|
spec.add_development_dependency "rake"
|
23
23
|
spec.add_development_dependency "rspec"
|
24
|
-
|
25
|
-
spec.
|
24
|
+
spec.add_development_dependency "rack"
|
25
|
+
spec.add_development_dependency "rack-test"
|
26
26
|
end
|
@@ -0,0 +1,161 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
describe Rack::LogProxy do
|
6
|
+
let(:logger_mock) {double("logger mock", class: "Logger").as_null_object}
|
7
|
+
let(:io_mock) {double("IO mock", class: "IO").as_null_object}
|
8
|
+
let(:mongo_mock) {double("mongo mock", class: "Mongo::Collection").as_null_object}
|
9
|
+
let(:custom_mock) {double("custom logger mock", class: "Other").as_null_object}
|
10
|
+
|
11
|
+
|
12
|
+
describe "#initialize" do
|
13
|
+
context "with Logger object" do
|
14
|
+
let(:proxy) {Rack::LogProxy.new(logger_mock)}
|
15
|
+
|
16
|
+
it "@logger should be a specified logger" do
|
17
|
+
expect(proxy.instance_eval{@logger}).to eq(logger_mock)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "@log_type should be a :logger" do
|
21
|
+
expect(proxy.instance_eval{@log_type}).to eq(:logger)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should call logger_formatter method" do
|
25
|
+
Rack::LogProxy.any_instance.should_receive(:logger_formatter)
|
26
|
+
expect{proxy}.not_to raise_error
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context "with String object" do
|
31
|
+
before {::Logger.should_receive(:new).with("str").and_return(logger_mock)}
|
32
|
+
let(:proxy) {Rack::LogProxy.new("str")}
|
33
|
+
|
34
|
+
it "create new logger object" do
|
35
|
+
expect(proxy.instance_eval{@logger}).to eq(logger_mock)
|
36
|
+
end
|
37
|
+
|
38
|
+
it "@log_type should be a :logger" do
|
39
|
+
expect(proxy.instance_eval{@log_type}).to eq(:logger)
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should call logger_formatter method" do
|
43
|
+
Rack::LogProxy.any_instance.should_receive(:logger_formatter)
|
44
|
+
expect{proxy}.not_to raise_error
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context "with IO object" do
|
49
|
+
before {::Logger.should_receive(:new).with(io_mock).and_return(logger_mock)}
|
50
|
+
let(:proxy) {Rack::LogProxy.new(io_mock)}
|
51
|
+
|
52
|
+
it "create new logger object" do
|
53
|
+
expect(proxy.instance_eval{@logger}).to eq(logger_mock)
|
54
|
+
end
|
55
|
+
|
56
|
+
it "@log_type should be a :logger" do
|
57
|
+
expect(proxy.instance_eval{@log_type}).to eq(:logger)
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should call logger_formatter method" do
|
61
|
+
Rack::LogProxy.any_instance.should_receive(:logger_formatter)
|
62
|
+
expect{proxy}.not_to raise_error
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
context "with Mongo::Connection object" do
|
67
|
+
let(:proxy) {Rack::LogProxy.new(mongo_mock)}
|
68
|
+
|
69
|
+
it "@logger should be a connection of mongodb" do
|
70
|
+
expect(proxy.instance_eval{@logger}).to eq(mongo_mock)
|
71
|
+
end
|
72
|
+
|
73
|
+
it "@log_type should be a :mongo" do
|
74
|
+
expect(proxy.instance_eval{@log_type}).to eq(:mongo)
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should not call logger_formatter method" do
|
78
|
+
Rack::LogProxy.any_instance.should_not_receive(:logger_formatter)
|
79
|
+
expect{proxy}.not_to raise_error
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
context "with custom logger object" do
|
84
|
+
let(:proxy) {Rack::LogProxy.new(custom_mock)}
|
85
|
+
|
86
|
+
it "@logger should be a custom logger object" do
|
87
|
+
expect(proxy.instance_eval{@logger}).to eq(custom_mock)
|
88
|
+
end
|
89
|
+
|
90
|
+
it "@log_type should be a :mongo" do
|
91
|
+
expect(proxy.instance_eval{@log_type}).to eq(:other)
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should not call logger_formatter method" do
|
95
|
+
Rack::LogProxy.any_instance.should_not_receive(:logger_formatter)
|
96
|
+
expect{proxy}.not_to raise_error
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
describe "#write" do
|
102
|
+
it "dispatch to write_logger" do
|
103
|
+
Rack::LogProxy.any_instance.should_receive(:write_logger)
|
104
|
+
expect{Rack::LogProxy.new(logger_mock).write(k: "v")}.not_to raise_error
|
105
|
+
end
|
106
|
+
|
107
|
+
it "dispatch to write_mongo" do
|
108
|
+
Rack::LogProxy.any_instance.should_receive(:write_mongo)
|
109
|
+
expect{Rack::LogProxy.new(mongo_mock).write(k: "v")}.not_to raise_error
|
110
|
+
end
|
111
|
+
|
112
|
+
it "dispatch to write_other" do
|
113
|
+
Rack::LogProxy.any_instance.should_receive(:write_other)
|
114
|
+
expect{Rack::LogProxy.new(custom_mock).write(k: "v")}.not_to raise_error
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
describe "#write_logger" do
|
119
|
+
it "output ltsv format log" do
|
120
|
+
proxy = Rack::LogProxy.new(logger_mock)
|
121
|
+
logger_mock.should_receive(:info).with("k1:v1\tk2:v2")
|
122
|
+
expect{proxy.write(k1: "v1", k2: "v2")}.not_to raise_error
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
describe "#write_mongo" do
|
127
|
+
it "insert log of Hash" do
|
128
|
+
proxy = Rack::LogProxy.new(mongo_mock)
|
129
|
+
mongo_mock.should_receive(:insert).with(k: "v")
|
130
|
+
expect{proxy.write(k: "v")}.not_to raise_error
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
describe "#write_other" do
|
135
|
+
it "write custom format log" do
|
136
|
+
proxy = Rack::LogProxy.new(custom_mock)
|
137
|
+
custom_mock.should_receive(:write).with(k: "v")
|
138
|
+
expect{proxy.write(k: "v")}.not_to raise_error
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
describe "#logger_formatter" do
|
143
|
+
let(:proxy) {Rack::LogProxy.new(STDOUT)}
|
144
|
+
|
145
|
+
it "should call logger_formatter method" do
|
146
|
+
Rack::LogProxy.any_instance.should_receive(:logger_formatter)
|
147
|
+
expect{proxy}.not_to raise_error
|
148
|
+
end
|
149
|
+
|
150
|
+
it "format is the only message" do
|
151
|
+
expect(
|
152
|
+
proxy.instance_eval{@logger}.formatter.call(
|
153
|
+
"severity",
|
154
|
+
"datetime",
|
155
|
+
"progname",
|
156
|
+
"msg"
|
157
|
+
)
|
158
|
+
).to eq("msg\n")
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
@@ -1,3 +1,42 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
3
|
require "spec_helper"
|
4
|
+
|
5
|
+
describe Rack::SimpleLogger do
|
6
|
+
let(:logger) {double("logger mock", class: "Logger").as_null_object}
|
7
|
+
let(:app) {Rack::SimpleLogger.new(TestApp.new, log: logger)}
|
8
|
+
|
9
|
+
describe "#initialize" do
|
10
|
+
it "@app should be a TestApp object" do
|
11
|
+
expect(app.instance_eval{@app}.is_a? TestApp).to be_true
|
12
|
+
end
|
13
|
+
|
14
|
+
it "@logger should be a LogPorxy object" do
|
15
|
+
expect(app.instance_eval{@logger}.is_a? Rack::LogProxy).to be_true
|
16
|
+
end
|
17
|
+
|
18
|
+
it "@logger is STDOUT if not specified" do
|
19
|
+
Rack::LogProxy.should_receive(:new).with(STDOUT)
|
20
|
+
Rack::SimpleLogger.new(TestApp.new)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "#call" do
|
25
|
+
it "should call log method" do
|
26
|
+
Rack::SimpleLogger.any_instance.should_receive(:log)
|
27
|
+
get "/"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "#log" do
|
32
|
+
after {get "/"}
|
33
|
+
|
34
|
+
it "should call LogProxy#write" do
|
35
|
+
Rack::LogProxy.any_instance.should_receive(:write)
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should call logger#info" do
|
39
|
+
logger.should_receive(:info)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -9,7 +9,11 @@ SimpleCov.start do
|
|
9
9
|
end
|
10
10
|
|
11
11
|
require "rack/simple_logger"
|
12
|
+
require "rack/test"
|
13
|
+
|
14
|
+
Dir[File.expand_path("../support/*.rb", __FILE__)].each {|f| require f}
|
12
15
|
|
13
16
|
RSpec.configure do |config|
|
17
|
+
config.include Rack::Test::Methods
|
14
18
|
config.order = "random"
|
15
19
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-simple_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- i2bskn
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-06-
|
11
|
+
date: 2013-06-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -28,42 +28,56 @@ dependencies:
|
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - '>='
|
31
|
+
- - ! '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - '>='
|
38
|
+
- - ! '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - '>='
|
45
|
+
- - ! '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - '>='
|
52
|
+
- - ! '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rack
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - '>='
|
59
|
+
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
|
-
type: :
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ! '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rack-test
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ! '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
|
-
- - '>='
|
80
|
+
- - ! '>='
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '0'
|
69
83
|
description: Simple logger for rack
|
@@ -73,7 +87,9 @@ executables: []
|
|
73
87
|
extensions: []
|
74
88
|
extra_rdoc_files: []
|
75
89
|
files:
|
90
|
+
- .coveralls.yml
|
76
91
|
- .gitignore
|
92
|
+
- .travis.yml
|
77
93
|
- Gemfile
|
78
94
|
- LICENSE.txt
|
79
95
|
- README.md
|
@@ -82,8 +98,10 @@ files:
|
|
82
98
|
- lib/rack/simple_logger/log_proxy.rb
|
83
99
|
- lib/rack/simple_logger/version.rb
|
84
100
|
- rack-simple_logger.gemspec
|
101
|
+
- spec/rack/simple_logger/log_proxy_spec.rb
|
85
102
|
- spec/rack/simple_logger_spec.rb
|
86
103
|
- spec/spec_helper.rb
|
104
|
+
- spec/support/test_app.rb
|
87
105
|
homepage: https://github.com/i2bskn/rack-simple_logger
|
88
106
|
licenses:
|
89
107
|
- MIT
|
@@ -94,20 +112,22 @@ require_paths:
|
|
94
112
|
- lib
|
95
113
|
required_ruby_version: !ruby/object:Gem::Requirement
|
96
114
|
requirements:
|
97
|
-
- - '>='
|
115
|
+
- - ! '>='
|
98
116
|
- !ruby/object:Gem::Version
|
99
117
|
version: '0'
|
100
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
119
|
requirements:
|
102
|
-
- - '>='
|
120
|
+
- - ! '>='
|
103
121
|
- !ruby/object:Gem::Version
|
104
122
|
version: '0'
|
105
123
|
requirements: []
|
106
124
|
rubyforge_project:
|
107
|
-
rubygems_version: 2.0.
|
125
|
+
rubygems_version: 2.0.3
|
108
126
|
signing_key:
|
109
127
|
specification_version: 4
|
110
128
|
summary: Simple logger for rack
|
111
129
|
test_files:
|
130
|
+
- spec/rack/simple_logger/log_proxy_spec.rb
|
112
131
|
- spec/rack/simple_logger_spec.rb
|
113
132
|
- spec/spec_helper.rb
|
133
|
+
- spec/support/test_app.rb
|