1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
module OEmbed
module Formatter
# Handles parsing XML values using the best available backend.
module XML
# A Array of all available backends, listed in order of preference.
DECODERS = %w(XmlSimple REXML)
class << self
include ::OEmbed::Formatter::Base
# Returns the current XML backend.
def backend
set_default_backend unless defined?(@backend)
raise OEmbed::FormatNotSupported, :xml unless defined?(@backend)
@backend
end
def set_default_backend
DECODERS.find do |name|
begin
self.backend = name
true
rescue LoadError
# Try next decoder.
false
end
end
end
private
def backend_path
'xml/backends'
end
def test_value
<<-XML
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<oembed>
<version>1.0</version>
<string>test</string>
<int>42</int>
<html><i>Cool's</i>\n the "word"!</html>
</oembed>
XML
end
end # self
end # XML
end
end
|