module KayakoClient::XML

Public Class Methods

included(base) click to toggle source
# File lib/kayako_client/xml/xml.rb, line 18
def self.included(base)
    base.extend(ClassMethods)
end

Public Instance Methods

xml_backend() click to toggle source
# File lib/kayako_client/xml/xml.rb, line 40
def xml_backend
    @xml_backend ||= self.class.xml_backend
end
xml_backend=(backend) click to toggle source
# File lib/kayako_client/xml/xml.rb, line 22
def xml_backend=(backend)
    if backend.is_a?(String)
        raise ArgumentError, "invalid XML backend: #{backend}" unless backend =~ /^[A-Za-z_]+$/
        file = backend.gsub(/([a-z])([A-Z])/, '\1_\2').gsub(/([A-Z])([A-Z][a-z])/, '\1_\2').downcase
        require "kayako_client/xml/#{file}"
        backend = KayakoClient.const_get(backend)
    end
    if backend.is_a?(Class)
        if backend.included_modules.include?(KayakoClient::XMLBackend)
            @xml_backend = backend
        else
            raise ArgumentError, "invalid XML backend: #{backend.name}"
        end
    else
        raise ArgumentError, "unsupported XML backend"
    end
end