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

NAME

WWW::Geni - Perl extension for Geni.com

SYNOPSIS

        use WWW::Geni;

        my $geni = new WWW::Geni($username, $password, collaborators => 1);

DESCRIPTION

Use this module to manipulate Geni profiles and examine profile conflicts. This module contains four classes: WWW::Geni, WWW::Geni::List, WWW::Geni::Profile, and WWW::Geni::Conflict.

METHODS

WWW::Geni

WWW::Geni->new($username, $password)

Returns a WWW::Geni object or 0 if login credentials were not supplied or login fails. Optional argument "collaborators" specifies whether to retrieve collaborator conflicts or only your own.

$geni->user()

Get username the script is currently logged in as.

$geni->tree_conflicts()

Returns a WWW::Geni::List of WWW::Geni::Conflict objects. Access by using $list->has_next() and $list->next().

        my $list = $geni->tree_conflicts();
        while(my $conflict = $list->next()){
                # do something
        }

WWW::Geni::Conflict

This object should only be created internally by this module. It is used to group profiles that may be duplicates of each other and document the relationships between those profiles.

$conflict->profile()

Returns a WWW::Geni::Profile object describing the focal profile of this conflict.

$conflict->managers()

TODO: Make sure this is accurate

Returns a WWW::Geni::List of WWW::Geni::Profile objects describing the managers involved in this conflict.

$conflict->type()

Returns the type of conflict in the form "parent" or "partner".

$conflict->actor()

Returns a WWW::Geni::Profile describing the last Geni user who acted upon this conflict.

$conflict->fetch_list()

Returns a WWW::Geni::List of WWW::Geni::Profile objects describing, respectively, the spouses, parents, children, and siblings of the conflict's focal profile.

WWW::Geni::Profile

Describes a single Geni profile.

$profile->id()

Get the new-style ID of the profile, which is in the form "profile-0000000000", or if it is not known, the old-style ID, which is in the form "G00000000000000000".

$profile->first_name()

$profile->middle_name()

$profile->last_name()

$profile->maiden_name()

$profile->display_name()

$profile->gender()

$profile->birth_date()

$profile->birth_location()

$profile->death_date()

$profile->death_location()

$profile->locked()

Returns 1 if profile is locked, 0 if profile is not locked.

$profile->big_tree()

Returns 1 if the profile is in the Big Tree, 0 if it is not.

$profile->claimed()

Returns 1 if the profile is claimed, i. e., a living Geni user, 0 if it is not.

$profile->public()

Returns 1 if the profile is public, 0 if it is private.

$profile->creator()

Returns the WWW::Geni::Profile of the profile's creator.

$profile->guid()

Returns the profile's old-style ID in the form "G00000000000000000" if we have it.

$profile->managers()

TODO: Change this to a WWW::Geni::List of WWW::Geni::Profile objects.

Returns an array of profile ids representing the managers of the profile.

WWW::Geni::Family

This class may not ever be used and may be deleted.

WWW::Geni::List

TODO: see if there is any need for an existing iterable type class instead of defining our own, and weigh the benefits of an additional dependency.

A class representing an iterable group of items of the same type.

$list->has_next()

Return 1 if there are items left in the list, 0 if the list is empty.

$list->next()

Delete and return the next object in the list.

$list->add()

Add an item to the end of the list.

$list->count()

Return the number of items remaining in the list.

SEEALSO

GitHub: https://github.com/erinspice/geni-perl

AUTHOR

Erin Spiceland <lt>erin@thespicelands.com<gt> Erin is a software developer and part-time amateur genealogist, as well as a Geni Curator.

COPYRIGHT AND LICENSE

Copyright (C) 2010-2011 by Erin Spiceland

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.1 or, at your option, any later version of Perl 5 you may have available.