package UR::Object::View::Static::Html;
use strict;
use warnings;
require UR;
our $VERSION = "0.46"; # UR $VERSION;
class UR::Object::View::Static::Html {
is => 'UR::Object::View',
has => {
output_format => { value => 'html' },
html_root => { doc => 'path to plain-old html files' }
},
has_constant => [
perspective => { value => 'static' },
toolkit => { value => 'html' },
],
};
sub content {
my ($self) = @_;
my $filename = class_to_filename($self->subject->class);
my $perspective = $self->perspective() || die "Error: I have no perspective";
my $pathname = join('/', $self->html_root(), $perspective, $filename);
open(my $fh, $pathname); if (!$fh) { die "Could not open the static html file: $pathname"; }
my $c = do
{ undef $/;
<$fh>;
};
close($pathname);
return $c;
}
sub class_to_filename {
my ($class) = @_;
$class = lc($class);
$class =~ s/::/_/g;
$class .= '.html';
return $class;
}
1;
=pod
=head1 NAME
UR::Object::View::Static::Html - represent object state in HTML format
=head1 SYNOPSIS
package Genome::Sample::Set::View::Detail::Html;
class Genome::Sample::Set::View::Detail::Html {
is => 'UR::Object::View::Static::Html',
has_constant => [
toolkit => { value => 'html' },
perspective => { value => 'detail' }
]
};
=head1 DESCRIPTION
The current default HTML class creates HTML by getting XML and applying XSL.
This class, on the other hand, displays some static html
=head1 SEE ALSO
UR::Object::View::Default::Html, UR::Object::View::Default::Text, UR::Object::View, UR::Object::View::Toolkit::XML, UR::Object::View::Toolkit::Text, UR::Object
=cut