Sha256: 596d048201e185123d4980e9d553b49729cadf6c55ac84061b5cba157f78a77e
Contents?: true
Size: 1.05 KB
Versions: 1
Compression:
Stored size: 1.05 KB
Contents
class Premailer module Rails module CSSHelper extend self FileNotFound = Class.new(StandardError) STRATEGIES = [ CSSLoaders::CacheLoader, CSSLoaders::FileSystemLoader, CSSLoaders::AssetPipelineLoader, CSSLoaders::NetworkLoader ] # Returns all linked CSS files concatenated as string. def css_for_doc(doc) css_urls_in_doc(doc).map { |url| css_for_url(url) }.join("\n") end def css_for_url(url) load_css(url).tap do |content| CSSLoaders::CacheLoader.store(url, content) end end private def css_urls_in_doc(doc) doc.search('link[@rel="stylesheet"]').map do |link| link.remove link.attributes['href'].to_s end end def load_css(url) STRATEGIES.each do |strategy| css = strategy.load(url) return css.force_encoding('UTF-8') if css end raise FileNotFound, %{File with URL "#{url}" could not be loaded by any strategy.} end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
premailer-rails-1.9.0 | lib/premailer/rails/css_helper.rb |