Fix Paperclip using deprecated URI.escape function (#13320)
Monkey-patch Paperclip to perform URL escaping in a slightly more appropriate way, and get rid of runtime deprecation warnings.
This commit is contained in:
		
							parent
							
								
									d88480da4a
								
							
						
					
					
						commit
						6c79b7237e
					
				
					 2 changed files with 18 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -7,6 +7,7 @@ require 'rails/all'
 | 
			
		|||
Bundler.require(*Rails.groups)
 | 
			
		||||
 | 
			
		||||
require_relative '../app/lib/exceptions'
 | 
			
		||||
require_relative '../lib/paperclip/url_generator_extensions'
 | 
			
		||||
require_relative '../lib/paperclip/attachment_extensions'
 | 
			
		||||
require_relative '../lib/paperclip/lazy_thumbnail'
 | 
			
		||||
require_relative '../lib/paperclip/gif_transcoder'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										17
									
								
								lib/paperclip/url_generator_extensions.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								lib/paperclip/url_generator_extensions.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
module Paperclip
 | 
			
		||||
  module UrlGeneratorExtensions
 | 
			
		||||
    # Monkey-patch Paperclip to use Addressable::URI's normalization instead
 | 
			
		||||
    # of the long-deprecated URI.esacpe
 | 
			
		||||
    def escape_url(url)
 | 
			
		||||
      if url.respond_to?(:escape)
 | 
			
		||||
        url.escape
 | 
			
		||||
      else
 | 
			
		||||
        Addressable::URI.parse(url).normalize.to_str.gsub(escape_regex) { |m| "%#{m.ord.to_s(16).upcase}" }
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
Paperclip::UrlGenerator.prepend(Paperclip::UrlGeneratorExtensions)
 | 
			
		||||
		Loading…
	
	Add table
		
		Reference in a new issue