module Premailer::Rails::CSSLoaders::AssetPipelineLoader

Public Instance Methods

asset_pipeline_present?() click to toggle source
# File lib/premailer/rails/css_loaders/asset_pipeline_loader.rb, line 26
def asset_pipeline_present?
  defined?(::Rails) &&
    ::Rails.respond_to?(:application) &&
    ::Rails.application &&
    ::Rails.application.respond_to?(:assets_manifest) &&
    ::Rails.application.assets_manifest
end
file_name(url) click to toggle source
# File lib/premailer/rails/css_loaders/asset_pipeline_loader.rb, line 15
def file_name(url)
  prefix = [
    ::Rails.configuration.relative_url_root,
    ::Rails.configuration.assets.prefix,
    '/'
  ].join
  URI(url).path
    .sub(/\A#{prefix}/, '')
    .sub(/-(\h{32}|\h{64})\.css\z/, '.css')
end
load(url) click to toggle source
# File lib/premailer/rails/css_loaders/asset_pipeline_loader.rb, line 7
def load(url)
  return unless asset_pipeline_present?

  file = file_name(url)
  ::Rails.application.assets_manifest.find_sources(file).first
rescue Errno::ENOENT, TypeError => _error
end