2012/09/22

Released Text::Xslate::Bridge::FillInForm::Lite

追記 2012-10-03

Don't use this module. You should use Text::Xslate(ver 1.5018 or higher) and html_builder_module option. See Text::Xslate::Bridge::FillInForm::Lite for detail.

Tex::Xslate側でhtml_builderをかませるhtml_builder_moduleオプションが追加されたので,このモジュールはdeprecatedになりました. 詳しくはText::Xslate::Bridge::FillInForm::Liteをご確認ください.

これから以下のようにfillinformをかけます


    use Text::Xslate;
    my $txt = Text::Xslate->new(
        html_builder_module => ['HTML::FillInForm::Lite' => ['fillinform']]
    );

Dancerのconfigでは以下のように指定してください

    template: "xslate"
    engines: 
      xslate: 
        html_builder_module:
          - "HTML::FillInForm::Lite"
          - ["fillinform"]

ご対応いただいたgfxさん,patchを書いていただいたtokuhiromさん,ありがとうございました!

追記ここまで

LINK

INSTALL

$ cpanm Text::Xslate::Bridge::FillInForm::Lite

HOW TO USE


    use Text::Xslate;
    my $txt = Text::Xslate->new(
        module => ['Text::Xslate::Bridge::FillInForm::Lite']
    );

    my $output = $tx->render_string(<<'T', { q => { foo => 'bar' } } );
    : block form | fillinform($q) -> {
    
: } T

MOTIVATION

  1. 毎回,Text::Xslate::Manual::Cookbookからcodeをcopyしてた
  2. Dancer::Template::XslateのようにText::Xslate#newにfunctionを渡せない時がある

Dancerのconfigはyaml形式のためcodeを直接書けない.moduleオプションは文字列で渡せるので問題ない

    template: "xslate"
    engines: 
      xslate: 
        module:
          - "Text::Xslate::Bridge::FillInForm::Lite"

一応,以下のように書けば対応はできるがめんどくさい


    package MyApp; 
    use Dancer ':syntax';
    use Text::Xslate qw(html_builder);
    use HTML::FillInForm::Lite qw(fillinform);

    our $VERSION = '0.1';

    set 'engines'  => {
        'xslate' => {
            function => {
                'fillinform' => html_builder(\&fillinform)
            }
        }
    };

    get '/' => sub {
        template 'index', { q => { foo => 'bar' } };
    };

    true;

追記 2012-09-24

Text::Xslateとしてはラッパー的なpluginが溢れるのはよくないよねという方針だったらしいので、tokuhiromさんが汎用的に使えそうな案をいくつか出してくれた。
Re: Text::Xslate::Bridge::FillInForm::Lite

3番目のText::Xslate#newにhtml_builderオプションを追加する方針が良さそうに思う。
上記patchが取り込まれるかはまだわからないが、取り込まれた場合はこのmoduleはdeprecatedにする予定

1 件のコメント:

  1. Some frequent applications carry out advertisement targeting based mostly on user-related content find a way to} enhance report on exercise efficiency and avoid displaying commercials that users Heated Blankets have already seen. All sheet steel components are built on-demand and with lower setup prices in comparison with} CNC Machining. Depending in your wants, order as little as a single prototype up to as} 10,000 production components. Rapid molds, Production tooling, Custom Molded Prototypes and Production Parts with Fast Lead Times. Apart from CAE technology, many producers have adopted advanced applied sciences corresponding to robotization and automation within the plastics business. The preliminary molding machine was based mostly on a reasonably simple mechanism.

    返信削除