Module: KayakoClient::XML::ClassMethods

Defined in:
lib/kayako_client/xml/xml.rb

Instance Method Summary collapse

Instance Method Details

#xml_backendObject



64
65
66
67
68
69
70
71
72
# File 'lib/kayako_client/xml/xml.rb', line 64

def xml_backend
    begin
        require 'kayako_client/xml/lib_xml'
        @@xml_backend ||= KayakoClient::LibXML
    rescue LoadError
        require 'kayako_client/xml/rexml_document'
        @@xml_backend ||= KayakoClient::REXMLDocument
    end
end

#xml_backend=(backend) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/kayako_client/xml/xml.rb', line 46

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