cpantestlogs/Mojolicious::Plugin::SQLiteViewerLite_genfailure.log
2017-04-18 14:54:58 -04:00

48758 lines
1.9 MiB
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

perl-blead
==========
cpanm (App::cpanminus) 1.7027 on perl 5.026000 built for x86_64-linux
Work directory is /home/ryan/.cpanm/work/1491883776.11711
You have make /usr/bin/make
You have LWP 6.24
You have /bin/tar: tar (GNU tar) 1.29
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by John Gilmore and Jay Fenlason.
You have /usr/bin/unzip
Searching Mojolicious::Plugin::SQLiteViewerLite on cpanmetadb ...
Unpacking Mojolicious-Plugin-SQLiteViewerLite-0.13.tar.gz
--> Working on Mojolicious::Plugin::SQLiteViewerLite
Fetching http://www.cpan.org/authors/id/K/KI/KIMOTO/Mojolicious-Plugin-SQLiteViewerLite-0.13.tar.gz ... OK
Mojolicious-Plugin-SQLiteViewerLite-0.13/
Mojolicious-Plugin-SQLiteViewerLite-0.13/META.yml
Mojolicious-Plugin-SQLiteViewerLite-0.13/Changes
Mojolicious-Plugin-SQLiteViewerLite-0.13/t/
Mojolicious-Plugin-SQLiteViewerLite-0.13/t/connector.t
Mojolicious-Plugin-SQLiteViewerLite-0.13/t/load.t
Mojolicious-Plugin-SQLiteViewerLite-0.13/t/basic.t
Mojolicious-Plugin-SQLiteViewerLite-0.13/t/test.pl
Mojolicious-Plugin-SQLiteViewerLite-0.13/README
Mojolicious-Plugin-SQLiteViewerLite-0.13/Makefile.PL
Mojolicious-Plugin-SQLiteViewerLite-0.13/MANIFEST
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite.pm
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/public/
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/public/js/
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/public/js/jquery-1.9.1.js
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Command.pm
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/Sqliteviewerlite.pm
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/default.html.ep
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/showprimarykeys.html.ep
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/showcreatetables.html.ep
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/pagenavi.html.ep
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/select.html.ep
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/table.html.ep
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/showselecttables.html.ep
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/shownullallowedcolumns.html.ep
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/tables.html.ep
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/layouts/
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/layouts/sqliteviewerlite/
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/layouts/sqliteviewerlite/common.html.ep
Mojolicious-Plugin-SQLiteViewerLite-0.13/lib/Mojolicious/Plugin/SQLiteViewerLite/Base.pm
Mojolicious-Plugin-SQLiteViewerLite-0.13/META.json
Entering Mojolicious-Plugin-SQLiteViewerLite-0.13
Checking configure dependencies from META.json
Checking if you have ExtUtils::MakeMaker 0 ... Yes (7.24)
Running Makefile.PL
Configuring Mojolicious-Plugin-SQLiteViewerLite-0.13 ... Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Mojolicious::Plugin::SQLiteViewerLite
Writing MYMETA.yml and MYMETA.json
Checking dependencies from MYMETA.json ...
Checking if you have Validator::Custom 0.1426 ... Yes (1.0201)
Checking if you have ExtUtils::MakeMaker 0 ... Yes (7.24)
Checking if you have Data::Page 2.02 ... Yes (2.02)
Checking if you have Mojolicious 2.59 ... Yes (7.29)
Checking if you have Test::More 0 ... Yes (1.302078)
Checking if you have DBIx::Custom 0.25 ... Yes (0.40)
OK
Building and testing Mojolicious-Plugin-SQLiteViewerLite-0.13 ... cp lib/Mojolicious/Plugin/SQLiteViewerLite/public/js/jquery-1.9.1.js blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public/js/jquery-1.9.1.js
cp lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm
cp lib/Mojolicious/Plugin/SQLiteViewerLite/Base.pm blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base.pm
cp lib/Mojolicious/Plugin/SQLiteViewerLite/Sqliteviewerlite.pm blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Sqliteviewerlite.pm
cp lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Command.pm blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Command.pm
cp lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/showselecttables.html.ep blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/showselecttables.html.ep
cp lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm
cp lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/table.html.ep blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/table.html.ep
cp lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/select.html.ep blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/select.html.ep
cp lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/pagenavi.html.ep blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/pagenavi.html.ep
cp lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/default.html.ep blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/default.html.ep
cp lib/Mojolicious/Plugin/SQLiteViewerLite.pm blib/lib/Mojolicious/Plugin/SQLiteViewerLite.pm
cp lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/shownullallowedcolumns.html.ep blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/shownullallowedcolumns.html.ep
cp lib/Mojolicious/Plugin/SQLiteViewerLite/templates/layouts/sqliteviewerlite/common.html.ep blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/layouts/sqliteviewerlite/common.html.ep
cp lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/showprimarykeys.html.ep blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/showprimarykeys.html.ep
cp lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/showcreatetables.html.ep blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/showcreatetables.html.ep
cp lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/tables.html.ep blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates/sqliteviewerlite/tables.html.ep
Manifying 1 pod document
PERL_DL_NONLAZY=1 "/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
# Failed test 'content is similar'
# at t/basic.t line 65.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:34</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:65</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/tables?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;tables&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;utilities&quot; =&gt; [
# {
# &quot;path&quot; =&gt; &quot;showcreatetables&quot;,
# &quot;title&quot; =&gt; &quot;Show create tables&quot;
# },
# {
# &quot;path&quot; =&gt; &quot;showselecttables&quot;,
# &quot;title&quot; =&gt; &quot;Show select tables&quot;
# },
# {
# &quot;path&quot; =&gt; &quot;showprimarykeys&quot;,
# &quot;title&quot; =&gt; &quot;Show primary keys&quot;
# },
# {
# &quot;path&quot; =&gt; &quot;shownullallowedcolumns&quot;,
# &quot;title&quot; =&gt; &quot;Show null allowed columns&quot;
# }
# ]
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:39 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:table1)'
# Failed test 'content is similar'
# at t/basic.t line 65.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:34</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:65</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/tables?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;tables&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;utilities&quot; =&gt; [
# {
# &quot;path&quot; =&gt; &quot;showcreatetables&quot;,
# &quot;title&quot; =&gt; &quot;Show create tables&quot;
# },
# {
# &quot;path&quot; =&gt; &quot;showselecttables&quot;,
# &quot;title&quot; =&gt; &quot;Show select tables&quot;
# },
# {
# &quot;path&quot; =&gt; &quot;showprimarykeys&quot;,
# &quot;title&quot; =&gt; &quot;Show primary keys&quot;
# },
# {
# &quot;path&quot; =&gt; &quot;shownullallowedcolumns&quot;,
# &quot;title&quot; =&gt; &quot;Show null allowed columns&quot;
# }
# ]
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:39 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:table2)'
# Failed test 'content is similar'
# at t/basic.t line 65.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:34</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:65</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/tables?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;tables&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;utilities&quot; =&gt; [
# {
# &quot;path&quot; =&gt; &quot;showcreatetables&quot;,
# &quot;title&quot; =&gt; &quot;Show create tables&quot;
# },
# {
# &quot;path&quot; =&gt; &quot;showselecttables&quot;,
# &quot;title&quot; =&gt; &quot;Show select tables&quot;
# },
# {
# &quot;path&quot; =&gt; &quot;showprimarykeys&quot;,
# &quot;title&quot; =&gt; &quot;Show primary keys&quot;
# },
# {
# &quot;path&quot; =&gt; &quot;shownullallowedcolumns&quot;,
# &quot;title&quot; =&gt; &quot;Show null allowed columns&quot;
# }
# ]
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:39 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:table3)'
# IO::Socket::SSL 1.94+ required for TLS support
# Failed test 'GET https://github.com/kraih/mojo/wiki'
# at t/basic.t line 15.
# IO::Socket::SSL 1.94+ required for TLS support
# Failed test 'GET https://github.com/kraih/mojo'
# at t/basic.t line 15.
# IO::Socket::SSL 1.94+ required for TLS support
# Failed test 'GET https://metacpan.org/release/Mojolicious/'
# at t/basic.t line 15.
# IO::Socket::SSL 1.94+ required for TLS support
# Failed test 'GET https://groups.google.com/group/mojolicious'
# at t/basic.t line 15.
# IO::Socket::SSL 1.94+ required for TLS support
# Failed test 'GET https://twitter.com/kraih'
# at t/basic.t line 15.
# Failed test 'content is similar'
# at t/basic.t line 74.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select sql
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;type&#39;) and name = &#39;table1&#39;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 81.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">76</td>
# <td class="value wide">
# <pre><code class="prettyprint">select sql</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">77</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">78</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;type&#39;) and name = &#39;$table&#39;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">79</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">80</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">81</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $create_table = $self-&gt;dbi-&gt;execute($sql)-&gt;value;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">82</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">83</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Format</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">84</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $create_table =~ s/\(/(\n /;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">85</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $create_table =~ s/, /,\n /g;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">86</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $create_table =~ s/\)$/\n)/;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:81</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:62</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:74</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/table?database=main&amp;table=table1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;table&quot; =&gt; &quot;table1&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;table&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:39 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:show create table)'
# Failed test 'content is similar'
# at t/basic.t line 74.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select sql
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;type&#39;) and name = &#39;table1&#39;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 81.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">76</td>
# <td class="value wide">
# <pre><code class="prettyprint">select sql</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">77</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">78</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;type&#39;) and name = &#39;$table&#39;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">79</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">80</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">81</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $create_table = $self-&gt;dbi-&gt;execute($sql)-&gt;value;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">82</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">83</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Format</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">84</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $create_table =~ s/\(/(\n /;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">85</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $create_table =~ s/, /,\n /g;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">86</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $create_table =~ s/\)$/\n)/;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:81</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:62</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:74</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/table?database=main&amp;table=table1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;table&quot; =&gt; &quot;table1&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;table&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:39 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:column1_1)'
# Failed test 'content is similar'
# at t/basic.t line 74.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select sql
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;type&#39;) and name = &#39;table1&#39;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 81.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">76</td>
# <td class="value wide">
# <pre><code class="prettyprint">select sql</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">77</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">78</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;type&#39;) and name = &#39;$table&#39;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">79</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">80</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">81</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $create_table = $self-&gt;dbi-&gt;execute($sql)-&gt;value;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">82</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">83</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Format</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">84</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $create_table =~ s/\(/(\n /;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">85</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $create_table =~ s/, /,\n /g;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">86</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $create_table =~ s/\)$/\n)/;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:81</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:62</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:74</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/table?database=main&amp;table=table1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;table&quot; =&gt; &quot;table1&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;table&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:39 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:column1_2)'
# IO::Socket::SSL 1.94+ required for TLS support
# Failed test 'GET https://github.com/kraih/mojo/wiki'
# at t/basic.t line 15.
# IO::Socket::SSL 1.94+ required for TLS support
# Failed test 'GET https://github.com/kraih/mojo'
# at t/basic.t line 15.
# IO::Socket::SSL 1.94+ required for TLS support
# Failed test 'GET https://metacpan.org/release/Mojolicious/'
# at t/basic.t line 15.
# IO::Socket::SSL 1.94+ required for TLS support
# Failed test 'GET https://groups.google.com/group/mojolicious'
# at t/basic.t line 15.
# IO::Socket::SSL 1.94+ required for TLS support
# Failed test 'GET https://twitter.com/kraih'
# at t/basic.t line 15.
# Failed test 'content is similar'
# at t/basic.t line 81.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table1 limit 0, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:81</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;table&quot; =&gt; &quot;table1&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:40 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:select\ \*\ from\ \<i\>table1\<\/i\>)'
# Failed test 'content is similar'
# at t/basic.t line 81.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table1 limit 0, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:81</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;table&quot; =&gt; &quot;table1&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:40 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:column1_1)'
# Failed test 'content is similar'
# at t/basic.t line 81.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table1 limit 0, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:81</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;table&quot; =&gt; &quot;table1&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:40 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:column1_2)'
# Failed test 'content is similar'
# at t/basic.t line 91.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table1 where ( column1_2 like ? ) limit 0, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:91</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table1&amp;condition_column=column1_2&amp;condition_value=4</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;condition_column&quot; =&gt; &quot;column1_2&quot;,
# &quot;condition_value&quot; =&gt; 4,
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;table&quot; =&gt; &quot;table1&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:40 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:select\ \*\ from\ \<i\>table1\<\/i\>)'
# Failed test 'content is similar'
# at t/basic.t line 91.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table1 where ( column1_2 like ? ) limit 0, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:91</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table1&amp;condition_column=column1_2&amp;condition_value=4</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;condition_column&quot; =&gt; &quot;column1_2&quot;,
# &quot;condition_value&quot; =&gt; 4,
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;table&quot; =&gt; &quot;table1&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:40 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:column1_1)'
# Failed test 'content is similar'
# at t/basic.t line 91.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table1 where ( column1_2 like ? ) limit 0, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:91</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table1&amp;condition_column=column1_2&amp;condition_value=4</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;condition_column&quot; =&gt; &quot;column1_2&quot;,
# &quot;condition_value&quot; =&gt; 4,
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;table&quot; =&gt; &quot;table1&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:40 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:\b3\b)'
# Failed test 'content is similar'
# at t/basic.t line 100.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:86</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:100</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/showcreatetables?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;showcreatetables&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:41 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:Create tables)'
# Failed test 'content is similar'
# at t/basic.t line 100.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:86</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:100</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/showcreatetables?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;showcreatetables&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:41 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:table1)'
# Failed test 'content is similar'
# at t/basic.t line 100.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:86</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:100</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/showcreatetables?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;showcreatetables&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:41 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:column1_1)'
# Failed test 'content is similar'
# at t/basic.t line 100.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:86</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:100</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/showcreatetables?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;showcreatetables&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:41 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:column1_2)'
# Failed test 'content is similar'
# at t/basic.t line 100.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:86</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:100</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/showcreatetables?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;showcreatetables&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:41 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:table2)'
# Failed test 'content is similar'
# at t/basic.t line 100.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:86</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:100</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/showcreatetables?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;showcreatetables&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:41 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:column2_1)'
# Failed test 'content is similar'
# at t/basic.t line 100.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:86</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:100</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/showcreatetables?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;showcreatetables&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:41 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:column2_2)'
# Failed test 'content is similar'
# at t/basic.t line 100.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:86</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:100</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/showcreatetables?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;showcreatetables&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:41 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:table3)'
# Failed test 'content is similar'
# at t/basic.t line 111.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:115</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:111</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/showselecttables?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;showselecttables&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:44 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:Select tables)'
# Failed test 'content is similar'
# at t/basic.t line 111.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:115</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:111</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/showselecttables?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;showselecttables&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:44 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:table1)'
# Failed test 'content is similar'
# at t/basic.t line 111.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:115</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:111</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/showselecttables?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;showselecttables&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:44 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:\/select\?)'
# Failed test 'content is similar'
# at t/basic.t line 111.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:115</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:111</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/showselecttables?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;showselecttables&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:44 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:table2)'
# Failed test 'content is similar'
# at t/basic.t line 111.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:115</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:111</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/showselecttables?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;showselecttables&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:44 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:table3)'
# Failed test 'content is similar'
# at t/basic.t line 119.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Command.pm:13</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:140</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:119</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/showprimarykeys?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;showprimarykeys&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:46 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:Primary keys)'
# Failed test 'content is similar'
# at t/basic.t line 119.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Command.pm:13</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:140</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:119</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/showprimarykeys?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;showprimarykeys&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:46 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:table1)'
# Failed test 'content is similar'
# at t/basic.t line 119.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Command.pm:13</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:140</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:119</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/showprimarykeys?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;showprimarykeys&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:46 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:\(column1_1\))'
# Failed test 'content is similar'
# at t/basic.t line 119.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Command.pm:13</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:140</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:119</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/showprimarykeys?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;showprimarykeys&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:46 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:table2)'
# Failed test 'content is similar'
# at t/basic.t line 119.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Command.pm:13</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:140</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:119</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/showprimarykeys?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;showprimarykeys&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:46 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:table3)'
# Failed test 'content is similar'
# at t/basic.t line 128.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Command.pm:26</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:165</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:128</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/shownullallowedcolumns?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;shownullallowedcolumns&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:48 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:Null allowed column)'
# Failed test 'content is similar'
# at t/basic.t line 128.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Command.pm:26</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:165</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:128</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/shownullallowedcolumns?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;shownullallowedcolumns&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:48 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:table1)'
# Failed test 'content is similar'
# at t/basic.t line 128.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Command.pm:26</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:165</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:128</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/shownullallowedcolumns?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;shownullallowedcolumns&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:48 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:\(column1_2\))'
# Failed test 'content is similar'
# at t/basic.t line 128.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Command.pm:26</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:165</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:128</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/shownullallowedcolumns?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;shownullallowedcolumns&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:48 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:table2)'
# Failed test 'content is similar'
# at t/basic.t line 128.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select distinct(name)
# from main.sqlite_master
# where type in (&#39;table&#39;, &#39;view&#39;)
# order by name;
#
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 67.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">62</td>
# <td class="value wide">
# <pre><code class="prettyprint"> from $database.sqlite_master</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">63</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where type in (&#39;table&#39;, &#39;view&#39;)</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">64</td>
# <td class="value wide">
# <pre><code class="prettyprint"> order by name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">65</td>
# <td class="value wide">
# <pre><code class="prettyprint">EOS</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">66</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">67</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $tables = $self-&gt;dbi-&gt;execute($sql)-&gt;values;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">68</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">69</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return $tables;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">70</td>
# <td class="value wide">
# <pre><code class="prettyprint">}</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">71</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">72</td>
# <td class="value wide">
# <pre><code class="prettyprint">sub show_create_table {</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Command.pm:26</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:165</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:128</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/shownullallowedcolumns?database=main</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;shownullallowedcolumns&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43969</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:48 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:table3)'
Use of uninitialized value $create_table in substitution (s///) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 84.
Use of uninitialized value $create_table in substitution (s///) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 85.
Use of uninitialized value $create_table in substitution (s///) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 86.
Use of uninitialized value $create_table in substitution (s///) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 84.
Use of uninitialized value $create_table in substitution (s///) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 85.
Use of uninitialized value $create_table in substitution (s///) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 86.
Use of uninitialized value $create_table in substitution (s///) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 84.
Use of uninitialized value $create_table in substitution (s///) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 85.
Use of uninitialized value $create_table in substitution (s///) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 86.
# Failed test 'content is similar'
# at t/basic.t line 209.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 0, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:209</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:50 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:select\ \*\ from\ \<i\>table_page\<\/i\>)'
# Failed test 'content is similar'
# at t/basic.t line 209.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 0, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:209</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:50 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:1 to 100)'
# Failed test 'content is similar'
# at t/basic.t line 209.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 0, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:209</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:50 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:3510)'
# Failed test 'content is not similar'
# at t/basic.t line 209.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 0, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:209</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:50 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# matches '(?^:21)'
# Failed test 'content is similar'
# at t/basic.t line 235.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 1000, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:235</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page&amp;page=11</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;page&quot; =&gt; 11,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:51 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:select\ \*\ from\ \<i\>table_page\<\/i\>)'
# Failed test 'content is similar'
# at t/basic.t line 235.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 1000, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:235</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page&amp;page=11</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;page&quot; =&gt; 11,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:51 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:3510)'
# Failed test 'content is not similar'
# at t/basic.t line 235.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 1000, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:235</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page&amp;page=11</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;page&quot; =&gt; 11,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:51 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# matches '(?^:21)'
# Failed test 'content is similar'
# at t/basic.t line 260.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 1100, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:260</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page&amp;page=12</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;page&quot; =&gt; 12,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:52 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:select\ \*\ from\ \<i\>table_page\<\/i\>)'
# Failed test 'content is similar'
# at t/basic.t line 260.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 1100, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:260</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page&amp;page=12</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;page&quot; =&gt; 12,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:52 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:3510)'
# Failed test 'content is not similar'
# at t/basic.t line 260.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 1100, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:260</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page&amp;page=12</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;page&quot; =&gt; 12,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:52 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# matches '(?^:22)'
# Failed test 'content is similar'
# at t/basic.t line 285.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 3500, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:285</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page&amp;page=36</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;page&quot; =&gt; 36,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:53 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:select\ \*\ from\ \<i\>table_page\<\/i\>)'
# Failed test 'content is similar'
# at t/basic.t line 285.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 3500, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:285</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page&amp;page=36</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;page&quot; =&gt; 36,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:53 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:3501 to 3510)'
# Failed test 'content is similar'
# at t/basic.t line 285.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 3500, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:285</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page&amp;page=36</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;page&quot; =&gt; 36,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:53 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:3510)'
# Failed test 'content is similar'
# at t/basic.t line 285.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 3500, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:285</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page&amp;page=36</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;page&quot; =&gt; 36,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:53 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:31)'
# Failed test 'content is similar'
# at t/basic.t line 285.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 3500, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:285</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page&amp;page=36</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;page&quot; =&gt; 36,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:53 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:34)'
# Failed test 'content is similar'
# at t/basic.t line 314.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 0, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:314</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:55 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:select\ \*\ from\ \<i\>table_page\<\/i\>)'
# Failed test 'content is similar'
# at t/basic.t line 314.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 0, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:314</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:55 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:800)'
# Failed test 'content is similar'
# at t/basic.t line 330.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 0, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:330</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:56 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:select\ \*\ from\ \<i\>table_page\<\/i\>)'
# Failed test 'content is similar'
# at t/basic.t line 330.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 0, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:330</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:56 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:801)'
# Failed test 'content is similar'
# at t/basic.t line 330.
Wide character in print at /home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test2/Formatter/TAP.pm line 112.
# '<!DOCTYPE html>
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 1em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# text-align: right;
# vertical-align: middle;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-content {
# margin: 0 auto;
# max-width: 1000px;
# }
# #mojobar-logo {
# float: left;
# margin-left: 5em;
# padding-top: 4px;
# }
# #mojobar-links {
# display:table-cell;
# float: right;
# height: 60px;
# margin-right: 5em;
# margin-top: 0.8em;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <div id="mojobar-content">
# <div id="mojobar-logo">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-white.png">
# </a> </div>
# <div id="mojobar-links">
# <a href="http://mojolicious.org/perldoc">Documentation</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="http://blog.mojolicious.org">Blog</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer (handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">connector must have dbh() method (DBIx::Custom::dbh). Following SQL is executed.
# select * from main.table_page limit 0, 100
# (DBIx::Custom::execute) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm line 219.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">214</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $page = $vresult-&gt;data-&gt;{page};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">215</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $count = 100;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">216</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $offset = ($page - 1) * $count;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">217</td>
# <td class="value wide">
# <pre><code class="prettyprint"> </code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">218</td>
# <td class="value wide">
# <pre><code class="prettyprint"> # Get null allowed columns</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">219</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $result = $plugin-&gt;dbi-&gt;select(</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">220</td>
# <td class="value wide">
# <pre><code class="prettyprint"> table =&gt; &quot;$database.$table&quot;,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">221</td>
# <td class="value wide">
# <pre><code class="prettyprint"> where =&gt; $where,</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">222</td>
# <td class="value wide">
# <pre><code class="prettyprint"> append =&gt; &quot;limit $offset, $count&quot;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">223</td>
# <td class="value wide">
# <pre><code class="prettyprint"> );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">224</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $header = $result-&gt;header;</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:1285</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:339</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/DBIx/Custom.pm:716</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Base/Sqliteviewerlite.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:87</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:166</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:36</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Routes.pm:44</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:129</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:139</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:201</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojolicious.pm:145</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:107</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:225</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Server/Daemon.pm:206</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Mojo/UserAgent.pm:59</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:380</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:327</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/Test/Mojo.pm:120</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:330</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/sqliteviewerlite/select?database=main&amp;table=table_page</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{
# &quot;database&quot; =&gt; &quot;main&quot;,
# &quot;table&quot; =&gt; &quot;table_page&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# &quot;action&quot; =&gt; &quot;select&quot;,
# &quot;controller&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;main_title&quot; =&gt; &quot;SQLite Viewer Lite&quot;,
# &quot;namespace&quot; =&gt; &quot;Mojolicious::Plugin::SQLiteViewerLite&quot;,
# &quot;plugin&quot; =&gt; bless( {
# &quot;command&quot; =&gt; bless( {
# &quot;dbi&quot; =&gt; bless( {
# &quot;connector&quot; =&gt; 1,
# &quot;dbh&quot; =&gt; bless( {}, &#39;DBI::db&#39; ),
# &quot;safety_character&quot; =&gt; &quot;a-zA-Z0-9_&quot;
# }, &#39;DBIx::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite::Command&#39; ),
# &quot;dbi&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;command&quot;}{&quot;dbi&quot;},
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;,
# &quot;validator&quot; =&gt; bless( {
# &quot;checks&quot; =&gt; {
# &quot;ascii_graphic&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;number&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;constraints&quot; =&gt; {
# &quot;any&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;ascii&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;between&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;date_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;datetime_to_timepiece&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;decimal&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;duplication&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;equal_to&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;greater_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;http_url&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;in_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;int&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;length&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;less_than&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;merge&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_defined&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;not_space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;regex&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;safety_name&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;selected_at_least&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;shift&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;space&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;string&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;to_array_remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_collapse&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_lead&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim_uni_trail&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;uint&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;error_stock&quot; =&gt; 1,
# &quot;filters&quot; =&gt; {
# &quot;remove_blank&quot; =&gt; sub { &quot;DUMMY&quot; },
# &quot;trim&quot; =&gt; sub { &quot;DUMMY&quot; }
# },
# &quot;rule_obj&quot; =&gt; bless( {
# &quot;rule&quot; =&gt; [
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;database&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;default&quot; =&gt; &quot;&quot;,
# &quot;key&quot; =&gt; &quot;table&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; &quot;&quot;
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;uint&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;uint&quot;
# }
# ],
# &quot;default&quot; =&gt; 1,
# &quot;key&quot; =&gt; &quot;page&quot;,
# &quot;option&quot; =&gt; {
# &quot;default&quot; =&gt; 1
# }
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;safety_name&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;safety_name&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_column&quot;,
# &quot;option&quot; =&gt; {}
# },
# {
# &quot;constraints&quot; =&gt; [
# {
# &quot;args&quot; =&gt; [],
# &quot;funcs&quot; =&gt; [
# $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}{&quot;constraints&quot;}{&quot;not_blank&quot;}
# ],
# &quot;message&quot; =&gt; undef,
# &quot;original_constraint&quot; =&gt; &quot;not_blank&quot;
# }
# ],
# &quot;key&quot; =&gt; &quot;condition_value&quot;,
# &quot;option&quot; =&gt; {}
# }
# ],
# &quot;validator&quot; =&gt; $VAR1-&gt;{&quot;plugin&quot;}{&quot;validator&quot;}
# }, &#39;Validator::Custom::Rule&#39; ),
# &quot;shared_rule&quot; =&gt; []
# }, &#39;Validator::Custom&#39; )
# }, &#39;Mojolicious::Plugin::SQLiteViewerLite&#39; ),
# &quot;prefix&quot; =&gt; &quot;sqliteviewerlite&quot;
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:46613</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.26.0 (linux)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.29 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/templates&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/templates&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# bless( do{\(my $o = &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/t/public&quot;)}, &#39;Mojo::Home&#39; ),
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/public&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# &quot;Test1&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib&quot;,
# &quot;/home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/arch&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/site_perl/5.26.0&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0/x86_64-linux&quot;,
# &quot;/home/ryan/perl5/perlbrew/perls/perl-blead/lib/5.26.0&quot;,
# &quot;.&quot;
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl5.26.0</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>11778</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Tue Apr 11 00:09:56 2017</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="http://mojolicious.org">
# <img alt="Mojolicious logo" src="/mojo/logo-black.png">
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:\b9\b)'
# Looks like you failed 65 tests of 247.
t/basic.t ......
Dubious, test returned 65 (wstat 16640, 0x4100)
Failed 65/247 subtests
Use of uninitialized value $create_table in substitution (s///) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 84.
Use of uninitialized value $create_table in substitution (s///) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 85.
Use of uninitialized value $create_table in substitution (s///) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 86.
Use of uninitialized value $create_table in substitution (s///) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 84.
Use of uninitialized value $create_table in substitution (s///) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 85.
Use of uninitialized value $create_table in substitution (s///) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 86.
Use of uninitialized value $create_table in substitution (s///) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 84.
Use of uninitialized value $create_table in substitution (s///) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 85.
Use of uninitialized value $create_table in substitution (s///) at /home/ryan/.cpanm/work/1491883776.11711/Mojolicious-Plugin-SQLiteViewerLite-0.13/blib/lib/Mojolicious/Plugin/SQLiteViewerLite/Command.pm line 86.
t/connector.t .. ok
t/load.t ....... ok
Test Summary Report
-------------------
t/basic.t (Wstat: 16640 Tests: 247 Failed: 65)
Failed tests: 4-6, 12-15, 17, 20-22, 26-29, 31, 34-36
42-43, 46, 49-56, 58-62, 64-66, 68-69, 71-74
77, 127-129, 150, 152-153, 174, 176-177
198, 200-202, 218, 221, 225-226, 237-238
247
Non-zero exit status: 65
Files=3, Tests=265, 21 wallclock secs ( 0.06 usr 0.00 sys + 2.19 cusr 0.10 csys = 2.35 CPU)
Result: FAIL
Failed 1/3 test programs. 65/265 subtests failed.
Makefile:868: recipe for target 'test_dynamic' failed
make: *** [test_dynamic] Error 255
! Installing Mojolicious::Plugin::SQLiteViewerLite failed. See /home/ryan/.cpanm/work/1491883776.11711/build.log for details. Retry with --force to force install it.
FAIL
Command [cpanm --reinstall --verbose Mojolicious::Plugin::SQLiteViewerLite] terminated with exit code 1 ($? = 256) under the following perl environment:
Command terminated with non-zero status.
Current perl:
Name: perl-blead
Path: /home/ryan/perl5/perlbrew/perls/perl-blead/bin/perl
Config: -de -Dprefix=/home/ryan/perl5/perlbrew/perls/perl-blead -Dusedevel -Aeval:scriptdir=/home/ryan/perl5/perlbrew/perls/perl-blead/bin
Compiled at: Mar 30 2017 03:10:09
perlbrew:
version: 0.77
ENV:
PERLBREW_ROOT: /home/ryan/perl5/perlbrew
PERLBREW_HOME: /home/ryan/.perlbrew
PERLBREW_PATH: /home/ryan/perl5/perlbrew/bin:/home/ryan/perl5/perlbrew/perls/perl-blead/bin
PERLBREW_MANPATH: /home/ryan/perl5/perlbrew/perls/perl-blead/man