/[suikacvs]/messaging/manakai/lib/Message/Body/TextPlain.pm
Suika

Contents of /messaging/manakai/lib/Message/Body/TextPlain.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Thu Mar 21 04:20:17 2002 UTC (22 years, 8 months ago) by wakaba
Branch: MAIN
2002-03-21  wakaba <w@suika.fam.cx>

	* ChangeLog: New file.
	
	* TextPlain.pm: New module.

1 wakaba 1.1
2     =head1 NAME
3    
4     Message::Body::TextPlain Perl module
5    
6     =head1 DESCRIPTION
7    
8     Perl module for text/plain media type.
9    
10     =cut
11    
12     package Message::Body::TextPlain;
13     use strict;
14     use vars qw($VERSION %DEFAULT);
15     $VERSION=do{my @r=(q$Revision: 1.1 $=~/\d+/g);sprintf "%d."."%02d" x $#r,@r};
16    
17     require Message::Header;
18     use overload '""' => sub {shift->stringify};
19    
20     =head2 Message::Body::TextPlain->new ([%option])
21    
22     Returns new Message::Body::TextPlain instance. Some options can be
23     specified as hash.
24    
25     =cut
26    
27     sub new ($;%) {
28     my $class = shift;
29     my $self = bless {option => {@_}}, $class;
30     for (keys %DEFAULT) {$self->{option}->{$_} ||= $DEFAULT{$_}}
31     $self;
32     }
33    
34     =head2 Message::Body::TextPlain->parse ($body, [%option])
35    
36     Returns a new Message::Body::TextPlain with given body
37     object. Some options can be specified as hash.
38    
39     =cut
40    
41     sub parse ($$;%) {
42     my $class = shift;
43     my $body = shift;
44     my $self = bless {option => {@_}}, $class;
45     for (keys %DEFAULT) {$self->{option}->{$_} ||= $DEFAULT{$_}}
46     $self->header ($self->{option}->{header});
47     $self->{body} = $body;
48     $self;
49     }
50    
51     =head2 $self->header ([$new_header])
52    
53    
54     =cut
55    
56     sub header ($;$) {
57     my $self = shift;
58     my $new_header = shift;
59     if (ref $new_header) {
60     $self->{header} = $new_header;
61     } elsif ($new_header) {
62     $self->{header} = Message::Header->parse ($new_header);
63     }
64     unless ($self->{header}) {
65     $self->{header} = new Message::Header;
66     }
67     $self->{header};
68     }
69    
70     =head2 $self->body ([$new_body])
71    
72     Returns C<body> as string unless $new_body.
73     Set $new_body instead of current C<body>.
74    
75     =cut
76    
77     sub body ($;$) {
78     my $self = shift;
79     my $new_body = shift;
80     if ($new_body) {
81     $self->{body} = $new_body;
82     }
83     $self->{body};
84     }
85    
86     =head2 $self->stringify ([%option])
87    
88     Returns the C<body> as a string.
89    
90     =cut
91    
92     sub stringify ($;%) {
93     my $self = shift;
94     my %OPT = @_;
95     my ($body) = (scalar $self->{body});
96     $body .= "\n" unless $body =~ /\n$/;
97     $body;
98     }
99     sub as_string ($;%) {shift->stringify (@_)}
100    
101     =head2 $self->option ($option_name)
102    
103     Returns/set (new) value of the option.
104    
105     =cut
106    
107     sub option ($$;$) {
108     my $self = shift;
109     my ($name, $newval) = @_;
110     if ($newval) {
111     $self->{option}->{$name} = $newval;
112     }
113     $self->{option}->{$name};
114     }
115    
116     =head1 SEE ALSO
117    
118     RFC 822 <urn:ietf:rfc:822>,
119     RFC 2046 <urn:ietf:rfc:2046>, RFC 2646 <urn:ietf:rfc:2646>.
120    
121     =head1 LICENSE
122    
123     Copyright 2002 wakaba E<lt>w@suika.fam.cxE<gt>.
124    
125     This program is free software; you can redistribute it and/or modify
126     it under the terms of the GNU General Public License as published by
127     the Free Software Foundation; either version 2 of the License, or
128     (at your option) any later version.
129    
130     This program is distributed in the hope that it will be useful,
131     but WITHOUT ANY WARRANTY; without even the implied warranty of
132     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
133     GNU General Public License for more details.
134    
135     You should have received a copy of the GNU General Public License
136     along with this program; see the file COPYING. If not, write to
137     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
138     Boston, MA 02111-1307, USA.
139    
140     =head1 CHANGE
141    
142     See F<ChangeLog>.
143     $Date: 2002/03/13 15:10:21 $
144    
145     =cut
146    
147     1;

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24