NAME
    Net::TribalWarsMap::API::TribeLookup - Query general information about
    tribes.

VERSION
    version 0.1.0

SYNOPSIS
        # Tag based lookup
        my $result = Net::TribalWarsMap::API::TribeLookup->get_tag('en69', 'kill');

        # Generic search
        my @results = Net::TribalWarsMap::API::TribeLookup->search_tribes('en69', 'Alex');

        # generic search with name filter
        my @results = Net::TribalWarsMap::API::TribeLookup->search_tribes('en69', 'lex',qr/^Alex/ );

        # Advanced
        my $instance = Net::TribalWarsMap::API::TribeLookup->new(
            world => 'en69',
            search => 'alex',
        );
        my $raw_results = $instance->_results;

METHODS
  "ua"
        my $ua = $instance->ua;

  "decoder"
        my $decoder = $instance->decoder();

  "world"
        my $world = $instance->world(); # en67 or similar

  "search"
        my $search = $instance->search();

  "uri"
        my $search_uri = $class->new( world => ... , search => ... )->uri;

  "get_tag"
        my $result = $class->get_tag( $world, $tag );

    For example:

        my $result = $class->get_tag('en69', 'kill');

    If $tag is not found, "undef" is returned.

  "search_tribes"
        my @results = $class->search_tribes( $world, $search_string );

    or

        my @results = $class->search_tribes( $world, $search_string , $name_filter_regexp );

    For instance:

          my @results = $class->search_tribes( 'en69', 'kill' );

    will return all tribes in "world en69" with the sub-string "kill" in
    their tag or name.

          my @results = $class->search_tribes( 'en69', 'kill' , qr/bar/);

    will return all tribes in "world en69" with the sub-string "kill" in
    their tag or name, where their name also matches

          $tribe->name =~ qr/bar/

ATTRIBUTES
  "ua"
    The HTTP User Agent to use for requests.

    Default is a "Net::TribalWarsMap::API::HTTP" instance.

        $instance->new( ua => $user_agent );
        ...
        my $ua = $instance->ua();

  "decoder"
    The "JSON" Decoder object

        my $instance = $class->new(
            decoder => JSON->new()
        );

  "world"
    MANDATORY PARAMETER:

        my $instance = $class->new( world => $world_name );

    This will be something like "en67", and is the prefix used in domain
    "URI"'s.

  "search"
        my $instance = $class->new( search => $string );

  "uri"
    Normally this parameter is not required to be provided, and is instead
    composed by joining an existing base URI with "world" "search" and "_ts"

        my $instance = $class->new( uri => 'fully qualified search URI' );

PRIVATE ATTRIBUTES
  "_ts"
        my $instance = $class->new( _ts => "mm-dd-yyy" );

  "_results"
    Lazy builder that returns a "json"-decoded version of the result of
    fetching "uri".

        my $instance = $class->new( _results => { %complex_structure } );

  "_decoded_results"
    Lazy builder that returns a Hash of Objects decoded from the result of
    "_results"

        my %complex_structure = (
            key => Net::TribalWarsMap::API::TribeLookup::Result->new(),
            key2 => Net::TribalWarsMap::API::TribeLookup::Result->new(),
        );
        my $instance => $class->new( _decoded_results => { %complex_structure } );

PRIVATE METHODS
  "_ts"
        my $now = $instance->_ts;

  "_results"
        my $raw_results = $instance->_results;

  "_decoded_results"
        my %decoded_results = %{ $instance->_decoded_results };

AUTHOR
    Kent Fredric <kentfredric@gmail.com>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2013 by Kent Fredric
    <kentfredric@gmail.com>.

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

