lib/oembed/formatter/xml.rb
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