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

package Metabase::Resource::metabase::fact;
our $VERSION = '0.024'; # VERSION

use Carp ();

use Metabase::Resource::metabase;
our @ISA = qw/Metabase::Resource::metabase/;

sub _metadata_types {
    return { guid => '//str', };
}

sub _init {
    my ($self) = @_;
    my ($guid) = $self =~ m{\Ametabase:[^:]+:(.+)\z};
    Carp::confess("could not determine guid from '$self'\n")
      unless defined $guid && length $guid;
    $self->_add( guid => $guid );
    return $self;
}

sub validate {
    my $self = shift;
    $self->_validate_guid( $self->guid );
    return 1;
}

1;

# ABSTRACT: class for Metabase facts

__END__

=pod

=encoding UTF-8

=head1 NAME

Metabase::Resource::metabase::fact - class for Metabase facts

=head1 VERSION

version 0.024

=head1 SYNOPSIS

  my $resource = Metabase::Resource->new(
    "metabase:fact:B66C7662-1D34-11DE-A668-0DF08D1878C0"
  );

  my $resource_meta = $resource->metadata;
  my $typemap       = $resource->metadata_types;

  my $user_id = $resource->guid;

=head1 DESCRIPTION

This resource is for a Metabase fact. (I.e. corresponding to the GUID of a
Metabase::Fact subclass.) For the example above, the resource metadata
structure would contain the following elements:

  scheme       => metabase
  subtype      => subtype
  guid         => b66c7662-1d34-11de-a668-0df08d1878c0

=head1 BUGS

Please report any bugs or feature using the CPAN Request Tracker.
Bugs can be submitted through the web interface at
L<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.

=head1 AUTHORS

=over 4

=item *

David Golden <dagolden@cpan.org>

=item *

Ricardo Signes <rjbs@cpan.org>

=item *

H.Merijn Brand <hmbrand@cpan.org>

=back

=head1 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

=cut