right_support 2.8.38 → 2.8.39

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/VERSION CHANGED
@@ -1 +1 @@
1
- 2.8.38
1
+ 2.8.39
@@ -41,10 +41,13 @@ module RightSupport::Rack
41
41
  #
42
42
  # @option options [Array] :only log for these path Regexps unless in debug mode
43
43
  # @option options [Array] :except log except for these path Regexps unless in debug mode
44
+ # @option options [Array] :include_query_string log the contents of the query string
44
45
  def initialize(app, options = {})
45
46
  @app = app
46
47
  @only = options[:only]
47
48
  @except = options[:except]
49
+ # by default we don't log the query string contents because it may have sensitive data.
50
+ @include_query_string = options[:include_query_string] || false
48
51
  end
49
52
 
50
53
  # Add a logger to the Rack environment and call the next middleware.
@@ -67,7 +70,6 @@ module RightSupport::Rack
67
70
  env["rack.logging.enabled"] = enabled = logging_enabled?(logger, env)
68
71
 
69
72
  began_at = Time.now
70
-
71
73
  log_request_begin(logger, env) if enabled
72
74
  status, header, body = @app.call(env)
73
75
  if env['sinatra.error'] && !env['sinatra.error.handled']
@@ -107,10 +109,10 @@ module RightSupport::Rack
107
109
  remote_addr = env['HTTP_X_FORWARDED_FOR'] || env["REMOTE_ADDR"] || "-"
108
110
  remote_addr = remote_addr.ljust(15)
109
111
 
110
- # Log the fact that a query string was present, but do not log its contents
111
- # because it may have sensitive data.
112
+ # If we're not logging the contents of the query string we only log the fact that a query
113
+ # string was present.
112
114
  if (query = env["QUERY_STRING"]) && !query.empty?
113
- query_info = '?...'
115
+ query_info = @include_query_string ? "?#{CGI::escape(query)}" : '?...'
114
116
  else
115
117
  query_info = ''
116
118
  end
@@ -2,16 +2,14 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: right_support 2.8.38 ruby lib
6
5
 
7
6
  Gem::Specification.new do |s|
8
7
  s.name = "right_support"
9
- s.version = "2.8.38"
8
+ s.version = "2.8.39"
10
9
 
11
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
- s.require_paths = ["lib"]
13
11
  s.authors = ["Tony Spataro", "Sergey Sergyenko", "Ryan Williamson", "Lee Kirchhoff", "Alexey Karpik", "Scott Messier"]
14
- s.date = "2014-12-05"
12
+ s.date = "2015-01-21"
15
13
  s.description = "A toolkit of useful, reusable foundation code created by RightScale."
16
14
  s.email = "support@rightscale.com"
17
15
  s.extra_rdoc_files = [
@@ -148,11 +146,12 @@ Gem::Specification.new do |s|
148
146
  ]
149
147
  s.homepage = "https://github.com/rightscale/right_support"
150
148
  s.licenses = ["MIT"]
151
- s.rubygems_version = "2.2.2"
149
+ s.require_paths = ["lib"]
150
+ s.rubygems_version = "1.8.15"
152
151
  s.summary = "Reusable foundation code."
153
152
 
154
153
  if s.respond_to? :specification_version then
155
- s.specification_version = 4
154
+ s.specification_version = 3
156
155
 
157
156
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
158
157
  s.add_development_dependency(%q<rake>, ["~> 10.0"])
@@ -14,7 +14,7 @@ describe RightSupport::Rack::RequestLogger do
14
14
  context :initialize do
15
15
  context 'without :logger option' do
16
16
  it 'uses rack.logger' do
17
- @logger.should_receive(:info)
17
+ @logger.should_receive(:info).at_least.once
18
18
  @middleware.call(@env).should == [200, {}, 'body']
19
19
  end
20
20
  end
@@ -27,9 +27,9 @@ describe RightSupport::Rack::RequestLogger do
27
27
  end
28
28
 
29
29
  it 'logs the exception' do
30
- @logger.should_receive(:error)
30
+ @logger.should_receive(:error).at_least.once
31
31
  lambda {
32
- @middleware.call({})
32
+ @middleware.call(@env)
33
33
  }.should raise_error
34
34
  end
35
35
  end
@@ -42,7 +42,7 @@ describe RightSupport::Rack::RequestLogger do
42
42
 
43
43
  it 'logs the exception' do
44
44
  @logger.should_receive(:info)
45
- @logger.should_receive(:error)
45
+ @logger.should_receive(:error).at_least.once
46
46
  @middleware.call(@env)
47
47
  end
48
48
 
@@ -64,12 +64,12 @@ describe RightSupport::Rack::RequestLogger do
64
64
 
65
65
  it 'does not limit if logger in debug mode' do
66
66
  @logger.should_receive(:level).and_return(Logger::DEBUG)
67
- @logger.should_receive(:info)
67
+ @logger.should_receive(:info).at_least.once
68
68
  @middleware.call(@env)
69
69
  end
70
70
 
