rack-simple_logger 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
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=
2
+ SHA1:
3
+ metadata.gz: 7dd4ec3cff4d4004ac1bdf0a55996a93de4e63cb
4
+ data.tar.gz: 36e11ad74ff7ef2239eff7eec58db1246338cbbe
5
+ SHA512:
6
+ metadata.gz: d252d442925f6f794fb6d2d7f61cb93e1761090267b4b4275a551423eeecb2fdb52ab926deb14bdd45f1f6dd342445973a24c1e8f2925a16858078f169dde30c
7
+ data.tar.gz: 4efbd7eea252240238174866f0d56c8353b70ec2e73a84cf14801e42ac454107838873f7f03faadb89203edcb6988bdb841f0a672c257093c37af538d34f76a4
@@ -4,36 +4,27 @@ require "logger"
4
4
 
5
5
  require "rack/simple_logger/version"
6
6
  require "rack/simple_logger/log_proxy"
7
+ require "rack/simple_logger/log_filter"
7
8
 
8
9
  module Rack
9
10
  class SimpleLogger
10
11
  def initialize(app, options={})
11
12
  options[:log] ||= STDOUT
12
13
  @logger = LogProxy.new(options[:log])
14
+ @filter = options[:filter] || LogFilter.new
13
15
  @app = app
14
16
  end
15
17
 
16
18
  def call(env)
17
19
  began_at = Time.now
18
20
  status, header, body = @app.call(env)
19
- log(env, status, header, began_at)
21
+ log(@filter.pass(env, status, header, began_at))
20
22
  [status, header, body]
21
23
  end
22
24
 
23
25
  private
24
- def log(env, status, header, began_at)
25
- @logger.write(
26
- xff: env["HTTP_X_FORWARDED_FOR"] || "-",
27
- host: env["REMOTE_ADDR"],
28
- time: began_at.strftime("%Y-%m-%d %H:%M:%S"),
29
- method: env["REQUEST_METHOD"],
30
- path: env["PATH_INFO"],
31
- query_strings: env["QUERY_STRING"] || "-",
32
- status: status,
33
- ua: env["HTTP_USER_AGENT"],
34
- res_size: header["Content-Length"],
35
- app_time: Time.now - began_at
36
- )
26
+ def log(log_hash)
27
+ @logger.write(log_hash)
37
28
  end
38
29
  end
39
30
  end
@@ -0,0 +1,20 @@
1
+ # coding: utf-8
2
+
3
+ module Rack
4
+ class LogFilter
5
+ def pass(env, status, header, began_at)
6
+ {
7
+ xff: env["HTTP_X_FORWARDED_FOR"] || "-",
8
+ host: env["REMOTE_ADDR"],
9
+ time: began_at.strftime("%Y-%m-%d %H:%M:%S"),
10
+ method: env["REQUEST_METHOD"],
11
+ path: env["PATH_INFO"],
12
+ query_strings: env["QUERY_STRING"] || "-",
13
+ status: status,
14
+ ua: env["HTTP_USER_AGENT"],
15
+ res_size: header["Content-Length"],
16
+ app_time: Time.now - began_at
17
+ }
18
+ end
19
+ end
20
+ end
@@ -1,5 +1,5 @@
1
1
  module Rack
2
2
  class SimpleLogger
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
@@ -0,0 +1,33 @@
1
+ # coding: utf-8
2
+
3
+ require "spec_helper"
4
+
5
+ describe Rack::LogFilter do
6
+ let(:filter) {Rack::LogFilter.new}
7
+ let(:status) {200}
8
+ let(:began_at) {Time.now}
9
+
10
+ let(:env) do
11
+ {
12
+ "REMOTE_ADDR"=>"127.0.0.1",
13
+ "REQUEST_METHOD"=>"GET",
14
+ "PATH_INFO"=>"/login",
15
+ "QUERY_STRING"=>"",
16
+ "HTTP_USER_AGENT"=>"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36"
17
+ }
18
+ end
19
+
20
+ let(:header) do
21
+ {"Content-Length" => 256}
22
+ end
23
+
24
+ describe "#pass" do
25
+ it "should return Hash object" do
26
+ expect(filter.pass(env, status, header, began_at).is_a? Hash).to be_true
27
+ end
28
+
29
+ it "size should be 10 items" do
30
+ expect(filter.pass(env, status, header, began_at).size).to eq(10)
31
+ end
32
+ end
33
+ end
@@ -4,6 +4,7 @@ require "spec_helper"
4
4
 
