;
use strict;
use warnings;
package Metabase::Report;
our $VERSION = '0.025';
use Carp ();
use JSON::MaybeXS ();
use Metabase::Fact;
our @ISA = qw/Metabase::Fact/;
#------------------------------
osed};
my $content = [ map { $_->as_struct } @{ $self->content } ];
my $encoded = eval { JSON::MaybeXS->new(ascii => 1)->encode($content) };
Carp::confess $@ if $@;
return $encoded;
}
{
my ( $self, $string ) = @_;
$string = $$string if ref $string;
my $fact_structs = JSON::MaybeXS->new(ascii => 1)->decode($string);
my @facts;
for my $struct (@$fact_structs) {
e strict;
use warnings;
package Metabase::Fact::Hash;
our $VERSION = '0.025';
use Carp ();
use JSON::MaybeXS ();
use Metabase::Fact;
our @ISA = qw/Metabase::Fact/;
sub validate_content {
my (
{
my ($self) = @_;
return JSON::MaybeXS->new(ascii => 1)->encode( $self->content );
}
sub content_from_bytes {
my ( $class, $bytes ) = @_;
return JSON::MaybeXS->new(ascii => 1)->decod
act;
our $VERSION = '0.025';
use Carp ();
use Data::GUID guid_string => { -as => '_guid' };
use JSON::MaybeXS ();
use Metabase::Resource;
#----------------------------------------------------------
}
sub as_json {
my ($self) = @_;
return JSON::MaybeXS->new(ascii => 1)->encode( $self->as_struct );
}
sub from_json {
my ( $class, $string ) = @_;
my $struct = eval { JSON::MaybeXS-
>new(ascii => 1)->decode($string) }
or Carp::confess "Error decoding JSON:\n$@";
return $class->from_struct($struct);
}
sub save {
my ( $self, $filename ) = @_;
my $class = ref($sel