From 88698363fd01c29a6b2bf97862aad9f4b17be8a5 Mon Sep 17 00:00:00 2001 From: Ted Johansson Date: Tue, 12 Mar 2019 04:59:09 +0800 Subject: [PATCH] Chore: RuboCop Style/MultipleComparison (#923) --- .rubocop_todo.yml | 5 ----- lib/faraday/encoders/flat_params_encoder.rb | 1 - spec/faraday/params_encoders/flat_spec.rb | 16 ++++++++++++++++ spec/faraday/params_encoders/nested_spec.rb | 10 ++++++++++ 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 8bb47511c..c58882884 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -47,8 +47,3 @@ Style/Documentation: - 'lib/faraday/response/logger.rb' - 'lib/faraday/response/raise_error.rb' - 'lib/faraday/utils.rb' - -# Offense count: 1 -Style/MultipleComparison: - Exclude: - - 'lib/faraday/encoders/flat_params_encoder.rb' diff --git a/lib/faraday/encoders/flat_params_encoder.rb b/lib/faraday/encoders/flat_params_encoder.rb index 20afe3a8a..02e83b8e4 100644 --- a/lib/faraday/encoders/flat_params_encoder.rb +++ b/lib/faraday/encoders/flat_params_encoder.rb @@ -29,7 +29,6 @@ def self.encode(params) buffer = +'' params.each do |key, value| encoded_key = escape(key) - value = value.to_s if value == true || value == false if value.nil? buffer << "#{encoded_key}&" elsif value.is_a?(Array) diff --git a/spec/faraday/params_encoders/flat_spec.rb b/spec/faraday/params_encoders/flat_spec.rb index 159d51bf2..937385a7c 100644 --- a/spec/faraday/params_encoders/flat_spec.rb +++ b/spec/faraday/params_encoders/flat_spec.rb @@ -10,4 +10,20 @@ expected = { 'a' => %w[one two three] } expect(subject.decode(query)).to eq(expected) end + + it 'decodes boolean values' do + query = 'a=true&b=false' + expected = { 'a' => 'true', 'b' => 'false' } + expect(subject.decode(query)).to eq(expected) + end + + it 'encodes boolean values' do + params = { a: true, b: false } + expect(subject.encode(params)).to eq('a=true&b=false') + end + + it 'encodes boolean values in array' do + params = { a: [true, false] } + expect(subject.encode(params)).to eq('a=true&a=false') + end end diff --git a/spec/faraday/params_encoders/nested_spec.rb b/spec/faraday/params_encoders/nested_spec.rb index 14c6bda58..6909f42f0 100644 --- a/spec/faraday/params_encoders/nested_spec.rb +++ b/spec/faraday/params_encoders/nested_spec.rb @@ -84,6 +84,16 @@ expect(result).to eq(expected) end + it 'encodes boolean values' do + params = { a: true, b: false } + expect(subject.encode(params)).to eq('a=true&b=false') + end + + it 'encodes boolean values in array' do + params = { a: [true, false] } + expect(subject.encode(params)).to eq('a%5B%5D=true&a%5B%5D=false') + end + shared_examples 'a wrong decoding' do it do expect { subject.decode(query) }.to raise_error(TypeError) do |e|