Module: PremailerRails::CSSLoaders::AssetPipelineLoader
- Extended by:
- AssetPipelineLoader
- Included in:
- AssetPipelineLoader
- Defined in:
- lib/premailer-rails3/css_loaders.rb
Overview
Loads the CSS from the asset pipeline.
Instance Method Summary collapse
- #assets_enabled? ⇒ Boolean
- #file_name(path) ⇒ Object
- #load(path) ⇒ Object
- #request_and_unzip(file) ⇒ Object
Instance Method Details
#assets_enabled? ⇒ Boolean
48 49 50 |
# File 'lib/premailer-rails3/css_loaders.rb', line 48 def assets_enabled? Rails.configuration.assets.enabled rescue false end |
#file_name(path) ⇒ Object
52 53 54 55 56 57 58 59 |
# File 'lib/premailer-rails3/css_loaders.rb', line 52 def file_name(path) if path == :default 'email.css' else path.sub("#{Rails.configuration.assets.prefix}/", '') \ .sub(/-.*\.css$/, '.css') end end |
#load(path) ⇒ Object
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/premailer-rails3/css_loaders.rb', line 37 def load(path) if assets_enabled? file = file_name(path) if asset = Rails.application.assets.find_asset(file) asset.to_s else request_and_unzip(file) end end end |
#request_and_unzip(file) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/premailer-rails3/css_loaders.rb', line 61 def request_and_unzip(file) url = [ Rails.configuration.action_controller.asset_host, Rails.configuration.assets.prefix.sub(/^\//, ''), Rails.configuration.assets.digests[file] ].join('/') response = Kernel.open(url) begin Zlib::GzipReader.new(response).read rescue Zlib::GzipFile::Error, Zlib::Error response.rewind response.read end end |