71
71
  it 'does not limit if HTTP_X_DEBUG set' do
72
- @logger.should_receive(:info)
72
+ @logger.should_receive(:info).at_least.once
73
73
  @middleware.call(@env.merge('HTTP_X_DEBUG' => true))
74
74
  end
75
75
 
@@ -86,13 +86,44 @@ describe RightSupport::Rack::RequestLogger do
86
86
  end
87
87
 
88
88
  it 'sets rack.logging.enabled in Rack environment' do
89
- @logger.should_receive(:info)
89
+ @logger.should_receive(:info).at_least.once
90
90
  @env.merge!('PATH_INFO' => '/my/app')
91
91
  @middleware.call(@env)
92
92
  @env['rack.logging.enabled'].should be_true
93
93
  end
94
94
  end
95
95
 
96
+ context 'when logging the query string' do
97
+ before(:each) do
98
+ @options = {}
99
+ @env.merge!('PATH_INFO' => '/my/app', 'QUERY_STRING' => 'foo=bar')
100
+ @middleware = RightSupport::Rack::RequestLogger.new(@app, @options)
101
+ end
102
+
103
+ it 'does not log the query string by default' do
104
+ @logger.should_receive(:info).with(FlexMock.on { |arg| arg.should =~ /\/my\/app\?\.{3}/ } )
105
+ @middleware.send(:log_request_begin, @logger, @env)
106
+ end
107
+
108
+ context 'when the include_query_string option is true' do
109
+ it 'logs the query string' do
110
+ @options[:include_query_string] = true
111
+ @middleware = RightSupport::Rack::RequestLogger.new(@app, @options)
112
+ @logger.should_receive(:info).with(FlexMock.on { |arg| arg.should =~ /\/my\/app\?foo%3Dbar/ } )
113
+ @middleware.send(:log_request_begin, @logger, @env)
114
+ end
115
+ end
116
+
117
+ context 'when the include_query_string option is false' do
118
+ it 'does not log the query string' do
119
+ @options[:include_query_string] = false
120
+ @middleware = RightSupport::Rack::RequestLogger.new(@app, @options)
121
+ @logger.should_receive(:info).with(FlexMock.on { |arg| arg.should =~ /\/my\/app\?\.{3}/ } )
122
+ @middleware.send(:log_request_begin, @logger, @env)
123
+ end
124
+ end
125
+ end
126
+
96
127
  context 'Shard ID logging' do
97
128
  before(:each) do
98
129
  @logger = mock_logger
metadata CHANGED
@@ -1,9 +1,15 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: right_support
3
- version: !ruby/object:Gem::Version
4
- version: 2.8.38
3
+ version: !ruby/object:Gem::Version
4
+ hash: 97
5
+ prerelease:
6
+ segments:
7
+ - 2
8
+ - 8
9
+ - 39
10
+ version: 2.8.39
5
11
  platform: ruby
6
- authors:
12
+ authors:
7
13
  - Tony Spataro
8
14
  - Sergey Sergyenko
9
15
  - Ryan Williamson
@@ -13,90 +19,95 @@ authors:
13
19
  autorequire:
14
20
  bindir: bin
15
21
  cert_chain: []
16
- date: 2014-12-05 00:00:00.000000000 Z
17
- dependencies:
18
- - !ruby/object:Gem::Dependency
22
+
23
+ date: 2015-01-21 00:00:00 Z
24
+ dependencies:
25
+ - !ruby/object:Gem::Dependency
26
+ prerelease: false
19
27
  name: rake
20
- requirement: !ruby/object:Gem::Requirement
21
- requirements:
22
- - - "~>"
23
- - !ruby/object:Gem::Version
24
- version: '10.0'
25
28
  type: :development
29
+ version_requirements: &id001 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ hash: 35
35
+ segments:
36
+ - 10
37
+ - 0
38
+ version: "10.0"
39
+ requirement: *id001
40
+ - !ruby/object:Gem::Dependency
26
41
  prerelease: false
27
- version_requirements: !ruby/object:Gem::Requirement
28
- requirements:
29
- - - "~>"
30
- - !ruby/object:Gem::Version
31
- version: '10.0'
32
- - !ruby/object:Gem::Dependency
33
42
  name: jeweler
34
- requirement: !ruby/object:Gem::Requirement
35
- requirements:
36
- - - "~>"
37
- - !ruby/object:Gem::Version
38
- version: '2.0'
39
43
  type: :development
44
+ version_requirements: &id002 !ruby/object:Gem::Requirement
45
+ none: false
46
+ requirements:
47
+ - - ~>
48
+ - !ruby/object:Gem::Version
49
+ hash: 3
50
+ segments:
51
+ - 2
52
+ - 0
53
+ version: "2.0"
54
+ requirement: *id002
55
+ - !ruby/object:Gem::Dependency
40
56
  prerelease: false
41
- version_requirements: !ruby/object:Gem::Requirement
42
- requirements:
43
- - - "~>"
44
- - !ruby/object:Gem::Version
45
- version: '2.0'
46
- - !ruby/object:Gem::Dependency
47
57
  name: ruby-debug
