about summary refs log tree commit diff
path: root/lib/mastodon/premailer_webpack_strategy.rb
blob: 56ef09c1a889494e9e08167e4a9f8767e93a1c0a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# frozen_string_literal: true

module PremailerWebpackStrategy
  def load(url)
    asset_host = ENV['CDN_HOST'] || ENV['WEB_DOMAIN'] || ENV['LOCAL_DOMAIN']

    if Webpacker.dev_server.running?
      asset_host = "#{Webpacker.dev_server.protocol}://#{Webpacker.dev_server.host_with_port}"
      url        = File.join(asset_host, url)
    end

    css = if url.start_with?('http')
            HTTP.get(url).to_s
          else
            url = url[1..-1] if url.start_with?('/')
            File.read(Rails.root.join('public', url))
          end

    css.gsub(/url\(\//, "url(#{asset_host}/")
  end

  module_function :load
end