Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package rubygem-uri for openSUSE:Factory 
checked in at 2026-07-07 21:04:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-uri (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-uri.new.1982 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-uri"

Tue Jul  7 21:04:45 2026 rev:2 rq:1364194 version:1.1.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-uri/rubygem-uri.changes  2024-12-11 
21:10:27.316290540 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-uri.new.1982/rubygem-uri.changes        
2026-07-07 21:07:38.671514181 +0200
@@ -1,0 +2,11 @@
+Tue Jul  7 07:55:29 UTC 2026 - Aleksei Burlakov <[email protected]>
+
+- New upstream release 1.1.1
+
+-------------------------------------------------------------------
+Mon Jul  6 14:50:54 UTC 2026 - Aleksei Burlakov <[email protected]>
+
+- New upstream release 1.0.4
+  * Fixed: credential exposure via URI + operator [CVE-2025-61594][bsc#1255833]
+
+-------------------------------------------------------------------

Old:
----
  uri-1.0.2.gem

New:
----
  uri-1.1.1.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-uri.spec ++++++
--- /var/tmp/diff_new_pack.SNG1mY/_old  2026-07-07 21:07:39.343537577 +0200
+++ /var/tmp/diff_new_pack.SNG1mY/_new  2026-07-07 21:07:39.343537577 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package rubygem-uri
 #
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -24,18 +24,18 @@
 #
 
 Name:           rubygem-uri
-Version:        1.0.2
+Version:        1.1.1
 Release:        0
 %define mod_name uri
 %define mod_full_name %{mod_name}-%{version}
-BuildRequires:  ruby-macros >= 5
 BuildRequires:  %{ruby >= 2.5}
 BuildRequires:  %{rubygem gem2rpm}
+BuildRequires:  ruby-macros >= 5
 URL:            https://github.com/ruby/uri
 Source:         https://rubygems.org/gems/%{mod_full_name}.gem
 Source1:        gem2rpm.yml
 Summary:        URI is a module providing classes to handle Uniform Resource
-License:        Ruby and BSD-2-Clause
+License:        BSD-2-Clause AND Ruby
 
 %description
 URI is a module providing classes to handle Uniform Resource Identifiers.

++++++ uri-1.0.2.gem -> uri-1.1.1.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.document new/.document
--- old/.document       1970-01-01 01:00:00.000000000 +0100
+++ new/.document       1980-01-02 01:00:00.000000000 +0100
@@ -0,0 +1,5 @@
+BSDL
+COPYING
+README.md
+docs/
+lib/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.rdoc_options new/.rdoc_options
--- old/.rdoc_options   1970-01-01 01:00:00.000000000 +0100
+++ new/.rdoc_options   1980-01-02 01:00:00.000000000 +0100
@@ -0,0 +1,5 @@
+main_page: README.md
+op_dir: _site
+warn_missing_rdoc_ref: true
+title: URI Documentation
+visibility: :private
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/README.md new/README.md
--- old/README.md       2024-11-14 04:49:40.000000000 +0100
+++ new/README.md       1980-01-02 01:00:00.000000000 +0100
@@ -3,7 +3,7 @@
 
[![CI](https://github.com/ruby/uri/actions/workflows/test.yml/badge.svg)](https://github.com/ruby/uri/actions/workflows/test.yml)
 [![Yard 
Docs](https://img.shields.io/badge/docs-exist-blue.svg)](https://ruby.github.io/uri/)
 
-URI is a module providing classes to handle Uniform Resource Identifiers 
[RFC2396](http://tools.ietf.org/html/rfc2396).
+URI is a module providing classes to handle Uniform Resource Identifiers 
[RFC3986](http://tools.ietf.org/html/rfc3986).
 
 ## Features
 
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docs/kernel.rb new/docs/kernel.rb
--- old/docs/kernel.rb  1970-01-01 01:00:00.000000000 +0100
+++ new/docs/kernel.rb  1980-01-02 01:00:00.000000000 +0100
@@ -0,0 +1,2 @@
+# :stopdoc:
+module Kernel end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/uri/common.rb new/lib/uri/common.rb
--- old/lib/uri/common.rb       2024-11-14 04:49:40.000000000 +0100
+++ new/lib/uri/common.rb       1980-01-02 01:00:00.000000000 +0100
@@ -13,19 +13,26 @@
 require_relative "rfc3986_parser"
 
 module URI
+  # The default parser instance for RFC 2396.
   RFC2396_PARSER = RFC2396_Parser.new
   Ractor.make_shareable(RFC2396_PARSER) if defined?(Ractor)
 
+  # The default parser instance for RFC 3986.
   RFC3986_PARSER = RFC3986_Parser.new
   Ractor.make_shareable(RFC3986_PARSER) if defined?(Ractor)
 
+  # The default parser instance.
   DEFAULT_PARSER = RFC3986_PARSER
   Ractor.make_shareable(DEFAULT_PARSER) if defined?(Ractor)
 
+  # Set the default parser instance.
   def self.parser=(parser = RFC3986_PARSER)
     remove_const(:Parser) if defined?(::URI::Parser)
     const_set("Parser", parser.class)
 
+    remove_const(:PARSER) if defined?(::URI::PARSER)
+    const_set("PARSER", parser)
+
     remove_const(:REGEXP) if defined?(::URI::REGEXP)
     remove_const(:PATTERN) if defined?(::URI::PATTERN)
     if Parser == RFC2396_Parser
@@ -40,15 +47,15 @@
   end
   self.parser = RFC3986_PARSER
 
-  def self.const_missing(const)
+  def self.const_missing(const) # :nodoc:
     if const == :REGEXP
       warn "URI::REGEXP is obsolete. Use URI::RFC2396_REGEXP explicitly.", 
uplevel: 1 if $VERBOSE
       URI::RFC2396_REGEXP
     elsif value = RFC2396_PARSER.regexp[const]
-      warn "URI::#{const} is obsolete. Use 
RFC2396_PARSER.regexp[#{const.inspect}] explicitly.", uplevel: 1 if $VERBOSE
+      warn "URI::#{const} is obsolete. Use 
URI::RFC2396_PARSER.regexp[#{const.inspect}] explicitly.", uplevel: 1 if 
$VERBOSE
       value
     elsif value = RFC2396_Parser.const_get(const)
-      warn "URI::#{const} is obsolete. Use RFC2396_Parser::#{const} 
explicitly.", uplevel: 1 if $VERBOSE
+      warn "URI::#{const} is obsolete. Use URI::RFC2396_Parser::#{const} 
explicitly.", uplevel: 1 if $VERBOSE
       value
     else
       super
@@ -87,7 +94,41 @@
     module_function :make_components_hash
   end
 
-  module Schemes
+  module Schemes # :nodoc:
+    class << self
+      ReservedChars = ".+-"
+      EscapedChars = "\u01C0\u01C1\u01C2"
+      # Use Lo category chars as escaped chars for TruffleRuby, which
+      # does not allow Symbol categories as identifiers.
+
+      def escape(name)
+        unless name and name.ascii_only?
+          return nil
+        end
+        name.upcase.tr(ReservedChars, EscapedChars)
+      end
+
+      def unescape(name)
+        name.tr(EscapedChars, ReservedChars).encode(Encoding::US_ASCII).upcase
+      end
+
+      def find(name)
+        const_get(name, false) if name and const_defined?(name, false)
+      end
+
+      def register(name, klass)
+        unless scheme = escape(name)
+          raise ArgumentError, "invalid character as scheme - #{name}"
+        end
+        const_set(scheme, klass)
+      end
+
+      def list
+        constants.map { |name|
+          [unescape(name.to_s), const_get(name)]
+        }.to_h
+      end
+    end
   end
   private_constant :Schemes
 
@@ -100,7 +141,7 @@
   # Note that after calling String#upcase on +scheme+, it must be a valid
   # constant name.
   def self.register_scheme(scheme, klass)
-    Schemes.const_set(scheme.to_s.upcase, klass)
+    Schemes.register(scheme, klass)
   end
 
   # Returns a hash of the defined schemes:
@@ -118,14 +159,14 @@
   #
   # Related: URI.register_scheme.
   def self.scheme_list
-    Schemes.constants.map { |name|
-      [name.to_s.upcase, Schemes.const_get(name)]
-    }.to_h
+    Schemes.list
   end
 
+  # :stopdoc:
   INITIAL_SCHEMES = scheme_list
   private_constant :INITIAL_SCHEMES
   Ractor.make_shareable(INITIAL_SCHEMES) if defined?(Ractor)
+  # :startdoc:
 
   # Returns a new object constructed from the given +scheme+, +arguments+,
   # and +default+:
@@ -144,12 +185,10 @@
   #   # => #<URI::HTTP 
foo://[email protected]:123/forum/questions/?tag=networking&order=newest#top>
   #
   def self.for(scheme, *arguments, default: Generic)
-    const_name = scheme.to_s.upcase
+    const_name = Schemes.escape(scheme)
 
     uri_class = INITIAL_SCHEMES[const_name]
-    uri_class ||= if /\A[A-Z]\w*\z/.match?(const_name) && 
Schemes.const_defined?(const_name, false)
-      Schemes.const_get(const_name, false)
-    end
+    uri_class ||= Schemes.find(const_name)
     uri_class ||= default
 
     return uri_class.new(scheme, *arguments)
@@ -191,7 +230,7 @@
   #    ["fragment", "top"]]
   #
   def self.split(uri)
-    DEFAULT_PARSER.split(uri)
+    PARSER.split(uri)
   end
 
   # Returns a new \URI object constructed from the given string +uri+:
@@ -201,11 +240,11 @@
   #   
URI.parse('http://[email protected]:123/forum/questions/?tag=networking&order=newest#top')
   #   # => #<URI::HTTP 
http://[email protected]:123/forum/questions/?tag=networking&order=newest#top>
   #
-  # It's recommended to first ::escape string +uri+
+  # It's recommended to first URI::RFC2396_PARSER.escape string +uri+
   # if it may contain invalid URI characters.
   #
   def self.parse(uri)
-    DEFAULT_PARSER.parse(uri)
+    PARSER.parse(uri)
   end
 
   # Merges the given URI strings +str+
@@ -261,7 +300,7 @@
   #
   def self.extract(str, schemes = nil, &block) # :nodoc:
     warn "URI.extract is obsolete", uplevel: 1 if $VERBOSE
-    DEFAULT_PARSER.extract(str, schemes, &block)
+    PARSER.extract(str, schemes, &block)
   end
 
   #
@@ -298,14 +337,14 @@
   #
   def self.regexp(schemes = nil)# :nodoc:
     warn "URI.regexp is obsolete", uplevel: 1 if $VERBOSE
-    DEFAULT_PARSER.make_regexp(schemes)
+    PARSER.make_regexp(schemes)
   end
 
   TBLENCWWWCOMP_ = {} # :nodoc:
   256.times do |i|
     TBLENCWWWCOMP_[-i.chr] = -('%%%02X' % i)
   end
-  TBLENCURICOMP_ = TBLENCWWWCOMP_.dup.freeze
+  TBLENCURICOMP_ = TBLENCWWWCOMP_.dup.freeze # :nodoc:
   TBLENCWWWCOMP_[' '] = '+'
   TBLENCWWWCOMP_.freeze
   TBLDECWWWCOMP_ = {} # :nodoc:
@@ -403,6 +442,8 @@
     _decode_uri_component(/%\h\h/, str, enc)
   end
 
+  # Returns a string derived from the given string +str+ with
+  # URI-encoded characters matching +regexp+ according to +table+.
   def self._encode_uri_component(regexp, table, str, enc)
     str = str.to_s.dup
     if str.encoding != Encoding::ASCII_8BIT
@@ -417,6 +458,8 @@
   end
   private_class_method :_encode_uri_component
 
+  # Returns a string decoding characters matching +regexp+ from the
+  # given \URL-encoded string +str+.
   def self._decode_uri_component(regexp, str, enc)
     raise ArgumentError, "invalid %-encoding (#{str})" if 
/%(?!\h\h)/.match?(str)
     str.b.gsub(regexp, TBLDECWWWCOMP_).force_encoding(enc)
@@ -855,6 +898,7 @@
   # Returns a \URI object derived from the given +uri+,
   # which may be a \URI string or an existing \URI object:
   #
+  #   require 'uri'
   #   # Returns a new URI.
   #   uri = URI('http://github.com/ruby/ruby')
   #   # => #<URI::HTTP http://github.com/ruby/ruby>
@@ -862,6 +906,8 @@
   #   URI(uri)
   #   # => #<URI::HTTP http://github.com/ruby/ruby>
   #
+  # You must require 'uri' to use this method.
+  #
   def URI(uri)
     if uri.is_a?(URI::Generic)
       uri
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/uri/file.rb new/lib/uri/file.rb
--- old/lib/uri/file.rb 2024-11-14 04:49:40.000000000 +0100
+++ new/lib/uri/file.rb 1980-01-02 01:00:00.000000000 +0100
@@ -47,7 +47,7 @@
     #       :path => '/ruby/src'})
     #     uri2.to_s  # => "file://host.example.com/ruby/src"
     #
-    #     uri3 = URI::File.build({:path => URI::escape('/path/my file.txt')})
+    #     uri3 = URI::File.build({:path => 
URI::RFC2396_PARSER.escape('/path/my file.txt')})
     #     uri3.to_s  # => "file:///path/my%20file.txt"
     #
     def self.build(args)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/uri/generic.rb new/lib/uri/generic.rb
--- old/lib/uri/generic.rb      2024-11-14 04:49:40.000000000 +0100
+++ new/lib/uri/generic.rb      1980-01-02 01:00:00.000000000 +0100
@@ -73,7 +73,7 @@
     #
     # At first, tries to create a new URI::Generic instance using
     # URI::Generic::build. But, if exception URI::InvalidComponentError is 
raised,
-    # then it does URI::Escape.escape all URI components and tries again.
+    # then it does URI::RFC2396_PARSER.escape all URI components and tries 
again.
     #
     def self.build2(args)
       begin
@@ -126,9 +126,9 @@
           end
         end
       else
-        component = self.class.component rescue ::URI::Generic::COMPONENT
+        component = self.component rescue ::URI::Generic::COMPONENT
         raise ArgumentError,
-        "expected Array of or Hash of components of #{self.class} 
(#{component.join(', ')})"
+              "expected Array of or Hash of components of #{self} 
(#{component.join(', ')})"
       end
 
       tmp << nil
@@ -186,18 +186,18 @@
 
       if arg_check
         self.scheme = scheme
-        self.userinfo = userinfo
         self.hostname = host
         self.port = port
+        self.userinfo = userinfo
         self.path = path
         self.query = query
         self.opaque = opaque
         self.fragment = fragment
       else
         self.set_scheme(scheme)
-        self.set_userinfo(userinfo)
         self.set_host(host)
         self.set_port(port)
+        self.set_userinfo(userinfo)
         self.set_path(path)
         self.query = query
         self.set_opaque(opaque)
@@ -284,7 +284,7 @@
 
     # Returns the parser to be used.
     #
-    # Unless a URI::Parser is defined, DEFAULT_PARSER is used.
+    # Unless the +parser+ is defined, DEFAULT_PARSER is used.
     #
     def parser
       if !defined?(@parser) || !@parser
@@ -315,7 +315,7 @@
     end
 
     #
-    # Checks the scheme +v+ component against the URI::Parser Regexp for 
:SCHEME.
+    # Checks the scheme +v+ component against the +parser+ Regexp for :SCHEME.
     #
     def check_scheme(v)
       if v && parser.regexp[:SCHEME] !~ v
@@ -385,7 +385,7 @@
 
     #
     # Checks the user +v+ component for RFC2396 compliance
-    # and against the URI::Parser Regexp for :USERINFO.
+    # and against the +parser+ Regexp for :USERINFO.
     #
     # Can not have a registry or opaque component defined,
     # with a user component defined.
@@ -409,7 +409,7 @@
 
     #
     # Checks the password +v+ component for RFC2396 compliance
-    # and against the URI::Parser Regexp for :USERINFO.
+    # and against the +parser+ Regexp for :USERINFO.
     #
     # Can not have a registry or opaque component defined,
     # with a user component defined.
@@ -511,7 +511,7 @@
         user, password = split_userinfo(user)
       end
       @user     = user
-      @password = password if password
+      @password = password
 
       [@user, @password]
     end
@@ -522,7 +522,7 @@
     # See also URI::Generic.user=.
     #
     def set_user(v)
-      set_userinfo(v, @password)
+      set_userinfo(v, nil)
       v
     end
     protected :set_user
@@ -574,6 +574,12 @@
       @password
     end
 
+    # Returns the authority info (array of user, password, host and
+    # port), if any is set.  Or returns +nil+.
+    def authority
+      return @user, @password, @host, @port if @user || @password || @host || 
@port
+    end
+
     # Returns the user component after URI decoding.
     def decoded_user
       URI.decode_uri_component(@user) if @user
@@ -586,7 +592,7 @@
 
     #
     # Checks the host +v+ component for RFC2396 compliance
-    # and against the URI::Parser Regexp for :HOST.
+    # and against the +parser+ Regexp for :HOST.
     #
     # Can not have a registry or opaque component defined,
     # with a host component defined.
@@ -615,6 +621,13 @@
     end
     protected :set_host
 
+    # Protected setter for the authority info (+user+, +password+, +host+
+    # and +port+).  If +port+ is +nil+, +default_port+ will be set.
+    #
+    protected def set_authority(user, password, host, port = nil)
+      @user, @password, @host, @port = user, password, host, port || 
self.default_port
+    end
+
     #
     # == Args
     #
@@ -639,6 +652,7 @@
     def host=(v)
       check_host(v)
       set_host(v)
+      set_userinfo(nil)
       v
     end
 
@@ -675,7 +689,7 @@
 
     #
     # Checks the port +v+ component for RFC2396 compliance
-    # and against the URI::Parser Regexp for :PORT.
+    # and against the +parser+ Regexp for :PORT.
     #
     # Can not have a registry or opaque component defined,
     # with a port component defined.
@@ -729,6 +743,7 @@
     def port=(v)
       check_port(v)
       set_port(v)
+      set_userinfo(nil)
       port
     end
 
@@ -737,18 +752,18 @@
     end
     private :check_registry
 
-    def set_registry(v) #:nodoc:
+    def set_registry(v) # :nodoc:
       raise InvalidURIError, "cannot set registry"
     end
     protected :set_registry
 
-    def registry=(v)
+    def registry=(v) # :nodoc:
       raise InvalidURIError, "cannot set registry"
     end
 
     #
     # Checks the path +v+ component for RFC2396 compliance
-    # and against the URI::Parser Regexp
+    # and against the +parser+ Regexp
     # for :ABS_PATH and :REL_PATH.
     #
     # Can not have a opaque component defined,
@@ -853,7 +868,7 @@
 
     #
     # Checks the opaque +v+ component for RFC2396 compliance and
-    # against the URI::Parser Regexp for :OPAQUE.
+    # against the +parser+ Regexp for :OPAQUE.
     #
     # Can not have a host, port, user, or path component defined,
     # with an opaque component defined.
@@ -905,7 +920,7 @@
     end
 
     #
-    # Checks the fragment +v+ component against the URI::Parser Regexp for 
:FRAGMENT.
+    # Checks the fragment +v+ component against the +parser+ Regexp for 
:FRAGMENT.
     #
     #
     # == Args
@@ -1121,7 +1136,7 @@
 
       base = self.dup
 
-      authority = rel.userinfo || rel.host || rel.port
+      authority = rel.authority
 
       # RFC2396, Section 5.2, 2)
       if (rel.path.nil? || rel.path.empty?) && !authority && !rel.query
@@ -1133,17 +1148,14 @@
       base.fragment=(nil)
 
       # RFC2396, Section 5.2, 4)
-      if !authority
-        base.set_path(merge_path(base.path, rel.path)) if base.path && rel.path
-      else
-        # RFC2396, Section 5.2, 4)
-        base.set_path(rel.path) if rel.path
+      if authority
+        base.set_authority(*authority)
+        base.set_path(rel.path)
+      elsif base.path && rel.path
+        base.set_path(merge_path(base.path, rel.path))
       end
 
       # RFC2396, Section 5.2, 7)
-      base.set_userinfo(rel.userinfo) if rel.userinfo
-      base.set_host(rel.host)         if rel.host
-      base.set_port(rel.port)         if rel.port
       base.query = rel.query       if rel.query
       base.fragment=(rel.fragment) if rel.fragment
 
@@ -1392,10 +1404,12 @@
       end
     end
 
+    # Returns the hash value.
     def hash
       self.component_ary.hash
     end
 
+    # Compares with _oth_ for Hash.
     def eql?(oth)
       self.class == oth.class &&
       parser == oth.parser &&
@@ -1438,7 +1452,7 @@
       end
     end
 
-    def inspect
+    def inspect # :nodoc:
       "#<#{self.class} #{self}>"
     end
 
@@ -1526,7 +1540,7 @@
         else
           unless proxy_uri = env[name]
             if proxy_uri = env[name.upcase]
-              warn 'The environment variable HTTP_PROXY is discouraged.  Use 
http_proxy.', uplevel: 1
+              warn 'The environment variable HTTP_PROXY is discouraged.  
Please use http_proxy instead.', uplevel: 1
             end
           end
         end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/uri/http.rb new/lib/uri/http.rb
--- old/lib/uri/http.rb 2024-11-14 04:49:40.000000000 +0100
+++ new/lib/uri/http.rb 1980-01-02 01:00:00.000000000 +0100
@@ -61,6 +61,18 @@
       super(tmp)
     end
 
+    # Do not allow empty host names, as they are not allowed by RFC 3986.
+    def check_host(v)
+      ret = super
+
+      if ret && v.empty?
+        raise InvalidComponentError,
+          "bad component(expected host component): #{v}"
+      end
+
+      ret
+    end
+
     #
     # == Description
     #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/uri/rfc2396_parser.rb 
new/lib/uri/rfc2396_parser.rb
--- old/lib/uri/rfc2396_parser.rb       2024-11-14 04:49:40.000000000 +0100
+++ new/lib/uri/rfc2396_parser.rb       1980-01-02 01:00:00.000000000 +0100
@@ -67,7 +67,7 @@
     #
     # == Synopsis
     #
-    #   URI::Parser.new([opts])
+    #   URI::RFC2396_Parser.new([opts])
     #
     # == Args
     #
@@ -86,7 +86,7 @@
     #
     # == Examples
     #
-    #   p = URI::Parser.new(:ESCAPED => "(?:%[a-fA-F0-9]{2}|%u[a-fA-F0-9]{4})")
+    #   p = URI::RFC2396_Parser.new(:ESCAPED => 
"(?:%[a-fA-F0-9]{2}|%u[a-fA-F0-9]{4})")
     #   u = p.parse("http://example.jp/%uABCD";) #=> #<URI::HTTP 
http://example.jp/%uABCD>
     #   URI.parse(u.to_s) #=> raises URI::InvalidURIError
     #
@@ -108,12 +108,12 @@
 
     # The Hash of patterns.
     #
-    # See also URI::Parser.initialize_pattern.
+    # See also #initialize_pattern.
     attr_reader :pattern
 
     # The Hash of Regexp.
     #
-    # See also URI::Parser.initialize_regexp.
+    # See also #initialize_regexp.
     attr_reader :regexp
 
     # Returns a split URI against +regexp[:ABS_URI]+.
@@ -202,8 +202,7 @@
     #
     # == Usage
     #
-    #   p = URI::Parser.new
-    #   p.parse("ldap://ldap.example.com/dc=example?user=john";)
+    #   
URI::RFC2396_PARSER.parse("ldap://ldap.example.com/dc=example?user=john";)
     #   #=> #<URI::LDAP ldap://ldap.example.com/dc=example?user=john>
     #
     def parse(uri)
@@ -244,7 +243,7 @@
     # If no +block+ given, then returns the result,
     # else it calls +block+ for each element in result.
     #
-    # See also URI::Parser.make_regexp.
+    # See also #make_regexp.
     #
     def extract(str, schemes = nil)
       if block_given?
@@ -263,7 +262,7 @@
       unless schemes
         @regexp[:ABS_URI_REF]
       else
-        /(?=#{Regexp.union(*schemes)}:)#{@pattern[:X_ABS_URI]}/x
+        /(?=(?i:#{Regexp.union(*schemes).source}):)#{@pattern[:X_ABS_URI]}/x
       end
     end
 
@@ -321,14 +320,14 @@
       str.gsub(escaped) { [$&[1, 2]].pack('H2').force_encoding(enc) }
     end
 
-    @@to_s = Kernel.instance_method(:to_s)
-    if @@to_s.respond_to?(:bind_call)
-      def inspect
-        @@to_s.bind_call(self)
+    TO_S = Kernel.instance_method(:to_s) # :nodoc:
+    if TO_S.respond_to?(:bind_call)
+      def inspect # :nodoc:
+        TO_S.bind_call(self)
       end
     else
-      def inspect
-        @@to_s.bind(self).call
+      def inspect # :nodoc:
+        TO_S.bind(self).call
       end
     end
 
@@ -524,6 +523,8 @@
       ret
     end
 
+    # Returns +uri+ as-is if it is URI, or convert it to URI if it is
+    # a String.
     def convert_to_uri(uri)
       if uri.is_a?(URI::Generic)
         uri
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/uri/version.rb new/lib/uri/version.rb
--- old/lib/uri/version.rb      2024-11-14 04:49:40.000000000 +0100
+++ new/lib/uri/version.rb      1980-01-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
 module URI
   # :stopdoc:
-  VERSION_CODE = '010002'.freeze
-  VERSION = VERSION_CODE.scan(/../).collect{|n| n.to_i}.join('.').freeze
+  VERSION = '1.1.1'.freeze
+  VERSION_CODE = VERSION.split('.').map{|s| s.rjust(2, '0')}.join.freeze
   # :startdoc:
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2024-11-14 04:49:40.000000000 +0100
+++ new/metadata        1980-01-02 01:00:00.000000000 +0100
@@ -1,14 +1,13 @@
 --- !ruby/object:Gem::Specification
 name: uri
 version: !ruby/object:Gem::Version
-  version: 1.0.2
+  version: 1.1.1
 platform: ruby
 authors:
 - Akira Yamada
-autorequire: 
 bindir: exe
 cert_chain: []
-date: 2024-11-14 00:00:00.000000000 Z
+date: 1980-01-02 00:00:00.000000000 Z
 dependencies: []
 description: URI is a module providing classes to handle Uniform Resource 
Identifiers
 email:
@@ -17,9 +16,12 @@
 extensions: []
 extra_rdoc_files: []
 files:
+- ".document"
+- ".rdoc_options"
 - BSDL
 - COPYING
 - README.md
+- docs/kernel.rb
 - lib/uri.rb
 - lib/uri/common.rb
 - lib/uri/file.rb
@@ -45,7 +47,6 @@
   documentation_uri: https://ruby.github.io/uri/
   homepage_uri: https://github.com/ruby/uri
   source_code_uri: https://github.com/ruby/uri
-post_install_message: 
 rdoc_options: []
 require_paths:
 - lib
@@ -60,8 +61,7 @@
     - !ruby/object:Gem::Version
       version: '0'
 requirements: []
-rubygems_version: 3.5.11
-signing_key: 
+rubygems_version: 3.6.9
 specification_version: 4
 summary: URI is a module providing classes to handle Uniform Resource 
Identifiers
 test_files: []

Reply via email to