83d0a055f6fb599e793a8c8e8a9253c596fd3635
[catagits/HTTP-Body.git] / lib / HTTP / Body / XForms.pm
1 package HTTP::Body::XForms;
2
3 use strict;
4 use base 'HTTP::Body';
5 use bytes;
6
7 use File::Temp 0.14;
8
9 =head1 NAME
10
11 HTTP::Body::XForms - HTTP Body XForms Parser
12
13 =head1 SYNOPSIS
14
15     use HTTP::Body::XForms;
16
17 =head1 DESCRIPTION
18
19 HTTP Body XForms Parser. This module parses single part XForms
20 submissions, which are identifiable by the content-type
21 application/xml. The XML is stored unparsed on the parameter
22 XForms:Model.
23
24 =head1 METHODS
25
26 =over 4
27
28 =item spin
29
30 This method is overwrited to set the param XForms:Model with
31 the buffer content.
32
33 =cut
34
35 sub spin {
36     my $self = shift;
37
38     return unless $self->length == $self->content_length;
39
40     $self->body($self->{buffer});
41     $self->param( 'XForms:Model', $self->{buffer} );
42     $self->{buffer} = '';
43     $self->{state}  = 'done';
44
45     return $self->SUPER::init();
46 }
47
48 =back
49
50 =head1 AUTHOR
51
52 Daniel Ruoso, C<daniel@ruoso.com>
53
54 =head1 LICENSE
55
56 This library is free software . You can redistribute it and/or modify 
57 it under the same terms as perl itself.
58
59 =cut
60
61 1;