Module: Premailer::Rails::CSSLoaders::AssetPipelineLoader
- Extended by:
- AssetPipelineLoader
- Included in:
- AssetPipelineLoader
- Defined in:
- lib/premailer/rails/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
30 31 32 |
# File 'lib/premailer/rails/css_loaders.rb', line 30 def assets_enabled? ::Rails.configuration.assets.enabled rescue false end |
#file_name(path) ⇒ Object
34 35 36 37 |
# File 'lib/premailer/rails/css_loaders.rb', line 34 def file_name(path) path.sub("#{::Rails.configuration.assets.prefix}/", '') \ .sub(/-.*\.css$/, '.css') end |
#load(path) ⇒ Object
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/premailer/rails/css_loaders.rb', line 19 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
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/premailer/rails/css_loaders.rb', line 39 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 |