mirror of
https://github.com/samsonjs/grape_logging.git
synced 2026-03-25 08:55:47 +00:00
Remove OpenStruct
This commit is contained in:
parent
d97750a318
commit
a8290d3522
6 changed files with 37 additions and 41 deletions
|
|
@ -2,6 +2,7 @@ inherit_from: .rubocop_todo.yml
|
||||||
|
|
||||||
AllCops:
|
AllCops:
|
||||||
NewCops: enable
|
NewCops: enable
|
||||||
|
TargetRubyVersion: 3.0
|
||||||
|
|
||||||
Metrics/BlockLength:
|
Metrics/BlockLength:
|
||||||
CountAsOne: [array, hash, heredoc, method_call]
|
CountAsOne: [array, hash, heredoc, method_call]
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ module GrapeLogging
|
||||||
def clean_parameters(parameters)
|
def clean_parameters(parameters)
|
||||||
original_encoding_map = build_encoding_map(parameters)
|
original_encoding_map = build_encoding_map(parameters)
|
||||||
params = transform_key_encoding(parameters, Hash.new { |h, _| [Encoding::ASCII_8BIT, h] })
|
params = transform_key_encoding(parameters, Hash.new { |h, _| [Encoding::ASCII_8BIT, h] })
|
||||||
cleaned_params = parameter_filter.filter(params).reject { |key, _value| @exceptions.include?(key) }
|
cleaned_params = parameter_filter.filter(params).except(*@exceptions)
|
||||||
transform_key_encoding(cleaned_params, original_encoding_map)
|
transform_key_encoding(cleaned_params, original_encoding_map)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
require 'ostruct'
|
|
||||||
|
|
||||||
describe GrapeLogging::Loggers::ClientEnv do
|
describe GrapeLogging::Loggers::ClientEnv do
|
||||||
let(:ip) { '10.0.0.1' }
|
let(:ip) { '10.0.0.1' }
|
||||||
|
|
@ -9,9 +8,9 @@ describe GrapeLogging::Loggers::ClientEnv do
|
||||||
|
|
||||||
context 'forwarded for' do
|
context 'forwarded for' do
|
||||||
let(:mock_request) do
|
let(:mock_request) do
|
||||||
OpenStruct.new(env: {
|
instance_double(Rack::Request, env: {
|
||||||
'HTTP_X_FORWARDED_FOR' => forwarded_for
|
'HTTP_X_FORWARDED_FOR' => forwarded_for
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'sets the ip key' do
|
it 'sets the ip key' do
|
||||||
|
|
@ -26,9 +25,9 @@ describe GrapeLogging::Loggers::ClientEnv do
|
||||||
|
|
||||||
context 'remote address' do
|
context 'remote address' do
|
||||||
let(:mock_request) do
|
let(:mock_request) do
|
||||||
OpenStruct.new(env: {
|
instance_double(Rack::Request, env: {
|
||||||
'REMOTE_ADDR' => remote_addr
|
'REMOTE_ADDR' => remote_addr
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'sets the ip key' do
|
it 'sets the ip key' do
|
||||||
|
|
@ -38,9 +37,9 @@ describe GrapeLogging::Loggers::ClientEnv do
|
||||||
|
|
||||||
context 'user agent' do
|
context 'user agent' do
|
||||||
let(:mock_request) do
|
let(:mock_request) do
|
||||||
OpenStruct.new(env: {
|
instance_double(Rack::Request, env: {
|
||||||
'HTTP_USER_AGENT' => user_agent
|
'HTTP_USER_AGENT' => user_agent
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'sets the ua key' do
|
it 'sets the ua key' do
|
||||||
|
|
|
||||||
|
|
@ -1,29 +1,27 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
require 'ostruct'
|
|
||||||
|
|
||||||
describe GrapeLogging::Loggers::FilterParameters do
|
describe GrapeLogging::Loggers::FilterParameters do
|
||||||
let(:filtered_parameters) { %w[one four] }
|
let(:filtered_parameters) { %w[one four] }
|
||||||
|
|
||||||
let(:mock_request) do
|
let(:mock_request) do
|
||||||
OpenStruct.new(params: {
|
instance_double(Rack::Request, params: {
|
||||||
'this_one' => 'this one',
|
'this_one' => 'this one',
|
||||||
'that_one' => 'one',
|
'that_one' => 'one',
|
||||||
'two' => 'two',
|
'two' => 'two',
|
||||||
'three' => 'three',
|
'three' => 'three',
|
||||||
'four' => 'four',
|
'four' => 'four',
|
||||||
"\xff" => 'invalid utf8'
|
"\xff" => 'invalid utf8'
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
let(:mock_request_with_deep_nesting) do
|
let(:mock_request_with_deep_nesting) do
|
||||||
deep_clone = -> { Marshal.load Marshal.dump mock_request.params }
|
deep_clone = -> { Marshal.load Marshal.dump mock_request.params }
|
||||||
OpenStruct.new(
|
instance_double(Rack::Request,
|
||||||
params: deep_clone.call.merge(
|
params: deep_clone.call.merge(
|
||||||
'five' => deep_clone.call.merge(
|
'five' => deep_clone.call.merge(
|
||||||
deep_clone.call.merge({ 'six' => { 'seven' => 'seven', 'eight' => 'eight', 'one' => 'another one' } })
|
deep_clone.call.merge({ 'six' => { 'seven' => 'seven', 'eight' => 'eight', 'one' => 'another one' } })
|
||||||
)
|
)
|
||||||
)
|
))
|
||||||
)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
let(:subject) do
|
let(:subject) do
|
||||||
|
|
@ -79,7 +77,7 @@ describe GrapeLogging::Loggers::FilterParameters do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with symbol keys, which occur during automated testing' do
|
context 'with symbol keys, which occur during automated testing' do
|
||||||
let(:mock_request) { OpenStruct.new(params: { sneaky_symbol: 'hey!' }) }
|
let(:mock_request) { instance_double(Rack::Request, params: { sneaky_symbol: 'hey!' }) }
|
||||||
|
|
||||||
it 'converts keys to strings' do
|
it 'converts keys to strings' do
|
||||||
expect(subject.parameters(mock_request, nil)).to eq(params: {
|
expect(subject.parameters(mock_request, nil)).to eq(params: {
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,22 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
require 'ostruct'
|
|
||||||
|
|
||||||
describe GrapeLogging::Loggers::RequestHeaders do
|
describe GrapeLogging::Loggers::RequestHeaders do
|
||||||
let(:mock_request) do
|
let(:mock_request) do
|
||||||
OpenStruct.new(env: { HTTP_REFERER: 'http://example.com', HTTP_ACCEPT: 'text/plain' })
|
instance_double(Rack::Request, env: { HTTP_REFERER: 'http://example.com', HTTP_ACCEPT: 'text/plain' })
|
||||||
end
|
end
|
||||||
|
|
||||||
let(:mock_request_with_unhandled_headers) do
|
let(:mock_request_with_unhandled_headers) do
|
||||||
OpenStruct.new(env: {
|
instance_double(Rack::Request, env: {
|
||||||
HTTP_REFERER: 'http://example.com',
|
HTTP_REFERER: 'http://example.com',
|
||||||
'PATH_INFO' => '/api/v1/users'
|
'PATH_INFO' => '/api/v1/users'
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
let(:mock_request_with_long_headers) do
|
let(:mock_request_with_long_headers) do
|
||||||
OpenStruct.new(env: {
|
instance_double(Rack::Request, env: {
|
||||||
HTTP_REFERER: 'http://example.com',
|
HTTP_REFERER: 'http://example.com',
|
||||||
HTTP_USER_AGENT: 'Mozilla/5.0'
|
HTTP_USER_AGENT: 'Mozilla/5.0'
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'strips HTTP_ from the parameter' do
|
it 'strips HTTP_ from the parameter' do
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
require 'ostruct'
|
|
||||||
|
|
||||||
describe GrapeLogging::Loggers::Response do
|
describe GrapeLogging::Loggers::Response do
|
||||||
context 'with a parseable JSON body' do
|
context 'with a parseable JSON body' do
|
||||||
let(:response) do
|
let(:response) do
|
||||||
OpenStruct.new(body: [{ one: 'two', three: { four: 5 } }])
|
instance_double(Rack::Request, body: [{ one: 'two', three: { four: 5 } }])
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns an array of parsed JSON objects' do
|
it 'returns an array of parsed JSON objects' do
|
||||||
|
|
@ -14,7 +13,7 @@ describe GrapeLogging::Loggers::Response do
|
||||||
|
|
||||||
context 'with a body that is not parseable JSON' do
|
context 'with a body that is not parseable JSON' do
|
||||||
let(:response) do
|
let(:response) do
|
||||||
OpenStruct.new(body: 'this is a body')
|
instance_double(Rack::Request, body: 'this is a body')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'just returns the body' do
|
it 'just returns the body' do
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue