NAME

Net::FluidDB - A Perl interface to FluidDB

SYNOPSIS

use Net::FluidDB;
use Net::FluidDB::Object;
use Net::FluidDB::Tag;
use Net::FluidDB::Namespace;

# predefined FluidDB client for playing around, points
# to the sandbox with user test/test
$fdb = Net::FluidDB->new_for_testing;
$fdb = Net::FluidDB->new_for_testing(trace_http => 1);

# FluidDB client pointing to production
$fdb = Net::FluidDB->new(user => 'user', password => 'password');

# create object, with optional about
$object = Net::FluidDB::Object->new(
    fdb   => $fdb,
    about => $unique_about
);
$object->create;
$object->id; # returns the object's ID in FluidDB 

# get object by ID, optionally fetching about
$object = Net::FluidDB::Object->get($fdb, $object_id, about => 1);

# create tags
$tag = Net::FluidDB::Tag->new(
   fdb         => $fdb,
   description => $description,
   indexed     => 1,
   path        => $path
);
$tag->create;
$tag->namespace; # lazy loaded

# get tag by path, optionally fetching descrition
$tag = Net::FluidDB::Tag->get($fdb, $tag->path, description => 1);

# tag objects using an existing tag path
$object->tag("fxn/rating", 10);

# tag objects using an existing tag object
$object->tag($tag, "foo");

# get a tag's value on an object by tag path
$object->tag("fxn/rating"); # => 10

# get a tag's value on an object by tag object
$object->tag($tag); # => "foo"

# delete a tag
$tag->delete;

# create a namespace by path
$ns = Net::FluidDB::Namespace->new(
    fdb         => $fdb,
    path        => $path,
    description => $description
);
$ns->create;
$ns->parent # lazy loaded

# delete a namespace
$ns->delete;

DESCRIPTION

Net::FluidDB provides an interface to the FluidDB API.

FluidDB's tagline is "a database with the heart of a wiki". It was launched just a few days ago. Check these pages to know about FluidDB:

The design goal of Net::FluidDB is to offer a complete OO model for FluidDB with a convenience layer on top of it.

ALPHA VERSION & WORK IN PROGRESS

Net::FluidDB is in a very alpha stage:

  • The FluidDB API is partially implemented.

  • The overall interface is taking shape. I consider the basis to be there, but while in alpha the API may change.

  • In particular, since FluidDB is new usage patterns have yet to arise. They may influence the design of the interface.

  • As of this version calls to FluidDB return a status flag. If there was any failure the module only prints the response to STDERR and returns false.

  • The module is underdocumented, to use a generous adjective :-).

AUTHOR

Xavier Noria (FXN), <fxn@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2009 Xavier Noria

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.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 202:

Nested L<> are illegal. Pretending inner one is X<...> so can continue looking for other errors.

Unterminated L<...> sequence