Bivio::UI::View::LocalFile
# Copyright (c) 2006-2009 bivio Software, Inc. All Rights Reserved. # $Id$ package Bivio::UI::View::LocalFile; use strict; use Bivio::Base 'UI.View'; sub SUFFIX { return '.bview'; } sub absolute_path { return shift->get('view_file_name'); } sub compile { my($self) = @_; return Bivio::IO::File->read($self->get('view_file_name')); } sub unsafe_new { my($proto, $name, $facade) = @_; my($file) = $facade->get_local_file_name(VIEW => $name) . $proto->SUFFIX; return -r $file && -f _ ? $proto->new({ view_file_name => $file, view_name => _clean_name($proto, $name), }) : undef; } sub _clean_name { my($proto, $n) = @_; $n =~ s!^/|/$!!g; $n =~ s!/+!/!g; $n =~ s/\Q@{[$proto->SUFFIX]}\E$//og; return $n; } 1;