package Ark::Plugin::XslateSQLMark;

use strict;
use warnings;
use utf8;

use Ark::Plugin;

sub BUILD {
    my $self = shift;

    my $xslate = $self->view('Xslate');

    $xslate->meta->make_mutable;
    Ark::View::Xslate::SQLMark->meta->apply( $xslate );
    $xslate->meta->make_immutable;
}

1;

package Ark::View::Xslate::SQLMark;

use Any::Moose 'Role';
use DBIx::Tracer;

around render => sub {
    my $orig = shift;
    my $self = shift;

    my $tracer = DBIx::Tracer->new(sub {
        my %args = @_;
        return unless Text::Xslate->current_engine;
        Text::Xslate->print(
            Text::Xslate::mark_raw(
                sprintf '<span style="color:red;" class="__query__">!<span style="display:none;">%s</span></span>', $args{sql},
            )
        );
    });

    $self->$orig(@_);
};

no Any::Moose 'Role';

1;

template で query でちゃうのしょうがないけど、どこの要素でどんくらい出るか知りたいな〜みたいな時、__query__ の数とかで可視化出来そう。

$("path to element .__query__")

とかで絞り込めたらいいのだろうか ?

とりあえず赤で ! 出してみてもわりとわかりやすいかなぁと思った。

参考