logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Courriel::Header::Disposition - The content disposition for an email part

Api

       This class supports the following methods:

   Courriel::Header::Disposition->new_from_value(...)
       This takes two parameters, "name" and "value". The "name" is optional, and defaults to "Content-
       Disposition".

       The "value" is parsed and split up into the disposition and attributes.

   Courriel::Header::Disposition->new(...)
       This method creates a new object. It accepts the following parameters:

       •   name

           This defaults to 'Content-Type'.

       •   value

           This is the full header value.

       •   disposition

           This should usually either be "inline" or "attachment".

           In theory, the RFCs allow other values.

       •   attributes

           A  hash  reference  of  attributes from the header, such as a filename, creation date, size, etc. The
           keys are attribute names and the values can either be strings or  Courriel::HeaderAttribute  objects.
           Values which are strings will be inflated into objects by the constructor.

           This is optional, and can be an empty hash reference or omitted entirely.

   $ct->name()
       The header name, usually "Content-Disposition".

   $ct->value()
       The raw header value.

   $disp->disposition()
       Returns the disposition value passed to the constructor.

   $disp->is_inline()
       Returns true if the disposition is not equal to "attachment".

   $disp->is_attachment()
       Returns true if the disposition is equal to "attachment".

   $disp->filename()
       Returns the filename found in the attributes, or "undef".

   $disp->creation_datetime(),$disp->last_modified_datetime(),$disp->read_datetime()
       These  methods  look  for  a corresponding attribute ("creation-date", etc.) and return a DateTime object
       representing that attribute's value, if it exists.

   $disp->attributes()
       Returns a hash (not a reference) of the attributes passed to the constructor.

       Attributes are Courriel::HeaderAttribute objects.

       The keys of the hash are all lower case, though the original casing is preserved in the "name()" returned
       by the Courriel::HeaderAttribute object.

   $disp->attribute($key)
       Given a key, returns the named Courriel::HeaderAttribute object. Obviously, this value can be "undef"  if
       the attribute doesn't exist. Name lookup is case-insensitive.

   $disp->attribute_value($key)
       Given a key, returns the named attribute's value as a string. Obviously, this value can be "undef" if the
       attribute doesn't exist. Name lookup is case-insensitive.

       The attribute is a Courriel::HeaderAttribute object.

   $disp->as_header_value()
       Returns the object as a string suitable for a header value (but not folded).

Author

       Dave Rolsky <autarch@urth.org>

Description

       This class represents the contents of a "Content-Disposition" header attached to an email part. Such
       headers indicate whether or not a part should be considered an attachment or should be displayed to the
       user directly. This header may also include information about the attachment's filename, creation date,
       etc.

       Here are some typical headers:

         Content-Disposition: inline

         Content-Disposition: multipart/alternative; boundary=abcdefghijk

         Content-Disposition: attachment; filename="Filename.jpg"

         Content-Disposition: attachment; filename="foo-bar.jpg";
           creation-date="Tue, 31 May 2011 09:41:13 -0700"

Extends

       This class extends Courriel::Header.

Name

       Courriel::Header::Disposition - The content disposition for an email part

Roles

       This class does the "Courriel::Role::HeaderWithAttributes" role.

Source

       The source code repository for Courriel can be found at <https://github.com/houseabsolute/Courriel>.

Support

       Bugs may be submitted at <https://github.com/houseabsolute/Courriel/issues>.

       I am also usually active on IRC as 'autarch' on "irc://irc.perl.org".

Synopsis

           my $disp = $part->content_disposition();
           print $disp->is_inline();
           print $disp->is_attachment();
           print $disp->filename();

           my %attr = $disp->attributes();
           while ( my ( $k, $v ) = each %attr ) {
               print "$k => $v\n";
           }

Version

       version 0.49

See Also