Module: Premailer::Rails::CSSLoaders::AssetPipelineLoader

Extended by:
AssetPipelineLoader
Included in:
AssetPipelineLoader
Defined in:
lib/premailer/rails/css_loaders/asset_pipeline_loader.rb

Instance Method Summary collapse

Instance Method Details

#asset_pipeline_present?Boolean

Returns:

  • (Boolean)


15
16
17
18
19
20
# File 'lib/premailer/rails/css_loaders/asset_pipeline_loader.rb', line 15

def asset_pipeline_present?
  defined?(::Rails) &&
    ::Rails.respond_to?(:application) &&
    ::Rails.application.respond_to?(:assets) &&
    ::Rails.application.assets
end

#file_name(url) ⇒ Object



22
23
24
25
26
27
28
29
30
31
# File 'lib/premailer/rails/css_loaders/asset_pipeline_loader.rb', line 22

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) ⇒ Object



7
8
9
10
11
12
13
# File 'lib/premailer/rails/css_loaders/asset_pipeline_loader.rb', line 7

def load(url)
  if asset_pipeline_present?
    file = file_name(url)
    asset = ::Rails.application.assets.find_asset(file)
    asset.to_s if asset
  end
end