Philippe Bruhat (BooK) > App-Wallflower > Wallflower

Download:
App-Wallflower-1.004.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 1.004   Source  

NAME ^

Wallflower - Stick Plack applications to the wallpaper

VERSION ^

version 1.004

SYNOPSIS ^

    use Wallflower;

    my $w = Wallflower->new(
        application => $app, # a PSGI app
        destination => $dir, # target directory
    );

    # dump all URL from $app to files in $dir
    $w->get( $_ ) for @urls;

DESCRIPTION ^

Given a URL and a Plack application, a Wallflower object will save the corresponding response to a file.

METHODS ^

new( %args )

Create a new Wallflower object.

The parameters are:

application

The PSGI/Plack application, as a CODE reference.

This parameter is required.

destination

The destination directory. Default is the current directory.

The destination directory must exist.

env

Additional environment key/value pairs.

index

The default filename for URLs ending in /. The default value is index.html.

get( $url )

Perform a GET request for $url through the application, and if successful, save the result to a filename derived from $url by the target() method.

$url can be either a string or a URI object, representing an absolute URL (the path must start with a /). The scheme, host, port, and query string are ignored if present.

The return value is very similar to a Plack application's:

   [ $status, $headers, $file ]

where $status and $headers are those returned by the application itself for the given $url, and $file is the name of the file where the content has been saved.

If a file exists at the location pointed to by the target, a If-Modified-Since header is added to the Plack environment, with the modification timestamp for this file as the value. If the application sends a 304 Not modified in response, the target file will not be modified.

target( $uri )

Return the filename where the content of $uri will be saved.

The path component of $uri is concatenated to the destination attribute. If the URL ends with a /, the index attribute is appended to create a file path.

Note that target() assumes $uri is a URI object, and that it must be absolute.

ACCESSORS ^

Accessors (getters only) exist for all parameters to new() and bear the same name.

AUTHOR ^

Philippe Bruhat (BooK) <book@cpan.org>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2012 by Philippe Bruhat (BooK).

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

syntax highlighting: