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.