/DBIx-Mojo-Template

Render SQL statements templates by Mojo::Template

Primary LanguagePerl

Доброго в�ем

DBIx::Mojo::Template

¡ ¡ ¡ ALL GLORY TO GLORIA ! ! !

NAME

DBIx::Mojo::Template - Render SQL statements by Mojo::Template

VERSION

0.061

SYNOPSIS

use DBIx::Mojo::Template;

my $dict = DBIx::Mojo::Template->new(__PACKAGE__,mt=>{tag_start=>'%{', tag_end=>'%}',});

my $sql = $dict->{'foo'}->render(table=>'foo', where=> 'where id=?');
# or same
my $sql = $dict->render('bar', where=> 'where id=?');

__DATA__
@@ foo?cache=1
%# my foo statement with prepare_cached (model sth)
select *
from {% $table %}
{% $where %}

SUBROUTINES/METHODS

new

my $dict = DBIx::Mojo::Template->new('Foo::Bar', vars=>{...}, mt=>{...})

where arguments:

  • $pkg (string)

    Package name, where __DATA__ section SQL dictionary. Package must be loaded (use/require) before!

  • vars (hashref)

    Hashref of this dict templates variables. Vars can be merged when render - see #render.

  • mt (hashref)

    For Mojo::Template object attributes. See Mojo::Template#ATTRIBUTES.

    mt=>{ line_start=>'+', }

    Defaults <mt> attrs:

    mt=> {vars => 1, prepend=>'no strict qw(vars); no warnings qw(uninitialized);',}
  • data (arrayref) - optional

    Define extra data files for dictionary. Absolute or relative to path of the module $pkg file point.

singleton

Merge ditcs packages to one. Arguments same as #new.

DBIx::Mojo::Template->singleton('Foo');
my $dict = DBIx::Mojo::Template->singleton('Bar');

render

Render template dict key.

my $sql = $dict->render($key, var1=>..., var2 => ...,);

Each dict item is a object DBIx::Mojo::Statement with one method render:

my $sql = $dict->{'key foo'}->render(bar=>'baz', ...);

data

Same as #new but returns unblessed hashref dict.

AUTHOR

Михаил Че (Mikhail Che), <mche[-at-]cpan.org>

BUGS / CONTRIBUTING

Please report any bugs or feature requests at https://github.com/mche/DBIx-Mojo-Template/issues. Pull requests also welcome.

LICENSE AND COPYRIGHT

Copyright 2016 Михаил Че (Mikhail Che).

This module is free software; you can redistribute it and/or modify it under the term of the Perl itself.