App-mojopaste

 view release on metacpan or  search on metacpan

lib/App/mojopaste.pm  view on Meta::CPAN

  $ PASTE_DIR=/path/to/paste/dir mojopaste daemon --listen http://*:8080

=item * Using the UNIX optimized, preforking hypnotoad web server

  $ MOJO_CONFIG=/path/to/mojopaste.conf hypnotoad $(which mojopaste)

Example mojopaste.conf:

  {
    brand_link    => "index",
    brand_logo    => "/images/logo.png",
    brand_text    => "Mojopaste",
    paste_dir     => "/path/to/paste/dir",
    enable_charts => 1, # default is 0
    hypnotoad     => {
      listen => ["http://*:8080"],
    },
  }

"enable_charts" is for adding a button which can make a chart of the input
data using L<morris.js|http://morrisjs.github.io/morris.js>

script/mojopaste  view on Meta::CPAN

use Mojolicious::Lite;

use Mojo::JSON 'true';

plugin 'config' if $ENV{MOJO_CONFIG};
app->config->{backend}   ||= $ENV{PASTE_BACKEND} || 'File';
app->config->{paste_dir} ||= $ENV{PASTE_DIR}     || 'paste';

app->defaults(
  brand_link    => app->config('brand_link') || $ENV{PASTE_BRAND_LINK} || 'index',
  brand_logo    => app->config('brand_logo') // $ENV{PASTE_BRAND_LOGO} // '/images/logo.png',
  brand_name    => app->config('brand_name') // $ENV{PASTE_BRAND_NAME} // 'Mojopaste',
  enable_charts => app->config('enable_charts') // $ENV{PASTE_ENABLE_CHARTS},
  embed         => 'description,graph,heading,nav',
  error         => '',
  paste         => '',
  placeholder   => 'Enter your text here and then press the "Save" button above.',
  title         => 'Mojopaste',
);

my $backend = app->config('backend');

script/mojopaste  view on Meta::CPAN

      %= link_to 'Raw', url_for('show', paste_id => $paste_id, format => 'txt'), class => 'btn'
      %= link_to 'Graph', url_for('chart'), class => 'btn' if $enable_charts
    % }

  % } else {
    <button class="btn save" tabindex="2">Save</button>
  % }
</nav>
@@ show.txt.ep
Paste not found: <%= $paste_id %>
@@ images/logo.png (base64)
iVBORw0KGgoAAAANSUhEUgAAADkAAAA8CAYAAADc1RI2AAAABGdBTUEAALGPC/xhBQAAACBjSFJN
AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAA
B3RJTUUH4wgIFSMADYS2WAAADbZJREFUaN7lmmuMHWd5x3/PzJw5t7141xvba8frux3HcVnZLSSB
kATRC6WlQi1VpUq0DfCh7YfSVGlBKW1EhRqpQuonhEQviEtRCaQUgcoHhGirEERCUzfGJDZ2HNvZ
zdq73t2zu+c68z79MLd3zjnePWu7KFInis/szHt5/s/9ed6B/weX3OoC79WPIkAbQ4jZ1FwHFygQ
0uRb8jdvTJC/po/hUcLFd5o0qy1apY4GG28q0daC23HYsuL9wfNheUHAFb76padvO0jvpmcqrLDM
Po7x2vnndtT/6dIfS1vvLVfK2jtU0zk5sC0NZK6z5q84Xy/g/2NIuDGHfqoggXuWf55XR1+qtp9d
+AVd7PzusTfdPXHgwD5EIjyqChpjU00BK4CBsNPhlZcv8voPr9wTdjrPhcJ/v+FAmu83aT2wONG5
XH9wZHR44sjRQ+wc20HFqyAoihBBlAikWH8DjaBBZahC4/LKVOOVlfe0neCNBvL3WeG70BiqaGDG
h4ar+L5PtVBl1B+JQeVnpDjjFwJUyxWGh4ecOrXtHff/RFtvBeSnMP40yDs8HFyRSFpza1eZry+k

t/branding.t  view on Meta::CPAN

use lib '.';
use t::Helper;

my $t = t::Helper->t;
$t->get_ok('/')->status_is(200)->text_is('title', 'Create new paste - Mojopaste')
  ->element_exists('nav .brand[href="/"]')->element_exists('nav .brand img[src="/images/logo.png"]')
  ->text_is('nav .brand span', 'Mojopaste');

$t->app->defaults(brand_link => 'https://example.com');
$t->app->defaults(brand_logo => 'https://example.com/logo/mybrand.png');
$t->app->defaults(brand_name => 'Example');
$t->get_ok('/')->status_is(200)->text_is('title', 'Create new paste - Example')
  ->element_exists('nav .brand[href="https://example.com"]')
  ->element_exists('nav .brand img[src="https://example.com/logo/mybrand.png"]')->text_is('nav .brand span', 'Example');

$t->app->defaults(brand_link => 'https://example.com');
$t->app->defaults(brand_logo => '');
$t->app->defaults(brand_name => '');
$t->get_ok('/')->status_is(200)->text_is('title', 'Create new paste - Mojopaste')
  ->element_exists('nav .brand[href="https://example.com"]')->element_exists_not('nav .brand img')
  ->element_exists_not('nav .brand span');

done_testing;



( run in 2.188 seconds using v1.01-cache-2.11-cpan-788537b7465 )