- 
                Notifications
    You must be signed in to change notification settings 
- Fork 53
Add proper Ractor support to URI #26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
          
     Merged
      
      
    
                
     Merged
            
            
          Conversation
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
    * Using a module to map scheme name to scheme class, which also works with Ractor. * No constant redefinition, no ObjectSpace, still fast lookup for initial schemes.
  This was referenced Jun 25, 2021 
      
| Can you pick #25 with this pull-request? | 
| @hsbt Done! | 
| 👍 Thanks! | 
    
  byroot 
      added a commit
        to rails/rails
      that referenced
      this pull request
    
      Jul 27, 2021 
    
    
      
  
    
      
    
  
ruby/uri#26 was recently pulled in ruby-head, and it breaks globalid < 0.5.
| This seem to break support of schemes that aren't valid ruby constants, e.g: https://buildkite.com/rails/rails/builds/79689#6a1b7cfc-fa17-4752-bc27-62158a228e79/1018-1029 | 
| 
 | 
    
  smortex 
      added a commit
        to riemann/riemann-tools
      that referenced
      this pull request
    
      Feb 13, 2023 
    
    
      
  
    
      
    
  
URI.register_scheme was added in ruby/uri#26 and is part of `uri` 0.11.0. URI 0.11.0 was imported in Ruby in ruby/ruby@8ef125c and is part of Ruby 3.1.0+.
    
  smortex 
      added a commit
        to riemann/riemann-tools
      that referenced
      this pull request
    
      Feb 13, 2023 
    
    
      
  
    
      
    
  
URI.register_scheme was added in ruby/uri#26 and is part of `uri` 0.11.0. URI 0.11.0 was imported in Ruby in ruby/ruby@8ef125c and is part of Ruby 3.1.0+. The CI did not catch it because `3.0` in YAML == `3` and `Ruby 3` is `Ruby 3.2`.
    
  maxlazio 
      pushed a commit
        to gitlabhq/omnibus-gitlab
      that referenced
      this pull request
    
      May 15, 2023 
    
    
      
  
    
      
    
  
ruby/uri#26 refactored how schemes are registered in the `uri` gem. Ruby 3.1.4 - 3.2.2 ships with uri v0.12.1, which has this change. Changelog: fixed
    
  rtokarek-fastly 
      added a commit
        to rtokarek-fastly/net-scp
      that referenced
      this pull request
    
      Jun 21, 2024 
    
    
      
  
    
      
    
  
Ruby 3.1 adopted uri 0.11.0. That version changes how schemes can be registered. There is now a register_scheme method. ruby/uri#26 as part of https://github.com/ruby/uri/releases/tag/v0.11.0 This commit supports both ways and works with the new method if available. The old way errors out when run on uri>=0.11.0/ruby>=3.1.
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment
  
      
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
This avoids the drawbacks/hacks of both #22 and #15.
It uses a module to map scheme names to scheme classes, which also works with Ractor.