5
5
  describe Rack::SimpleLogger do
6
6
  let(:logger) {double("logger mock", class: "Logger").as_null_object}
7
+ let(:filter) {double("filter mock")}
7
8
  let(:app) {Rack::SimpleLogger.new(TestApp.new, log: logger)}
8
9
 
9
10
  describe "#initialize" do
@@ -15,10 +16,19 @@ describe Rack::SimpleLogger do
15
16
  expect(app.instance_eval{@logger}.is_a? Rack::LogProxy).to be_true
16
17
  end
17
18
 
18
- it "@logger is STDOUT if not specified" do
19
+ it "@logger should be a STDOUT if not specified" do
19
20
  Rack::LogProxy.should_receive(:new).with(STDOUT)
20
21
  Rack::SimpleLogger.new(TestApp.new)
21
22
  end
23
+
24
+ it "@filter should be a LogFilter object" do
25
+ expect(app.instance_eval{@filter}.is_a? Rack::LogFilter).to be_true
26
+ end
27
+
28
+ it "@filter should be a specified filter" do
29
+ app = Rack::SimpleLogger.new(TestApp.new, log: logger, filter: filter)
30
+ expect(app.instance_eval{@filter}).to eq(filter)
31
+ end
22
32
  end
23
33
 
24
34
  describe "#call" do
@@ -31,6 +41,10 @@ describe Rack::SimpleLogger do
31
41
  describe "#log" do
32
42
  after {get "/"}
33
43
 
44
+ it "should call LogFilter#pass" do
45
+ Rack::LogFilter.any_instance.should_receive(:pass).and_return({a: 1})
46
+ end
47
+
34
48
  it "should call LogProxy#write" do
35
49
  Rack::LogProxy.any_instance.should_receive(:write)
36
50
  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.2
4
+ version: 0.0.3
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-24 00:00:00.000000000 Z
11
+ date: 2013-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -28,56 +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
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rack-test
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ! '>='
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ! '>='
80
+ - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  description: Simple logger for rack
@@ -95,9 +95,11 @@ files:
95
95
  - README.md
96
96
  - Rakefile
97
97
  - lib/rack/simple_logger.rb
98
+ - lib/rack/simple_logger/log_filter.rb
98
99
  - lib/rack/simple_logger/log_proxy.rb
99
100
  - lib/rack/simple_logger/version.rb
100
101
  - rack-simple_logger.gemspec
102
+ - spec/rack/simple_logger/log_filter_spec.rb
101
103
  - spec/rack/simple_logger/log_proxy_spec.rb
102
104
  - spec/rack/simple_logger_spec.rb
103
105
  - spec/spec_helper.rb
@@ -112,21 +114,22 @@ require_paths:
112
114
  - lib
113
115
  required_ruby_version: !ruby/object:Gem::Requirement
114
116
  requirements:
115
- - - ! '>='
117
+ - - '>='
116
118
  - !ruby/object:Gem::Version
117
119
  version: '0'
118
120
  required_rubygems_version: !ruby/object:Gem::Requirement
119
121
  requirements:
120
- - - ! '>='
122
+ - - '>='
121
123
  - !ruby/object:Gem::Version
122
124
  version: '0'
123
125
  requirements: []
124
126
  rubyforge_project:
125
- rubygems_version: 2.0.3
127
+ rubygems_version: 2.0.0
126
128
  signing_key:
127
129
  specification_version: 4
128
130
  summary: Simple logger for rack
129
131
  test_files:
132
+ - spec/rack/simple_logger/log_filter_spec.rb
130
133
  - spec/rack/simple_logger/log_proxy_spec.rb
131
134
  - spec/rack/simple_logger_spec.rb
132
135
  - spec/spec_helper.rb