Class: Rackful::Parser::DOM Abstract
- Inherits:
-
Rackful::Parser
- Object
- Rackful::Parser
- Rackful::Parser::DOM
- Defined in:
- lib/rackful/parser.rb
Overview
This class is abstract.
Parent class of all XML-parsing parsers.
Direct Known Subclasses
Constant Summary
- MEDIA_TYPES =
The media types parsed by this parser.
[ 'text/xml', 'application/xml' ]
Instance Attribute Summary (collapse)
- - (Nokogiri::XML::Document) document readonly
- - (Request) request inherited from Rackful::Parser readonly
- - (Resource) resource inherited from Rackful::Parser readonly
Instance Method Summary (collapse)
-
- (DOM) initialize(request, resource)
constructor
A new instance of DOM.
Constructor Details
- (DOM) initialize(request, resource)
Returns a new instance of DOM
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/rackful/parser.rb', line 73 def initialize request, resource super request, resource # 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 |
Instance Attribute Details
- (Nokogiri::XML::Document) document (readonly)
67 68 69 |
# File 'lib/rackful/parser.rb', line 67 def document @document end |