class Rackful::Parser::DOM
Parent class of all XML-parsing parsers. @abstract @since 0.2.0
Attributes
document[R]
@return [Nokogiri::XML::Document]
request[R]
Public Class Methods
new(request)
click to toggle source
@raise [HTTP400BadRequest] if the document is malformed.
# File lib/rackful/parser.rb, line 76 def initialize request @request = request # TODO Is ISO-8859-1 indeed the default encoding for XML documents? If so, # that fact must be documented and referenced. encoding = self.request.media_type_params['charset'] || 'ISO-8859-1' begin @document = Nokogiri.XML( self.request.env['rack.input'].read, self.request.canonical_uri.to_s, encoding ) do |config| config.strict.nonet end rescue raise HTTP400BadRequest, $!.to_s end raise( HTTP400BadRequest, $!.to_s ) unless @document.root end
parse(request, response, resource)
click to toggle source
# File lib/rackful/parser.rb, line 67 def self.parse request, response, resource self.new(request).parse( response, resource ) end