From f67afa46fac322b8cfe0b9fa22feb8d90d040966 Mon Sep 17 00:00:00 2001 From: Erik Michaels-Ober Date: Sat, 1 Dec 2012 18:04:07 -0800 Subject: [PATCH] Fix "URI.escape is obsolete" warnings on Ruby >= 1.9 --- lib/simple_oauth/header.rb | 8 ++++++-- spec/{spec_helper.rb => helper.rb} | 4 ++++ spec/simple_oauth/header_spec.rb | 6 +++--- 3 files changed, 13 insertions(+), 5 deletions(-) rename spec/{spec_helper.rb => helper.rb} (77%) diff --git a/lib/simple_oauth/header.rb b/lib/simple_oauth/header.rb index aee9f29..422c9dd 100644 --- a/lib/simple_oauth/header.rb +++ b/lib/simple_oauth/header.rb @@ -17,11 +17,11 @@ module SimpleOAuth end def self.encode(value) - URI.encode(value.to_s, /[^a-z0-9\-\.\_\~]/i) + uri_parser.escape(value.to_s, /[^a-z0-9\-\.\_\~]/i) end def self.decode(value) - URI.decode(value.to_s) + uri_parser.unescape(value.to_s) end def self.parse(header) @@ -67,6 +67,10 @@ module SimpleOAuth private + def self.uri_parser + @uri_parser ||= URI.const_defined?(:Parser) ? URI::Parser.new : URI + end + def normalized_attributes signed_attributes.sort_by{|k,v| k.to_s }.map{|k,v| %(#{k}="#{self.class.encode(v)}") }.join(', ') end diff --git a/spec/spec_helper.rb b/spec/helper.rb similarity index 77% rename from spec/spec_helper.rb rename to spec/helper.rb index 14df88d..9be179d 100644 --- a/spec/spec_helper.rb +++ b/spec/helper.rb @@ -8,6 +8,10 @@ end require 'simple_oauth' require 'rspec' +def uri_parser + @uri_parser ||= URI.const_defined?(:Parser) ? URI::Parser.new : URI +end + RSpec.configure do |config| config.expect_with :rspec do |c| c.syntax = :expect diff --git a/spec/simple_oauth/header_spec.rb b/spec/simple_oauth/header_spec.rb index 30662c4..ce7070a 100644 --- a/spec/simple_oauth/header_spec.rb +++ b/spec/simple_oauth/header_spec.rb @@ -1,6 +1,6 @@ -# encoding: utf-8 +# encoding: utf-8 -require 'spec_helper' +require 'helper' describe SimpleOAuth::Header do describe ".default_options" do @@ -27,7 +27,7 @@ describe SimpleOAuth::Header do [' ', '!', '@', '#', '$', '%', '^', '&'].each do |character| encoded = SimpleOAuth::Header.encode(character) expect(encoded).not_to eq character - expect(encoded).to eq URI.encode(character, /.*/) + expect(encoded).to eq uri_parser.escape(character, /.*/) end end