Sha256: cc7617b8d634e57ec2b6240052918cb33a2b1d04d3fe276fb50bd7097fac7273

Contents?: true

Size: 1.94 KB

Versions: 8

Compression:

Stored size: 1.94 KB

Contents

module Nokogiri
  module XML
    ###
    # Parse options for passing to Nokogiri.XML or Nokogiri.HTML
    class ParseOptions
      # Strict parsing
      STRICT      = 0
      # Recover from errors
      RECOVER     = 1 << 0
      # Substitute entities
      NOENT       = 1 << 1
      # Load external subsets
      DTDLOAD     = 1 << 2
      # Default DTD attributes
      DTDATTR     = 1 << 3
      # validate with the DTD
      DTDVALID    = 1 << 4
      # suppress error reports
      NOERROR     = 1 << 5
      # suppress warning reports
      NOWARNING   = 1 << 6
      # pedantic error reporting
      PEDANTIC    = 1 << 7
      # remove blank nodes
      NOBLANKS    = 1 << 8
      # use the SAX1 interface internally
      SAX1        = 1 << 9
      # Implement XInclude substitition
      XINCLUDE    = 1 << 10
      # Forbid network access
      NONET       = 1 << 11
      # Do not reuse the context dictionnary
      NODICT      = 1 << 12
      # remove redundant namespaces declarations
      NSCLEAN     = 1 << 13
      # merge CDATA as text nodes
      NOCDATA     = 1 << 14
      # do not generate XINCLUDE START/END nodes
      NOXINCNODE  = 1 << 15

      attr_accessor :options
      def initialize options = 0
        @options = options
      end

      constants.each do |constant|
        next if constant == 'STRICT'
        class_eval %{
          def #{constant.downcase}
            @options |= #{constant}
            self
          end

          def #{constant.downcase}?
            #{constant} & @options == #{constant}
          end
        }
      end

      def strict
        @options |= STRICT
        self
      end

      def strict?
        @options & RECOVER == STRICT
      end

      alias :to_i :options

      def inspect
        options = []
        self.class.constants.each do |k|
          options << k.downcase if send(:"#{k.downcase}?")
        end
        super.sub(/>$/, " " + options.join(', ') + ">")
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
nokogiri-1.3.0-x86-mingw32 lib/nokogiri/xml/parse_options.rb
nokogiri-1.3.0-java lib/nokogiri/xml/parse_options.rb
nokogiri-1.3.0-x86-mswin32 lib/nokogiri/xml/parse_options.rb
nokogiri-1.3.1-java lib/nokogiri/xml/parse_options.rb
nokogiri-1.3.1-x86-mingw32 lib/nokogiri/xml/parse_options.rb
nokogiri-1.3.0 lib/nokogiri/xml/parse_options.rb
nokogiri-1.3.1 lib/nokogiri/xml/parse_options.rb
nokogiri-1.3.1-x86-mswin32 lib/nokogiri/xml/parse_options.rb