Skip to content

Instantly share code, notes, and snippets.

View jberger's full-sized avatar

Joel Berger jberger

View GitHub Profile
@jberger
jberger / gist:4261503
Created December 11, 2012 19:49
Profanity Filter
#!/usr/bin/env perl
use strict;
use warnings;
sub regex_from_list {
my $re = join '|', map { quotemeta } @_;
return qr/\b(?:$re)\b/i;
}
@jberger
jberger / humane.pl
Created December 26, 2012 14:54
Mojolicious::Plugin::Humane example
#!/usr/bin/env perl
use Mojolicious::Lite;
plugin 'Humane';
get '/' => sub {
my $self = shift;
$self->humane_stash( 'Welcome Back!' );
$self->render( 'simple' );
@jberger
jberger / podtest.pl
Created January 4, 2013 16:35
Pod scan dumper
use strict;
use warnings;
use PDL::Doc;
use DDP output => shift;
my $parser = PDL::Doc->new;
$parser->scan(shift);
p $parser;
@jberger
jberger / anchors.pl
Created January 6, 2013 23:42
Find all anchor (`<a>`) targets using only core Perl
use strict;
use warnings;
use Text::Balanced qw/extract_bracketed extract_delimited extract_multiple/;
sub find_anchor_targets {
my $html = shift;
my @tags = extract_multiple(
$html,
@jberger
jberger / helper.pl
Created January 12, 2013 20:06
helper for mojolicious and bootstrap's control group
$app->helper( 'control_group' => sub {
my $self = shift;
my $contents = pop;
my $label = xml_escape pop if @_;
my $for = xml_escape pop if @_;
my $return .= '<div class="control-group">';
if ($label) {
$return .= '<label class="control-label"';
@jberger
jberger / MyApp.pm
Created January 16, 2013 17:39
On Plugins ... Part 1
package MyApp;
use Mojo::Base 'Mojolicious';
sub startup {
my $self = shift;
$self->helper( random => sub { rand } );
$self->routes->any( '/' => sub {
my $c = shift;
$c->render( text => $c->random );
});
@jberger
jberger / MyApp.pm
Created January 16, 2013 18:05
On Plugins ... Part 3
# This does the same as Part 2 without doing the automagic loading.
# DONT DO THIS REGULARLY, because part of the system might change,
# the ->plugin loading abstracts you from that
package MyApp;
use Mojo::Base 'Mojolicious';
use Mojolicious::Plugin::MyPlugin;
sub startup {
my $self = shift;
my $plugin = Mojolicious::Plugin::MyPlugin->new;
@jberger
jberger / dumper_do.pl
Created January 21, 2013 16:36
Data::Dumper + do for simple data storage
use Data::Dumper;
sub write_data {
my ($file, $data) = @_;
open my $fh, '>', $file or die "Couldn't open $file: $!";
print $fh Dumper $data;
}
sub read_data {
my ($file) = @_;
#!/usr/bin/env perl
use strict;
use warnings;
#############################
# Getting the Forecast Data #
#############################
use PDL;
use Time::Piece;
@jberger
jberger / door.pl
Last active December 11, 2015 11:48
#!/usr/bin/env perl
use Mojolicious::Lite;
my $pass = 'MyPassword';
any '/' => 'home';
any '/open' => sub {
my $self = shift;