The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

GrowthForecast::Aggregator::Declare - Declarative interface for GrowthForecast client

SYNOPSIS

    use GrowthForecast::Aggregator::Declare;

    my @queries = gf {
        section member => sub {
            # post to member/count
            db(
                name => 'count',
                description => 'The number of members',
                query => 'SELECT COUNT(*) FROM member',
            );
        };

        section entry => sub {
            # post to entry/count, entry/count_unique
            db_multi(
                names        => ['count',                'count_unique'],
                descriptions => ['Total count of posts', 'Posted bloggers'],
                query => 'SELECT COUNT(*), COUNT(DISTINCT member_id) FROM entry',
            );
        };
    };
    for my $query (@queries) {
        $query->run(
            dbh => $dbh,
            ua  => $ua,
            service => 'blog_service',
            endpoint => 'http://exapmle.com/api/',
        );
    }

DESCRIPTION

GrowthForecast::Aggregator::Declare is a declarative client library for GrowthForecast

DSL

gf { ... }

This makes a scope to declare GrowthForecast metrics.

This function returns list of Aggregators.

section $name:Str, \&block
    section 'member' => sub { ... };

This function defines section. Under this function, db() and db_multi() function use the section name automatically.

db(%args)

Create GrowthForecast::Aggregator::DB object using %args.

db_multi(%args)

Create GrowthForecast::Aggregator::DBMulti object using %args.

callback(%args)

Create GrowthForecast::Aggregator::Callback object using %args.

AUTHOR

Tokuhiro Matsuno <tokuhirom AAJKLFJEF@ GMAIL COM>

SEE ALSO

This library is client for GrowthForecast.

LICENSE

Copyright (C) Tokuhiro Matsuno

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