module Premailer::Adapter
Manages the adapter classes. Currently supports:
-
nokogiri
-
hpricot
Constants
- REQUIREMENT_MAP
adapter to required file mapping.
Public Class Methods
default()
click to toggle source
The default adapter based on what you currently have loaded and installed. First checks to see if any adapters are already loaded, then checks to see which are installed if none are loaded. @raise [RuntimeError] unless suitable adapter found.
# File lib/premailer/adapter.rb, line 30 def self.default return :hpricot if defined?(::Hpricot) return :nokogiri if defined?(::Nokogiri) REQUIREMENT_MAP.each do |(library, adapter)| begin require library return adapter rescue LoadError next end end raise RuntimeError.new("No suitable adapter for Premailer was found, please install hpricot or nokogiri") end
find(adapter)
click to toggle source
Returns an adapter. @raise [ArgumentError] unless the adapter exists.
# File lib/premailer/adapter.rb, line 54 def self.find(adapter) return adapter if adapter.is_a?(Module) Premailer::Adapter.const_get("#{adapter.to_s.split('_').map{|s| s.capitalize}.join('')}") rescue NameError raise ArgumentError, "Invalid adapter: #{adapter}" end
use()
click to toggle source
Returns the adapter to use.
# File lib/premailer/adapter.rb, line 20 def self.use return @use if @use self.use = self.default @use end
use=(new_adapter)
click to toggle source
Sets the adapter to use. @raise [ArgumentError] unless the adapter exists.
# File lib/premailer/adapter.rb, line 48 def self.use=(new_adapter) @use = find(new_adapter) end