Skip to content

Instantly share code, notes, and snippets.

View sharifulin's full-sized avatar

Anatoly Sharifulin sharifulin

View GitHub Profile
@sharifulin
sharifulin / gist:413191
Created May 25, 2010 14:34
Example of my mojolicious script
#!/usr/bin/perl
use strict;
use lib qw(../lib ../mojo/lib);
BEGIN {
$ENV{MOJO_MODE}++;
$ENV{MOJO_TMPDIR} = 'tmp/upload';
$ENV{MOJO_MAX_MESSAGE_SIZE} = 2 * 1024 * 1024 * 1024; # 2 GB
};
@sharifulin
sharifulin / gist:414411
Created May 26, 2010 12:28
Accel redirect for nginx and mojo
package App::Controller;
...
sub redirect_accel {
my $self = shift;
my $url = shift || return;
my $type = shift || '';
$self->render_data('');
@sharifulin
sharifulin / gist:430167
Created June 8, 2010 15:13
New Mojolicious I18N Plugin without test suite :)
# Copyright (C) 2008-2010, Sebastian Riedel.
package Mojolicious::Plugin::I18nAll;
use strict;
use warnings;
use base 'Mojolicious::Plugin';
use I18N::LangTags;
@sharifulin
sharifulin / gist:450143
Created June 23, 2010 16:14
Mojo::Client for moskva.fm and piter.fm
#!/usr/bin/perl
use common::sense;
use lib qw(/tk/lib /tk/mojo/lib);
use Mojo::Client;
use Data::Dumper;
die "Usage: $0 moskva|piter stations|onair"
unless @ARGV && $ARGV[0] ~~ ['moskva', 'piter'] && $ARGV[1] ~~ ['stations', 'onair'];
@sharifulin
sharifulin / gist:450150
Created June 23, 2010 16:18
Mojo::IOLoop for stream URL frod.io
#!/usr/bin/perl
use common::sense;
use lib qw(../../lib /tk/lib /tk/mojo/lib);
use Mojo::IOLoop;
use Mojo::Message::Request;
use Data::Dumper;
my $url = Mojo::URL->new('http://frod.io:8000/station-aac');
my $loop = Mojo::IOLoop->new;
@sharifulin
sharifulin / gist:475448
Created July 14, 2010 14:02
Example of my module: common::sense + Mojo::Base
package Score;
use common::sense;
use base 'Mojo::Base';
use constant DEBUG => $ENV{SCORE_DEBUG} // 0;
__PACKAGE__->attr('db');
...
@sharifulin
sharifulin / gist:484208
Created July 21, 2010 07:59
Idea for Mojolicious::Lite app
#!/usr/bin/env perl
use Mojolicious::Lite;
use App::Foo;
use App::Bar;
for (ref app) {
$_->attr(db => sub { ... });
$_->attr(conf => sub { ... });
}
@sharifulin
sharifulin / gist:517102
Created August 10, 2010 11:20
Mojolicious controller
package App:Foo;
use common::sense;
use App::User::Info;
use base 'App::Controller';
__PACKAGE__->attr(user => sub { App::User::Info->new(%{ +shift }) });
sub bar {
my $self = shift;
@sharifulin
sharifulin / gist:534788
Created August 18, 2010 13:51
mojo daemon + nginx = fail ?!
# mojo code
#!/usr/bin/env perl
use Mojolicious::Lite;
get '/' => sub {
shift->render(t => join '', 1..50_000);
} => 'index';
@sharifulin
sharifulin / gist:562053
Created September 2, 2010 08:34
Get mp3-url from podcast
#!/usr/bin/env perl
use common::sense;
use ojo;
die "Usage: $0 <podcast url>" unless @ARGV;
b(g( shift )->dom->find("enclosure[url]")->each(sub {
local $_ = shift->attrs->{url};
say if /\.mp3$/;
}));