NAME
    jQuery::Loader - Load (and cache) the jQuery JavaScript library

VERSION
    Version 0.03

jQuery VERSION
    Version 1.2.6

SYNOPSIS
        use jQuery::Loader;

        my $loader = jQuery::Loader->new_from_internet;
        print $loader->html;

        # The above will yield:
        # <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js" type="text/javascript"></script>


        # If you need the minified version, you can use the following:
        $loader = jQuery::Loader->new_from_internet(filter => "min");

        # Which will yield:
        # <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript"></script>

    You can also cache jQuery locally:

        my $loader = jQuery::Loader->new_from_internet(cache => { dir => "htdocs/assets/\%l", uri => "http://localhost/assets/\%l" });
        print $loader->html;

        # The above will yield:
        # <script src="http://localhost/assets/jquery-1.2.6.js">

DESCRIPTION
    jQuery::Loader is a tool for fetching and serving the jQuery JavaScript
    library. Using this package you can download jQuery directly from
    <http://code.google.com/p/jqueryjs/>, cache it locally, and serve it
    from a URI within your application.

Specifying URI/file locations for the jQuery .js asset
    90% of the time, you should be able to get by by specifying an absolute
    URI/file location. Something like this, for example:

        jQuery::Loader->new_from_internet(cache => { uri => "http://localhost/assets/jquery.js", file => "htdocs/assets/jquery.js" })

    However, if you want more control over the path (like specifying
    filter/version information, you can use the following conversion
    specifications:

        %l          The value of the location parameter as passed to the cache constructor
                    You can use this to specify a path common to both the uri-part and file-part of the cache
                    The location parameter value can also include %j, %v, $f, etc.

        %j          Equivalent to "jquery%-v%.f.js"

        %v          The number of the version jQuery being used (e.g. "1.2.6")
        %[./-]v     Preceding %v with a ., /, or - will put that same character in
                    front of the number, or a nothing for the whole specification if no version is given

        %f          The name of the filter being used (e.g. "min")
        %[./-]f     Preceding %f with a ., /, or - will put that same character in
                    front of the filter, or a nothing for the whole specification if no filter is in use

    Here is an example:

        location => "js/jq%-v.js"           # js/jq-1.2.6.js
        uri => "http://localhost/assets/%l" # http://localhost/assets/js/jq-1.2.6.js
        file => "./htdocs/static/%l"        # ./htdocs/static/js/jq-1.2.6.js

METHODS
  jQuery::Loader->new_from_internet([ version => <version>, cache => <cache> ])
    Return a new jQuery::Loader object configured to serve/fetch the jQuery
    .js asset from from the Internet (currently
    <http://jqueryjs.googlecode.com/files/jquery-1.2.6.js>)

  jQuery::Loader->new_from_uri([ uri => <uri>, cache => <cache> ])
    Return a new jQuery::Loader object configured to serve/fetch the jQuery
    .js asset from an arbitrary uri

    As an example, for a <uri> of "http://localhost/assets/%l", the jQuery
    asset uri should be

        http://localhost/assets/jquery-1.2.6.js

  jQuery::Loader->new_from_file([ file => <file>, cache => <cache> ])
    Return a new jQuery::Loader object configured to fetch/serve the jQuery
    .js asset from an arbitrary file

    As an example, for a file of "./assets/%l", the jQuery asset file should
    be

        ./assets/jquery-1.2.6.js

  $loader->filter( <filter> )
    Set or clear the current filter

    Currently, "min" is the only valid filter

    Pass "undef" to clear the filter

    These are equivalent:

        $loader->filter_min
        $loader->filter("min")

        $loader->no_filter
        $loader->filter(undef)

  $loader->version( <version> )
    Set which jQuery version you want to use

    This will also change the filename of the jQuery asset (unless the
    source/cache has been specially configured)

    By default, the latest version is used:

        $loader->version("1.2.6");

  $loader->filter_min
    Use the .min version of jQuery

  $loader->no_filter
    Disable filtering of included components (do not use the .min version)

  $loader->uri
    Attempt to fetch a URI for jQuery using the current filter setting of
    the loader (.min, etc.)

    If the loader has a cache, then this method will try to fetch from the
    cache. Otherwise it will use the source.

  $loader->file
    Attempt to fetch a Path::Class::File for jQuery using the current filter
    setting of the loader (.min, etc.)

    If the loader has a cache, then this method will try to fetch from the
    cache. Otherwise it will use the source.

  $loader->cache_uri
    Attempt to fetch a URI for jQuery using the current filter setting of
    the loader (.min, etc.) from the cache

  $loader->cache_file
    Attempt to fetch a Path::Class::File for jQuery using the current filter
    setting of the loader (.min, etc.) from the cache

  $loader->source_uri
    Attempt to fetch a URI for jQuery using the current filter setting of
    the loader (.min, etc.) from the source

  $loader->source_file
    Attempt to fetch a Path::Class::File for jQuery using the current filter
    setting of the loader (.min, etc.) from the source

  $loader->html
    Generate and return a string containing HTML describing how to include
    components. For example, you can use this in the <head> section of a web
    page.

    If the loader has a cache, then it will attempt to generate URIs from
    the cache, otherwise it will use the source.

    Here is an example:

        <script src="http://localhost/assets/jquery-1.2.6.js" type="text/javascript"></script>

  $loader->source_html
    Generate and return a string containing HTML describing how to include
    components. For example, you can use this in the <head> section of a web
    page.

    Here is an example:

        <script src="http://localhost/assets/jquery-1.2.6.js" type="text/javascript"></script>

AUTHOR
    Robert Krimen, "<rkrimen at cpan.org>"

SEE ALSO
    <http://jquery.com/>

    <http://code.google.com/p/jqueryjs/>

    jQuery

    YUI::Loader

BUGS
    Please report any bugs or feature requests to "bug-js-jquery-loader at
    rt.cpan.org", or through the web interface at
    <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=jQuery-Loader>. I will
    be notified, and then you'll automatically be notified of progress on
    your bug as I make changes.

SUPPORT
    You can find documentation for this module with the perldoc command.

        perldoc jQuery::Loader

    You can also look for information at:

    *   RT: CPAN's request tracker

        <http://rt.cpan.org/NoAuth/Bugs.html?Dist=jQuery-Loader>

    *   AnnoCPAN: Annotated CPAN documentation

        <http://annocpan.org/dist/jQuery-Loader>

    *   CPAN Ratings

        <http://cpanratings.perl.org/d/jQuery-Loader>

    *   Search CPAN

        <http://search.cpan.org/dist/jQuery-Loader>

ACKNOWLEDGEMENTS
COPYRIGHT & LICENSE
    Copyright 2008 Robert Krimen, all rights reserved.

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

