From 05e476c941e41132d40b4bcbfcc7eea90cae7318 Mon Sep 17 00:00:00 2001 From: akira Date: Fri, 4 Oct 2002 06:26:45 +0000 Subject: updated uri.rb and uri/*.rb to uri-0.9.7 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/uri/generic.rb | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) (limited to 'lib/uri/generic.rb') diff --git a/lib/uri/generic.rb b/lib/uri/generic.rb index 5071c1af93..73f80c946c 100644 --- a/lib/uri/generic.rb +++ b/lib/uri/generic.rb @@ -183,6 +183,18 @@ Object attr_reader :opaque attr_reader :fragment + # replace self by other URI object + def replace!(oth) + if self.class != oth.class + raise ArgumentError, "expected #{self.class} object" + end + + component.each do |c| + self.__send__("#{c}=", oth.__send__(c)) + end + end + private :replace! + =begin === Instance Methods @@ -436,7 +448,13 @@ Object private :check_port def set_port(v) - v = v.to_i if v && !v.kind_of?(Fixnum) + unless !v || v.kind_of?(Fixnum) + if v.empty? + v = nil + else + v = v.to_i + end + end @port = v end protected :set_port @@ -683,6 +701,7 @@ Object =begin --- URI::Generic#merge(rel) +--- URI::Generic#merge!(rel) --- URI::Generic#+(rel) =end @@ -750,6 +769,16 @@ Object end private :merge_path + def merge!(oth) + t = merge(oth) + if self == t + nil + else + replace!(t) + self + end + end + # abs(self) + rel(oth) => abs(new) def merge(oth) base, rel = merge0(oth) @@ -1084,6 +1113,20 @@ Object to_ary end +=begin +--- URI::Generic#select(*components) +=end + def select(*components) + components.collect do |c| + if component.include?(c) + self.send(c) + else + raise ArgumentError, + "expected of components of #{self.class} (#{self.class.component.join(', ')})" + end + end + end + =begin =end def inspect -- cgit v1.2.3