From 39d6965ed94c4929ca8a7f86b1c9ff475ede2b55 Mon Sep 17 00:00:00 2001 From: Akinori MUSHA Date: Sun, 21 Oct 2012 19:12:13 +0900 Subject: [PATCH] Use String.try_convert if available. --- lib/http/cookie.rb | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/http/cookie.rb b/lib/http/cookie.rb index f003a91..6db343d 100644 --- a/lib/http/cookie.rb +++ b/lib/http/cookie.rb @@ -19,6 +19,23 @@ class HTTP::Cookie end end + if String.respond_to?(:try_convert) + def check_string_type(object) + String.try_convert(object) + end + private :check_string_type + else + def check_string_type(object) + if object.is_a?(String) || + (object.respond_to?(:to_str) && (object = object.to_str).is_a?(String)) + object + else + nil + end + end + private :check_string_type + end + include URIFix if defined?(URIFix) attr_reader :name @@ -203,8 +220,7 @@ class HTTP::Cookie if DomainName === domain @domain_name = domain else - domain.is_a?(String) or - (domain.respond_to?(:to_str) && (domain = domain.to_str).is_a?(String)) or + domain = check_string_type(domain) or raise TypeError, "#{domain.class} is not a String" if domain.start_with?('.') @for_domain = true