Changeset 27062 for lang/perl/MENTOS

Show
Ignore:
Timestamp:
12/19/08 16:01:48 (5 years ago)
Author:
mattn
Message:

merge from MENTA.

Location:
lang/perl/MENTOS/trunk
Files:
1 added
3 removed
5 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/MENTOS/trunk/app/controller/edit.mt

    r24901 r27062  
    1 ? my ($entry, $message) = @_ 
     1? my ($entry, $message) = @_; 
    22?= render('header.mt', config()->{application}->{title}) 
    33                        <div class="entry"> 
     
    99                                <br /> 
    1010                                <label for="description">本文</label><br /> 
    11 ? my $meta = join '', map({ "meta-$_: ".$entry->{meta}->{$_}."\n" } keys(%{$entry->{meta}})) 
     11? my $meta = join '', map({ "meta-$_: ".$entry->{meta}->{$_}."\n" } keys(%{$entry->{meta}})); 
    1212? $meta .= "\n" if $meta; 
    1313                                <textarea id="description" name="description" style="width: 400px; height: 300px;"><?=r $meta.escape_html($entry->{description}) ?></textarea> 
  • lang/perl/MENTOS/trunk/app/controller/entries.mt

    r26203 r27062  
    1 ? my $entries = shift 
     1? my ($entries) = @_; 
    22?= render('header.mt', config()->{application}->{title}) 
    33                <div class="entries hfeed"> 
  • lang/perl/MENTOS/trunk/app/controller/header.mt

    r24495 r27062  
    1 ? my $title = shift 
     1? my ($title) = @_; 
    22? my $blog_url = blog_top_url(); 
    33<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  • lang/perl/MENTOS/trunk/lib/MENTA.pm

    r26396 r27062  
    88require 'MENTA/Context.pm'; 
    99 
    10 our $VERSION = '0.11'; 
     10our $VERSION = '0.13'; 
    1111our $REQ; 
    1212our $CONFIG; 
     
    152152    my ($tmpl, @params) = @_; 
    153153    my $out = MENTA::TemplateLoader::__load($tmpl, @params); 
    154     bless \$out, 'MENTA::Template::RawString'; 
     154    bless \$out, 'Text::MicroTemplate::EncodedString'; 
    155155} 
    156156 
  • lang/perl/MENTOS/trunk/lib/MENTA/TemplateLoader.pm

    r26396 r27062  
    88sub __load { 
    99    my ($path, @params) = @_; 
    10     my $out; 
     10 
    1111    if (__use_cache($path)) { 
    1212        my $tmplfname = MENTA::mt_cache_dir . "/$path.c"; 
     
    1515        die $@ if $@; 
    1616        die "テンプレートキャッシュを読み込めませんでした: ${tmplfname}($!)" unless $tmplcode; 
    17         $out = $tmplcode->(@params); 
     17        return $tmplcode->(@params)->as_string; 
    1818    } else { 
    19         my $code = __compile($path); 
    20         local $@; 
    21         my $tmplcode = eval $code; 
    22         die $@ if $@; 
    23         $out = $tmplcode->(@params); 
    24         __update_cache($path, $code); 
     19        return __compile($path, @params); 
    2520    } 
    26     $out; 
    2721} 
    2822 
    2923sub __compile { 
    30     my ($path) = @_; 
    31     MENTA::Util::require_once('MENTA/Template.pm'); 
    32     my $tmplfname = MENTA::controller_dir() . "/$path"; 
    33     my $src = do { 
    34         open my $fh, '<:utf8', $tmplfname or die "${tmplfname} を読み込み用に開けません: $!"; 
    35         my $s = do { local $/; join '', <$fh> }; 
    36         close $fh; 
    37         $s; 
    38     }; 
    39     my $t = MENTA::Template->new; 
    40     $t->parse($src); 
    41     $t->build(); 
    42     my $code = $t->code(); 
    43     $code = << "EOT"; 
    44 package MENTA::TemplateLoader::Instance; 
    45 use strict; 
    46 use warnings; 
    47 use utf8; 
    48 $code 
    49 EOT 
    50 ; 
    51     $code; 
     24    my ($path, @params) = @_; 
     25    MENTA::Util::require_once('Text/MicroTemplate/File.pm'); 
     26 
     27    my $mtf = Text::MicroTemplate::File->new( 
     28        include_path => [MENTA::controller_dir()], 
     29        package_name => 'MENTA::TemplateLoader::Instance', 
     30    ); 
     31    my $out = $mtf->build_file($path)->(@params)->as_string; 
     32    __update_cache($path, $mtf->code); 
     33    return $out; 
    5234} 
    5335 
    5436sub __update_cache { 
    5537    my ($path, $code) = @_; 
     38 
     39    $code = <<"..."; 
     40package MENTA::TemplateLoader::Instance; 
     41sub { 
     42    local \$SIG{__WARN__} = sub { print STDERR \$_mt->_error(shift, 4, \$_from) }; 
     43    Text::MicroTemplate::encoded_string(( 
     44        $code 
     45    )->(\@_)); 
     46} 
     47... 
     48 
    5649    my $cache_path = MENTA::mt_cache_dir; 
    5750    foreach my $p (split '/', $path) {