The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

SoggyOnion::Plugin - how to extend SoggyOnion

SYNOPSIS

    # sample plugin that uses a file as its resource.
    # needs a 'filename' key in the item hash in the config
    package SoggyOnion::Plugin::File;
    
    sub init {
        my $self = shift;
        die "I have no filename" 
            unless exists $self->{filename};
    }
    
    sub mod_time {
        my $self = shift;
        return [ stat $self->{filename} ]->[9];
    }
    
    sub content {
        open( FH, "<$self->{filename}" ) or die $!
        my $data = join('', <FH>);
        close FH;
        return $data;
    }

DESCRIPTION

This is the base class for all SoggyOnion plugins.

METHODS

new( $hashref )

Constructor that SoggyOnion gives a hash of information. Can be used for the plugin's own stash.

init()

This is called before we call mod_time and/or content. I use it to set the useragent in LWP::Simple in a few modules.

id()

Return the ID is used for <DIV> tags and internal caching stuff. This is a simple accessor that makes the code cleaner.

mod_time()

The default mod_time method ensures that the resource is always refreshed (cache is never used).

content()

Return XHTML content.

SEE ALSO

SoggyOnion

AUTHOR

Ian Langworth, <ian@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2004 by Ian Langworth

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.