48
- requirement: !ruby/object:Gem::Requirement
49
- requirements:
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- version: '0'
53
58
  type: :development
54
- prerelease: false
55
- version_requirements: !ruby/object:Gem::Requirement
56
- requirements:
59
+ version_requirements: &id003 !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
57
62
  - - ">="
58
- - !ruby/object:Gem::Version
59
- version: '0'
60
- - !ruby/object:Gem::Dependency
63
+ - !ruby/object:Gem::Version
64
+ hash: 3
65
+ segments:
66
+ - 0
67
+ version: "0"
68
+ requirement: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ prerelease: false
61
71
  name: pry
62
- requirement: !ruby/object:Gem::Requirement
63
- requirements:
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: '0'
67
72
  type: :development
68
- prerelease: false
69
- version_requirements: !ruby/object:Gem::Requirement
70
- requirements:
73
+ version_requirements: &id004 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
71
76
  - - ">="
72
- - !ruby/object:Gem::Version
73
- version: '0'
74
- - !ruby/object:Gem::Dependency
77
+ - !ruby/object:Gem::Version
78
+ hash: 3
79
+ segments:
80
+ - 0
81
+ version: "0"
82
+ requirement: *id004
83
+ - !ruby/object:Gem::Dependency
84
+ prerelease: false
75
85
  name: pry-byebug
76
- requirement: !ruby/object:Gem::Requirement
77
- requirements:
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- version: '0'
81
86
  type: :development
82
- prerelease: false
83
- version_requirements: !ruby/object:Gem::Requirement
84
- requirements:
87
+ version_requirements: &id005 !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
85
90
  - - ">="
86
- - !ruby/object:Gem::Version
87
- version: '0'
91
+ - !ruby/object:Gem::Version
92
+ hash: 3
93
+ segments:
94
+ - 0
95
+ version: "0"
96
+ requirement: *id005
88
97
  description: A toolkit of useful, reusable foundation code created by RightScale.
89
98
  email: support@rightscale.com
90
99
  executables: []
100
+
91
101
  extensions: []
92
- extra_rdoc_files:
102
+
103
+ extra_rdoc_files:
93
104
  - LICENSE
94
105
  - README.md
95
- files:
96
- - ".coveralls.yml"
97
- - ".rspec"
98
- - ".simplecov"
99
- - ".travis.yml"
106
+ files:
107
+ - .coveralls.yml
108
+ - .rspec
109
+ - .simplecov
110
+ - .travis.yml
100
111
  - CHANGELOG.rdoc
101
112
  - Gemfile
102
113
  - Gemfile.lock
@@ -220,27 +231,37 @@ files:
220
231
  - spec/validation/openssl_spec.rb
221
232
  - spec/validation/ssh_spec.rb
222
233
  homepage: https://github.com/rightscale/right_support
223
- licenses:
234
+ licenses:
224
235
  - MIT
225
- metadata: {}
226
236
  post_install_message:
227
237
  rdoc_options: []
228
- require_paths:
238
+
239
+ require_paths:
229
240
  - lib
230
- required_ruby_version: !ruby/object:Gem::Requirement
231
- requirements:
241
+ required_ruby_version: !ruby/object:Gem::Requirement
242
+ none: false
243
+ requirements:
232
244
  - - ">="
233
- - !ruby/object:Gem::Version
234
- version: '0'
235
- required_rubygems_version: !ruby/object:Gem::Requirement
236
- requirements:
245
+ - !ruby/object:Gem::Version
246
+ hash: 3
247
+ segments:
248
+ - 0
249
+ version: "0"
250
+ required_rubygems_version: !ruby/object:Gem::Requirement
251
+ none: false
252
+ requirements:
237
253
  - - ">="
238
- - !ruby/object:Gem::Version
239
- version: '0'
254
+ - !ruby/object:Gem::Version
255
+ hash: 3
256
+ segments:
257
+ - 0
258
+ version: "0"
240
259
  requirements: []
260
+
241
261
  rubyforge_project:
242
- rubygems_version: 2.2.2
262
+ rubygems_version: 1.8.15
243
263
  signing_key:
244
- specification_version: 4
264
+ specification_version: 3
245
265
  summary: Reusable foundation code.
246
266
  test_files: []
267
+
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: e0cb72f5d96896f6a249867296e5a6ee14021caa
4
- data.tar.gz: 930f29d6b579d374ddadf6636c3687aeb12f394e
5
- SHA512:
6
- metadata.gz: 9bc745e71199150c1c3097efe6ba4ec77549e6c5d34ae7fdd899710f5122adde38e77b01a56f4e826e8e49a297eed2534fc1be78cf72ffb924e79beb6335b064
7
- data.tar.gz: e823929462c375b3bb12f51c91fd39780de10eec2194232d32c5ea649166709f523bc2cad31f4030d588a9f95eebd38ba84d969c6f4aa9a195f223d188fbac28