NAME
    WebService::Bukget - Provides access to the v3 Bukget API

VERSION
    version 1.00

SYNOPSIS
        use WebService::Bukget;

        my $bukget = WebService::Bukget->new();
        my $authors = $bukget->authors;

NAME
    WebService::Bukget - A module that allows easy access to the Bukget API

CALLING CONVENTIONS
    All methods used to access Bukget endpoints expect you to pass at the
    very least a hashref with the following keys:

    *   on_success - A coderef that gets the WebService::Bukget instance and
        the decoded JSON result as parameters

    *   on_failure - A coderef that gets an arrayref of code and status as
        parameters

    Optionally you can pass another key called "params" which should be a
    hashref of parameters to pass to the get request. See the examples below
    for more information, and also see the API documentation at
    <http://bukget.org/pages/docs/API3.html>

METHODS
  geninfo
    Maps to the "geninfo" endpoint

  categories
    Maps to the "categories" endpoint

  plugins
    Maps to the "plugins" endpoint

  authors
    Maps to the "authors" endpoint

EXAMPLES
        # Fetch the latest geninfo 
        $bukget->geninfo({
            on_success => sub {
                my ($b, $r) = (@_);

                print 'Last updated: ', $r->[0]->{timestamp}, "\n";
            },
            on_failure => sub {
                die 'oops, ';
            },
        });

        # Fetch the latest 5 geninfo entries
        $bukget->geninfo({
            params => { 
                size => 5 
            },
            on_success => sub {
                my ($b, $r) = (@_);

                print 'Last updated: ', $_->{timestamp}, "\n" for(@$r);
            },
            on_failure => sub {
                die 'oops, ';
            },
        });

        # Fetch the first page of plugins from the 'Admin Tools' category,
        # using 10 items per page, and only fetching the slug, logo and game version fields
        $bukget->categories('Admin Tools' => {
            params => { 
                size   => 10,
                start  => 0,
                fields => [qw/slug logo versions.game_version/],
            },
            on_success => sub {
                my ($b, $r) = (@_);

                ...
            },
            on_failure => sub {
                die 'oops, ';
            },
        });

TO-DO$
    *   Clean up the code some since it's rather ugly

    *   Add support for the search function in the Bukget API

AUTHOR
    Ben van Staveren, "<madcat at cpan.org>"

BUGS/CONTRIBUTING
    Please report any bugs or feature requests through the web interface at
    <https://github.com/benvanstaveren/WebService-Bukget/issues>. You can
    fork my Git repository at
    <https://github.com/benvanstaveren/WebService-Bukget/> if you want to
    make changes or supply me with patches.

LICENSE AND COPYRIGHT
    Copyright 2012 Ben van Staveren.

    This program is free software; you can redistribute it and/or modify it
    under the terms of either: the GNU General Public License as published
    by the Free Software Foundation; or the Artistic License.

    See http://dev.perl.org/licenses/ for more information.

AUTHOR
    Ben van Staveren <madcat@cpan.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2012 by Ben van Staveren.

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

