diff options
| author | fukachan <fukachan> | 2001-12-23 09:20:41 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2001-12-23 09:20:41 +0000 |
| commit | 04cb8de0162bf2d3acc6ce19226b5e93c8e05cc1 (patch) | |
| tree | d8a6077cbae6d7d5bed20afc5579b3783a26d1ec /fml | |
| parent | 34c85054ab72e6de478260ab299b8c9f55d883d2 (diff) | |
| download | fml8-04cb8de0162bf2d3acc6ce19226b5e93c8e05cc1.tar.gz fml8-04cb8de0162bf2d3acc6ce19226b5e93c8e05cc1.tar.bz2 fml8-04cb8de0162bf2d3acc6ce19226b5e93c8e05cc1.zip | |
update documents, comments
Diffstat (limited to 'fml')
| -rw-r--r-- | fml/lib/FML/Article.pm | 30 | ||||
| -rw-r--r-- | fml/lib/FML/CGI/Configure.pm | 41 | ||||
| -rw-r--r-- | fml/lib/FML/CGI/Scheduler.pm | 37 | ||||
| -rw-r--r-- | fml/lib/FML/CGI/ThreadTrack.pm | 36 | ||||
| -rw-r--r-- | fml/lib/FML/Command/Attribute.pm | 37 | ||||
| -rw-r--r-- | fml/lib/FML/Command/SendFile.pm | 41 | ||||
| -rw-r--r-- | fml/lib/FML/Header.pm | 93 |
7 files changed, 236 insertions, 79 deletions
diff --git a/fml/lib/FML/Article.pm b/fml/lib/FML/Article.pm index 2ba35278..5c585ed3 100644 --- a/fml/lib/FML/Article.pm +++ b/fml/lib/FML/Article.pm @@ -4,7 +4,7 @@ # All rights reserved. This program is free software; you can # redistribute it and/or modify it under the same terms as Perl itself. # -# $FML: Article.pm,v 1.26 2001/11/27 11:22:09 fukachan Exp $ +# $FML: Article.pm,v 1.27 2001/12/22 09:21:00 fukachan Exp $ # package FML::Article; @@ -47,7 +47,7 @@ message $curproc->{ incoming_message }. # Descriptions: constructor # Arguments: OBJ($self) OBJ($curproc) # Side Effects: none -# Return Value: FML::Article object +# Return Value: OBJ(FML::Article) sub new { my ($self, $curproc) = @_; @@ -94,8 +94,8 @@ This routine uses C<File::Sequence> module. # Descriptions: determine article id (sequence number) # Arguments: OBJ($self) -# Side Effects: record the current article sequence number -# Return Value: number (sequence identifier) +# Side Effects: save and update the current article sequence number +# Return Value: NUM(sequence identifier) sub increment_id { my ($self) = @_; @@ -124,7 +124,7 @@ return the current article sequence number. # Descriptions: return the article id (sequence number) # Arguments: OBJ($self) # Side Effects: none -# Return Value: number (sequence number) +# Return Value: NUM(sequence number) sub id { my ($self) = @_; @@ -144,7 +144,7 @@ If the variable C<$use_spool> is 'yes', this routine works. # Descriptions: spool in the article # Arguments: OBJ($self) NUM($id) -# Side Effects: +# Side Effects: create article in ML spool # Return Value: none sub spool_in { @@ -183,6 +183,9 @@ sub spool_in =head2 speculate_max_id($spool_dir) +scan the spool_dir and get max number among files in it It must be the +max (latest) article number in its folder. + =cut @@ -214,21 +217,6 @@ sub speculate_max_id } -=head1 Data IN/OUT among modules - -=head2 Style - - OO - -=head2 Data IN - - $curproc - -=head2 Data OUT - - $config->{ sequence_file } (increment number) - $config->{ spool_dir } (create file) - =head1 SEE ALSO L<FML::Header>, diff --git a/fml/lib/FML/CGI/Configure.pm b/fml/lib/FML/CGI/Configure.pm index 01accde5..6f8ade4d 100644 --- a/fml/lib/FML/CGI/Configure.pm +++ b/fml/lib/FML/CGI/Configure.pm @@ -4,7 +4,7 @@ # All rights reserved. This program is free software; you can # redistribute it and/or modify it under the same terms as Perl itself. # -# $FML: Configure.pm,v 1.6 2001/11/17 04:03:36 fukachan Exp $ +# $FML: Configure.pm,v 1.7 2001/12/22 09:21:02 fukachan Exp $ # package FML::CGI::Configure; @@ -22,20 +22,20 @@ use FML::Process::CGI; FML::CGI::Configure - provides functions for makefml CGI interface - XXX NOT YET IMPLEMENTED - =head1 SYNOPSIS - $makefml = new FML::CGI::Configure; - $makefml->new(); - $makefml->run(); + $obj = new FML::CGI::Configure; + $obj->prepare(); + $obj->verify_request(); + $obj->run(); + $obj->finish(); + +run() executes html_start(), run_cgi() and html_end() described below. See L<FML::Process::Flow> for flow details. =head1 DESCRIPTION -C<NOT YET IMPLEMENTED>. - =head2 CLASS HIERARCHY C<FML::CGI::Configure> is a subclass of C<FML::Process::CGI>. @@ -61,6 +61,10 @@ This module has routines needed for CGI. =cut +# Descriptions: print out HTML header + body former part +# Arguments: OBJ($curproc) HASH_REF($args) +# Side Effects: none +# Return Value: none sub html_start { my ($curproc, $args) = @_; @@ -82,6 +86,10 @@ sub html_start } +# Descriptions: print out body latter part +# Arguments: OBJ($curproc) HASH_REF($args) +# Side Effects: none +# Return Value: none sub html_end { my ($curproc, $args) = @_; @@ -96,6 +104,10 @@ sub html_end } +# Descriptions: print out navigation bar +# Arguments: OBJ($curproc) HASH_REF($args) +# Side Effects: none +# Return Value: none sub _show_guide { my ($curproc, $args) = @_; @@ -104,6 +116,11 @@ sub _show_guide } +# Descriptions: main routine for makefml.cgi. +# kick off suitable FML::Command finally via _execulte_command(). +# Arguments: OBJ($curproc) HASH_REF($args) +# Side Effects: none +# Return Value: none sub run_cgi { my ($curproc, $args) = @_; @@ -130,6 +147,10 @@ sub run_cgi } +# Descriptions: execute FML::Command +# Arguments: OBJ($curproc) HASH_REF($args) HASH_REF($command_args) +# Side Effects: load module +# Return Value: none sub _execute_command { my ($curproc, $args, $command_args) = @_; @@ -157,6 +178,10 @@ sub _execute_command } +# Descriptions: show menu +# Arguments: OBJ($curproc) HASH_REF($args) +# Side Effects: none +# Return Value: none sub _show_menu { my ($curproc, $args) = @_; diff --git a/fml/lib/FML/CGI/Scheduler.pm b/fml/lib/FML/CGI/Scheduler.pm index 58d4a3d3..8cd22db8 100644 --- a/fml/lib/FML/CGI/Scheduler.pm +++ b/fml/lib/FML/CGI/Scheduler.pm @@ -4,7 +4,7 @@ # All rights reserved. This program is free software; you can # redistribute it and/or modify it under the same terms as Perl itself. # -# $FML: Scheduler.pm,v 1.6 2001/11/13 15:18:31 fukachan Exp $ +# $FML: Scheduler.pm,v 1.7 2001/12/22 09:21:02 fukachan Exp $ # package FML::CGI::Scheduler; @@ -13,26 +13,27 @@ use vars qw(@ISA @EXPORT @EXPORT_OK $AUTOLOAD); use Carp; use CGI qw/:standard/; # load standard CGI routines - use FML::Process::CGI; @ISA = qw(FML::Process::CGI); =head1 NAME -FML::CGI::Scheduler - CGI module demo to show your schedule +FML::CGI::Scheduler - demonstration CGI module to show schedule (HTML TABLE) =head1 SYNOPSIS - $ticket = new FML::CGI::Scheduler; - $ticket->new(); - $ticket->run(); + $obj = new FML::CGI::Scheduler; + $obj->prepare(); + $obj->verify_request(); + $obj->run(); + $obj->finish(); -See L<FML::Process::Flow> for flow methods details. +run() executes html_start(), run_cgi() and html_end() described below. -=head1 DESCRIPTION +See L<FML::Process::Flow> for flow details. -C<NOT YET IMPLEMENTED>. +=head1 DESCRIPTION =head2 CLASS HIERARCHY @@ -43,11 +44,15 @@ C<FML::CGI::Scheduler> is a subclass of C<FML::Process::CGI>. Almost methods common for CGI or HTML are forwarded to C<FML::Process::CGI> base class. -This module has routines needed for CGI. +This module has routines needed for CGI main methond run(). =cut +# Descriptions: print out HTML header + body former part +# Arguments: OBJ($curproc) HASH_REF($args) +# Side Effects: none +# Return Value: none sub html_start { my ($curproc, $args) = @_; @@ -69,6 +74,10 @@ sub html_start } +# Descriptions: print out body latter part +# Arguments: OBJ($curproc) HASH_REF($args) +# Side Effects: none +# Return Value: none sub html_end { my ($curproc, $args) = @_; @@ -83,6 +92,10 @@ sub html_end } +# Descriptions: print out navigation bar +# Arguments: OBJ($curproc) HASH_REF($args) +# Side Effects: none +# Return Value: none sub _show_guide { my ($curproc, $args) = @_; @@ -93,6 +106,10 @@ sub _show_guide } +# Descriptions: main routine for calender (HTML TABLE format) +# Arguments: OBJ($curproc) HASH_REF($args) +# Side Effects: none +# Return Value: none sub run_cgi { my ($curproc, $args) = @_; diff --git a/fml/lib/FML/CGI/ThreadTrack.pm b/fml/lib/FML/CGI/ThreadTrack.pm index 26578fed..cd14b37a 100644 --- a/fml/lib/FML/CGI/ThreadTrack.pm +++ b/fml/lib/FML/CGI/ThreadTrack.pm @@ -4,7 +4,7 @@ # All rights reserved. This program is free software; you can # redistribute it and/or modify it under the same terms as Perl itself. # -# $FML: ThreadTrack.pm,v 1.11 2001/11/19 11:36:47 fukachan Exp $ +# $FML: ThreadTrack.pm,v 1.12 2001/12/22 09:21:02 fukachan Exp $ # package FML::CGI::ThreadTrack; @@ -13,7 +13,6 @@ use vars qw(@ISA @EXPORT @EXPORT_OK $AUTOLOAD); use Carp; use CGI qw/:standard/; # load standard CGI routines - use FML::Process::CGI; @ISA = qw(FML::Process::CGI); @@ -24,16 +23,18 @@ FML::CGI::ThreadTrack - CGI details to control thread system =head1 SYNOPSIS - $thread = new FML::CGI::ThreadTrack; - $thread->new(); - $thread->run(); + $obj = new FML::CGI::ThreadTrack; + $obj->prepare(); + $obj->verify_request(); + $obj->run(); + $obj->finish(); + +run() executes html_start(), run_cgi() and html_end() described below. See L<FML::Process::Flow> for flow details. =head1 DESCRIPTION -C<NOT YET IMPLEMENTED>. - =head2 CLASS HIERARCHY C<FML::CGI::ThreadTrack> is a subclass of C<FML::Process::CGI>. @@ -46,6 +47,10 @@ C<FML::Process::CGI> base class. =cut +# Descriptions: print out HTML header + body former part +# Arguments: OBJ($curproc) HASH_REF($args) +# Side Effects: none +# Return Value: none sub html_start { my ($curproc, $args) = @_; @@ -65,6 +70,10 @@ sub html_start } +# Descriptions: print out body latter part +# Arguments: OBJ($curproc) HASH_REF($args) +# Side Effects: none +# Return Value: none sub html_end { my ($curproc, $args) = @_; @@ -78,6 +87,11 @@ sub html_end } +# Descriptions: main routine for thread control +# run_cgi() can process request: list, show, change_status +# Arguments: OBJ($curproc) HASH_REF($args) +# Side Effects: none +# Return Value: none sub run_cgi { my ($curproc, $args) = @_; @@ -123,6 +137,10 @@ sub run_cgi } +# Descriptions: prepare basic parameter for Mail::ThreadTrack module +# Arguments: OBJ($curproc) HASH_REF($args) +# Side Effects: none +# Return Value: HASH_REF sub _build_param { my ($curproc, $args) = @_; @@ -159,6 +177,10 @@ sub _build_param } +# Descriptions: print navigation bar +# Arguments: OBJ($curproc) HASH_REF($args) +# Side Effects: none +# Return Value: none sub _show_guide { my ($curproc, $args) = @_; diff --git a/fml/lib/FML/Command/Attribute.pm b/fml/lib/FML/Command/Attribute.pm index 694f5688..f6fa42be 100644 --- a/fml/lib/FML/Command/Attribute.pm +++ b/fml/lib/FML/Command/Attribute.pm @@ -4,13 +4,36 @@ # All rights reserved. This program is free software; you can # redistribute it and/or modify it under the same terms as Perl itself. # -# $FML: Attribute.pm,v 1.1 2001/10/17 10:24:26 fukachan Exp $ +# $FML: Attribute.pm,v 1.2 2001/12/22 09:21:03 fukachan Exp $ # package FML::Command::Attribute; use strict; use vars qw($FML_USER_COMMAND $FML_ADMIN_COMMAND); +=head1 NAME + +FML::Command::Attribute - define attributes for each command + +=head1 SYNOPSIS + + $r = $obj->get_attribute($mode, $comname, 'require_lock'); + lock() if $r; + +=head1 DESCRIPTION + +get attribute for command under ucrrent mode. +do something following the attribute value. + +=head1 METHOD + +=head2 get_attribute(mode, comname, attribute) + +return attribute for (mode, comname, attribute) combination. + +=cut + + $FML_USER_COMMAND = { '__default__' => { 'require_lock' => 1, @@ -22,6 +45,10 @@ $FML_USER_COMMAND = { }; +# Descriptions: return attribute for (mode, comname, attribute) combination +# Arguments: OBJ($self) STR($mode) STR($comname) STR($attribute) +# Side Effects: none +# Return Value: STR sub get_attribute { my ($self, $mode, $comname, $attribute) = @_; @@ -59,14 +86,6 @@ sub get_attribute } -=head1 NAME - -FML::Command::Attribute - attribute for each command - -=head1 SYNOPSIS - -=head1 DESCRIPTION - =head1 AUTHOR Ken'ichi Fukamachi diff --git a/fml/lib/FML/Command/SendFile.pm b/fml/lib/FML/Command/SendFile.pm index 6af79298..0ba266a7 100644 --- a/fml/lib/FML/Command/SendFile.pm +++ b/fml/lib/FML/Command/SendFile.pm @@ -4,7 +4,7 @@ # All rights reserved. This program is free software; you can # redistribute it and/or modify it under the same terms as Perl itself. # -# $FML: SendFile.pm,v 1.4 2001/10/17 03:05:12 fukachan Exp $ +# $FML: SendFile.pm,v 1.5 2001/12/22 09:21:03 fukachan Exp $ # package FML::Command::SendFile; @@ -17,30 +17,36 @@ use FML::Log qw(Log LogWarn LogError); =head1 NAME -FML::Command::SendFile - utility functions to send back specified file +FML::Command::SendFile - utility functions to send back file(s) =head1 SYNOPSIS -not yet implemented +For example, See L<FML::Command::User::get> and +L<FML::Command::Admin::get>.. + + sub process + { + my ($self, $curproc, $command_args) = @_; + $self->send_article($curproc, $command_args); + } =head1 DESCRIPTION +This module provides several utility functions to send back article +and file in C<$ml_home_dir>. + =head1 METHODS =head2 C<send_article($curproc, $command_args)> -send back articles. - -used in -C<FML::Command::User> -and -C<FML::Command::Admin> -modules. +send back articles. This is used in C<FML::Command::User> and +C<FML::Command::Admin> modules. =cut + # Descriptions: send back articles -# Arguments: $self $curproc $command_args +# Arguments: OBJ($self) OBJ($curproc) HASH_REF($command_args) # Side Effects: none # Return Value: none sub send_article @@ -80,9 +86,9 @@ sub send_article # Descriptions: check the argument and expand it if needed -# Arguments: $self $curproc $filename_string +# Arguments: OBJ($self) OBJ($curproc) STR($fn) # Side Effects: none -# Return Value: HASH ARRAY as [ $fist .. $last ] +# Return Value: HASH_ARRAY as [ $fist .. $last ] sub _is_valid_argument { my ($self, $curproc, $fn) = @_; @@ -126,9 +132,9 @@ sub _is_valid_argument # Descriptions: make an array from $fist to $last number -# Arguments: $first_number $last_number +# Arguments: NUM($first_number) NUM($last_number) # Side Effects: none -# Return Value: HASH ARRAY as [ $first .. $last ] +# Return Value: HASH_ARRAY as [ $first .. $last ] sub _expand_range { my ($first, $last) = @_; @@ -145,8 +151,9 @@ send back file specified as C<$command_args->{ _file_to_send }>. =cut -# Descriptions: -# Arguments: $self $curproc $command_args + +# Descriptions: send arbitrary file in $ml_home_dir. +# Arguments: OBJ($self) OBJ($curproc) HASH_REF($command_args) # Side Effects: none # Return Value: none sub send_file diff --git a/fml/lib/FML/Header.pm b/fml/lib/FML/Header.pm index de85286e..c9e2cc22 100644 --- a/fml/lib/FML/Header.pm +++ b/fml/lib/FML/Header.pm @@ -4,7 +4,7 @@ # All rights reserved. This program is free software; you can # redistribute it and/or modify it under the same terms as Perl itself. # -# $FML: Header.pm,v 1.37 2001/05/27 14:27:53 fukachan Exp $ +# $FML: Header.pm,v 1.38 2001/12/22 09:21:01 fukachan Exp $ # package FML::Header; @@ -56,9 +56,9 @@ forward the request up to superclass C<Mail::header::new()>. # Descriptions: forward new() request to the base class -# Arguments: $self $args +# Arguments: OBJ($self) HASH_REF($args) # Side Effects: none -# Return Value: none +# Return Value: OBJ sub new { my ($self, $args) = @_; @@ -68,6 +68,10 @@ sub new } +# Descriptions: dummy +# Arguments: OBJ($self) HASH_REF($args) +# Side Effects: none +# Return Value: none sub DESTROY {} @@ -89,6 +93,11 @@ alias of C<Mail::Header::set($key, $value)>. =cut + +# Descriptions: get() wrapper to remove \n$ +# Arguments: OBJ($self) ARRAY(@x) +# Side Effects: none +# Return Value: STR sub get { my ($self, @x) = @_; @@ -98,6 +107,10 @@ sub get } +# Descriptions: set() wrapper +# Arguments: OBJ($self) ARRAY(@x) +# Side Effects: none +# Return Value: none sub set { my ($self, @x) = @_; @@ -113,6 +126,10 @@ It parse it by C<Mail::Address::parse()> and nuke < and >. =cut +# Descriptions: utility to remove ^\s*< and >\s*$ +# Arguments: OBJ($self) STR($addr) +# Side Effects: none +# Return Value: STR sub address_clean_up { my ($self, $addr) = @_; @@ -141,10 +158,11 @@ return the C<boundary> defind in the header's Content-Type field. =cut + # Descriptions: return the type defind in the header's Content-Type field. -# Arguments: $self +# Arguments: OBJ($header) # Side Effects: extra spaces in the type to return is removed. -# Return Value: none +# Return Value: STR or UNDEF sub data_type { my ($header) = @_; @@ -158,9 +176,9 @@ sub data_type # Descriptions: return boundary defined in Content-Type -# Arguments: $self $args +# Arguments: OBJ($header) # Side Effects: none. -# Return Value: none +# Return Value: STR or UNDEF sub mime_boundary { my ($header) = @_; @@ -196,6 +214,10 @@ add X-ML-Count: =cut +# Descriptions: add "X-ML-Name: elena" to header +# Arguments: OBJ($header) OBJ($config) HASH_REF($args) +# Side Effects: update $header +# Return Value: none sub add_fml_ml_name { my ($header, $config, $args) = @_; @@ -203,6 +225,10 @@ sub add_fml_ml_name } +# Descriptions: add "X-Mail-Count: NUM" to header +# Arguments: OBJ($header) OBJ($config) HASH_REF($args) +# Side Effects: update $header +# Return Value: none sub add_fml_traditional_article_id { my ($header, $config, $args) = @_; @@ -210,6 +236,10 @@ sub add_fml_traditional_article_id } +# Descriptions: add "X-ML-Count: NUM" to header +# Arguments: OBJ($header) OBJ($config) HASH_REF($args) +# Side Effects: update $header +# Return Value: none sub add_fml_article_id { my ($header, $config, $args) = @_; @@ -238,6 +268,10 @@ add X-Sequence. =cut +# Descriptions: add "X-ML-Server: fml .." and "List-Software: fml .." to header +# Arguments: OBJ($header) OBJ($config) HASH_REF($args) +# Side Effects: update $header +# Return Value: none sub add_software_info { my ($header, $config, $args) = @_; @@ -258,6 +292,10 @@ sub add_software_info } +# Descriptions: add List-* to header +# Arguments: OBJ($header) OBJ($config) HASH_REF($args) +# Side Effects: update $header +# Return Value: none sub add_rfc2369 { my ($header, $config, $args) = @_; @@ -302,6 +340,10 @@ sub add_rfc2369 } +# Descriptions: add "X-Sequence: elena NUM" to header +# Arguments: OBJ($header) OBJ($config) HASH_REF($args) +# Side Effects: update $header +# Return Value: none sub add_x_sequence { my ($header, $config, $args) = @_; @@ -322,6 +364,10 @@ add or replace C<Reply-To:>. =cut +# Descriptions: rewrite subject if needed +# Arguments: OBJ($header) OBJ($config) HASH_REF($args) +# Side Effects: update $header +# Return Value: none sub rewrite_subject_tag { my ($header, $config, $args) = @_; @@ -337,6 +383,10 @@ sub rewrite_subject_tag } +# Descriptions: rewrite Reply-To: if needed +# Arguments: OBJ($header) OBJ($config) HASH_REF($args) +# Side Effects: update $header +# Return Value: none sub rewrite_reply_to { my ($header, $config, $args) = @_; @@ -362,6 +412,11 @@ The keys are space separeted. =cut + +# Descriptions: remove some header fields defined in $config +# Arguments: OBJ($header) OBJ($config) HASH_REF($args) +# Side Effects: update $header +# Return Value: none sub delete_unsafe_header_fields { my ($header, $config, $args) = @_; @@ -385,6 +440,10 @@ References: fields. =cut +# Descriptions: remove tag like string in $str +# Arguments: OBJ($header) STR($str) +# Side Effects: none +# Return Value: STR sub delete_subject_tag_like_string { my ($header, $str) = @_; @@ -395,6 +454,11 @@ sub delete_subject_tag_like_string } +# Descriptions: extract Message-ID:'s in $header from +# In-Reply-To: and References: fields. +# Arguments: OBJ($header) +# Side Effects: none +# Return Value: HASH_ARRAY sub extract_message_id_references { my ($header) = @_; @@ -439,6 +503,11 @@ C<address_for_post> address. =cut +# Descriptions: check whether message-id is duplicated or not +# against mail loop. +# Arguments: OBJ($header) OBJ($config) HASH_REF($args) +# Side Effects: update cache +# Return Value: STR or 0 sub verify_message_id_uniqueness { my ($header, $config, $args) = @_; @@ -469,6 +538,11 @@ sub verify_message_id_uniqueness return $dup; } + +# Descriptions: check X-ML-Info: duplication against mail loop +# Arguments: OBJ($header) OBJ($config) HASH_REF($args) +# Side Effects: none +# Return Value: 1 or 0 sub verify_x_ml_info_uniqueness { my ($header, $config, $args) = @_; @@ -483,6 +557,11 @@ sub verify_x_ml_info_uniqueness } } + +# Descriptions: check mail loop by List-Post: field +# Arguments: OBJ($header) OBJ($config) HASH_REF($args) +# Side Effects: none +# Return Value: 1 or 0 sub verify_list_post_uniqueness { my ($header, $config, $args) = @_; |
