File: active_support/xml_mini.rb

Overview
Module Structure
Code

Overview

Module Structure

  module: <Toplevel Module>
  module: ActiveSupport#1
  module: XmlMini#7
extends
  XmlMini ( ActiveSupport )
has properties
attribute: backend [R] #10
method: backend= / 1 #13
method: with_backend / 1 #22

Code

   1  module ActiveSupport
   2    # = XmlMini
   3    #
   4    # To use the much faster libxml parser:
   5    #   gem 'libxml-ruby', '=0.9.7'
   6    #   XmlMini.backend = 'LibXML'
   7    module XmlMini
   8      extend self
   9 
  10      attr_reader :backend
  11      delegate :parse, :to => :backend
  12 
  13      def backend=(name)
  14        if name.is_a?(Module)
  15          @backend = name
  16        else
  17          require "active_support/xml_mini/#{name.to_s.downcase}.rb"
  18          @backend = ActiveSupport.const_get("XmlMini_#{name}")
  19        end
  20      end
  21 
  22      def with_backend(name)
  23        old_backend, self.backend = backend, name
  24        yield
  25      ensure
  26        self.backend = old_backend
  27      end
  28    end
  29 
  30    XmlMini.backend = 'REXML'
  31  end