Module: Premailer::Adapter
- Defined in:
- lib/premailer/adapter.rb,
lib/premailer/adapter/hpricot.rb,
lib/premailer/adapter/nokogiri.rb
Defined Under Namespace
Constant Summary collapse
- REQUIREMENT_MAP =
[ ["hpricot", :hpricot], ["nokogiri", :nokogiri], ]
Class Method Summary collapse
-
.default ⇒ Object
The default adapter based on what you currently have loaded and installed.
-
.find(adapter) ⇒ Object
Returns an
adapter
. -
.use ⇒ Object
Returns the adapter to use.
-
.use=(new_adapter) ⇒ Object
Sets the
adapter
to use.
Class Method Details
.default ⇒ Object
The default adapter based on what you currently have loaded and installed. First checks to see if any adapters are already loaded, then ckecks to see which are installed if none are loaded.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/premailer/adapter.rb', line 28 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 "No suitable adapter for Premailer was found, please install hpricot or nokogiri" end |
.find(adapter) ⇒ Object
Returns an adapter
. Raises an ArgumentError
unless the adapter
exists.
50 51 52 53 54 55 56 |
# File 'lib/premailer/adapter.rb', line 50 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 ⇒ Object
Returns the adapter to use.
19 20 21 22 23 |
# File 'lib/premailer/adapter.rb', line 19 def self.use return @use if @use self.use = self.default @use end |
.use=(new_adapter) ⇒ Object
Sets the adapter
to use. Raises an ArgumentError
unless the adapter
exists.
45 46 47 |
# File 'lib/premailer/adapter.rb', line 45 def self.use=(new_adapter) @use = find(new_adapter) end |