Skip to content

Commit 48ab8c4

Browse files
authored
Merge pull request #94 from leoarnold/leoarnold/ostruct
Remove OpenStruct
2 parents d97750a + a8290d3 commit 48ab8c4

File tree

6 files changed

+37
-41
lines changed

6 files changed

+37
-41
lines changed

.rubocop.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ inherit_from: .rubocop_todo.yml
22

33
AllCops:
44
NewCops: enable
5+
TargetRubyVersion: 3.0
56

67
Metrics/BlockLength:
78
CountAsOne: [array, hash, heredoc, method_call]

lib/grape_logging/loggers/filter_parameters.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def safe_parameters(request)
3131
def clean_parameters(parameters)
3232
original_encoding_map = build_encoding_map(parameters)
3333
params = transform_key_encoding(parameters, Hash.new { |h, _| [Encoding::ASCII_8BIT, h] })
34-
cleaned_params = parameter_filter.filter(params).reject { |key, _value| @exceptions.include?(key) }
34+
cleaned_params = parameter_filter.filter(params).except(*@exceptions)
3535
transform_key_encoding(cleaned_params, original_encoding_map)
3636
end
3737

spec/lib/grape_logging/loggers/client_env_spec.rb

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
require 'spec_helper'
2-
require 'ostruct'
32

43
describe GrapeLogging::Loggers::ClientEnv do
54
let(:ip) { '10.0.0.1' }
@@ -9,9 +8,9 @@
98

109
context 'forwarded for' do
1110
let(:mock_request) do
12-
OpenStruct.new(env: {
13-
'HTTP_X_FORWARDED_FOR' => forwarded_for
14-
})
11+
instance_double(Rack::Request, env: {
12+
'HTTP_X_FORWARDED_FOR' => forwarded_for
13+
})
1514
end
1615

1716
it 'sets the ip key' do
@@ -26,9 +25,9 @@
2625

2726
context 'remote address' do
2827
let(:mock_request) do
29-
OpenStruct.new(env: {
30-
'REMOTE_ADDR' => remote_addr
31-
})
28+
instance_double(Rack::Request, env: {
29+
'REMOTE_ADDR' => remote_addr
30+
})
3231
end
3332

3433
it 'sets the ip key' do
@@ -38,9 +37,9 @@
3837

3938
context 'user agent' do
4039
let(:mock_request) do
41-
OpenStruct.new(env: {
42-
'HTTP_USER_AGENT' => user_agent
43-
})
40+
instance_double(Rack::Request, env: {
41+
'HTTP_USER_AGENT' => user_agent
42+
})
4443
end
4544

4645
it 'sets the ua key' do

spec/lib/grape_logging/loggers/filter_parameters_spec.rb

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,27 @@
11
require 'spec_helper'
2-
require 'ostruct'
32

43
describe GrapeLogging::Loggers::FilterParameters do
54
let(:filtered_parameters) { %w[one four] }
65

76
let(:mock_request) do
8-
OpenStruct.new(params: {
9-
'this_one' => 'this one',
10-
'that_one' => 'one',
11-
'two' => 'two',
12-
'three' => 'three',
13-
'four' => 'four',
14-
"\xff" => 'invalid utf8'
15-
})
7+
instance_double(Rack::Request, params: {
8+
'this_one' => 'this one',
9+
'that_one' => 'one',
10+
'two' => 'two',
11+
'three' => 'three',
12+
'four' => 'four',
13+
"\xff" => 'invalid utf8'
14+
})
1615
end
1716

1817
let(:mock_request_with_deep_nesting) do
1918
deep_clone = -> { Marshal.load Marshal.dump mock_request.params }
20-
OpenStruct.new(
21-
params: deep_clone.call.merge(
22-
'five' => deep_clone.call.merge(
23-
deep_clone.call.merge({ 'six' => { 'seven' => 'seven', 'eight' => 'eight', 'one' => 'another one' } })
24-
)
25-
)
26-
)
19+
instance_double(Rack::Request,
20+
params: deep_clone.call.merge(
21+
'five' => deep_clone.call.merge(
22+
deep_clone.call.merge({ 'six' => { 'seven' => 'seven', 'eight' => 'eight', 'one' => 'another one' } })
23+
)
24+
))
2725
end
2826

2927
let(:subject) do
@@ -79,7 +77,7 @@
7977
end
8078

8179
context 'with symbol keys, which occur during automated testing' do
82-
let(:mock_request) { OpenStruct.new(params: { sneaky_symbol: 'hey!' }) }
80+
let(:mock_request) { instance_double(Rack::Request, params: { sneaky_symbol: 'hey!' }) }
8381

8482
it 'converts keys to strings' do
8583
expect(subject.parameters(mock_request, nil)).to eq(params: {

spec/lib/grape_logging/loggers/request_headers_spec.rb

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,22 @@
11
require 'spec_helper'
2-
require 'ostruct'
32

43
describe GrapeLogging::Loggers::RequestHeaders do
54
let(:mock_request) do
6-
OpenStruct.new(env: { HTTP_REFERER: 'http://example.com', HTTP_ACCEPT: 'text/plain' })
5+
instance_double(Rack::Request, env: { HTTP_REFERER: 'http://example.com', HTTP_ACCEPT: 'text/plain' })
76
end
87

98
let(:mock_request_with_unhandled_headers) do
10-
OpenStruct.new(env: {
11-
HTTP_REFERER: 'http://example.com',
12-
'PATH_INFO' => '/api/v1/users'
13-
})
9+
instance_double(Rack::Request, env: {
10+
HTTP_REFERER: 'http://example.com',
11+
'PATH_INFO' => '/api/v1/users'
12+
})
1413
end
1514

1615
let(:mock_request_with_long_headers) do
17-
OpenStruct.new(env: {
18-
HTTP_REFERER: 'http://example.com',
19-
HTTP_USER_AGENT: 'Mozilla/5.0'
20-
})
16+
instance_double(Rack::Request, env: {
17+
HTTP_REFERER: 'http://example.com',
18+
HTTP_USER_AGENT: 'Mozilla/5.0'
19+
})
2120
end
2221

2322
it 'strips HTTP_ from the parameter' do

spec/lib/grape_logging/loggers/response_spec.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
require 'spec_helper'
2-
require 'ostruct'
32

43
describe GrapeLogging::Loggers::Response do
54
context 'with a parseable JSON body' do
65
let(:response) do
7-
OpenStruct.new(body: [{ one: 'two', three: { four: 5 } }])
6+
instance_double(Rack::Request, body: [{ one: 'two', three: { four: 5 } }])
87
end
98

109
it 'returns an array of parsed JSON objects' do
@@ -14,7 +13,7 @@
1413

1514
context 'with a body that is not parseable JSON' do
1615
let(:response) do
17-
OpenStruct.new(body: 'this is a body')
16+
instance_double(Rack::Request, body: 'this is a body')
1817
end
1918

2019
it 'just returns the body' do

0 commit comments

Comments
 (0)