about summary refs log tree commit diff
path: root/lib/paperclip/url_generator_extensions.rb
blob: e1d6df2c299cdeaf5abb332f741d1dc67db4038b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 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

    def for_as_default(style_name)
      attachment_options[:interpolator].interpolate(default_url, @attachment, style_name)
    end
  end
end

Paperclip::UrlGenerator.prepend(Paperclip::UrlGeneratorExtensions)