David Golden > Metabase-Fact-0.024 > Metabase::Fact::Hash

Download:
Metabase-Fact-0.024.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 0.024   Source  

NAME ^

Metabase::Fact::Hash - fact subtype for simple hashes

VERSION ^

version 0.024

SYNOPSIS ^

  # defining the fact class
  package MyComment;
  use Metabase::Fact::Hash;
  our @ISA = qw/Metabase::Fact::Hash/;

  sub required_keys { qw/poster/ }

  sub optional_keys { qw/comment/ }

  sub content_metadata {
    my $self = shift;
    return {
      poster => [ '//str' => $self->content->{poster} ],
    };
  }

  sub validate_content {
    my $self = shift;
    $self->SUPER::validate_content; # required and optional keys

    # other analysis of values
  }

...and then...

  # using the fact class
  my $fact = MyFact->new(
    resource => 'RJBS/Metabase-Fact-0.001.tar.gz',
    content => {
      poster  => 'larry',
      comment => 'Metabase rocks!',
    }
  );

  $client->send_fact($fact);

DESCRIPTION ^

Many (if not most) facts to be stored in a Metabase are just hashes of simple data. Metabase::Fact::Hash is a subclass of Metabase::Fact with most of the required Fact methods already implemented. If you write your class as a subclass of Metabase::Fact::Hash, you can store simple hashes in it.

You should implement required_keys and/or optional_keys as shown in the SYNOPSIS. The superclass valiate_content will ensure that required keys exist and that only required an optional keys exist. You may wish to subclass validate_content to validate the specific content of the hash given to the constructor.

You may wish to implement a content_metadata method to generate metadata about the hash contents.

ATTRIBUTES ^

Arguments provided to new

resource

required

The canonical resource (URI) the Fact relates to. For CPAN distributions, this would be a cpan:///distfile/ URL. (See URI::cpan.)

content

required

A reference to the actual information associated with the fact. The exact form of the content is up to each Fact class to determine.

METHODS ^

For information on the methods provided by this class, see Metabase::Fact.

BUGS ^

Please report any bugs or feature using the CPAN Request Tracker. Bugs can be submitted through the web interface at http://rt.cpan.org/Dist/Display.html?Queue=Metabase-Fact

When submitting a bug or request, please include a test file or a patch to an existing test-file that illustrates the bug or desired feature.

AUTHORS ^

COPYRIGHT AND LICENSE ^

This software is Copyright (c) 2014 by David Golden.

This is free software, licensed under:

  The Apache License, Version 2.0, January 2004
syntax highlighting: