Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

mojo::base(3pm) [debian man page]

Mojo::Base(3pm) 					User Contributed Perl Documentation					   Mojo::Base(3pm)

NAME
Mojo::Base - Minimal base class for Mojo projects SYNOPSIS
package Cat; use Mojo::Base -base; has 'mouse'; has paws => 4; has [qw(ears eyes)] => 2; package Tiger; use Mojo::Base 'Cat'; has stripes => 42; package main; use Mojo::Base -strict; my $mew = Cat->new(mouse => 'Mickey'); say $mew->paws; say $mew->paws(5)->ears(4)->paws; my $rawr = Tiger->new(stripes => 23); say $rawr->ears * $rawr->stripes; DESCRIPTION
Mojo::Base is a simple base class for Mojo projects. # Automatically enables "strict", "warnings" and Perl 5.10 features use Mojo::Base -strict; use Mojo::Base -base; use Mojo::Base 'SomeBaseClass'; All three forms save a lot of typing. # use Mojo::Base -strict; use strict; use warnings; use feature ':5.10'; # use Mojo::Base -base; use strict; use warnings; use feature ':5.10'; use Mojo::Base; push @ISA, 'Mojo::Base'; sub has { Mojo::Base::attr(__PACKAGE__, @_) } # use Mojo::Base 'SomeBaseClass'; use strict; use warnings; use feature ':5.10'; require SomeBaseClass; push @ISA, 'SomeBaseClass'; use Mojo::Base; sub has { Mojo::Base::attr(__PACKAGE__, @_) } FUNCTIONS
Mojo::Base exports the following functions if imported with the "-base" flag or a base class. "has" has 'name'; has [qw(name1 name2 name3)]; has name => 'foo'; has name => sub {...}; has [qw(name1 name2 name3)] => 'foo'; has [qw(name1 name2 name3)] => sub {...}; Create attributes, just like the "attr" method. METHODS
Mojo::Base implements the following methods. "new" my $object = BaseSubClass->new; my $object = BaseSubClass->new(name => 'value'); my $object = BaseSubClass->new({name => 'value'}); This base class provides a basic object constructor. You can pass it either a hash or a hash reference with attribute values. "attr" $object->attr('name'); BaseSubClass->attr('name'); BaseSubClass->attr([qw(name1 name2 name3)]); BaseSubClass->attr(name => 'foo'); BaseSubClass->attr(name => sub {...}); BaseSubClass->attr([qw(name1 name2 name3)] => 'foo'); BaseSubClass->attr([qw(name1 name2 name3)] => sub {...}); Create attributes. An array reference can be used to create more than one attribute. Pass an optional second argument to set a default value, it should be a constant or a sub reference. The sub reference will be excuted at accessor read time if there's no set value. DEBUGGING
You can set the "MOJO_BASE_DEBUG" environment variable to get some advanced diagnostics information printed to "STDERR". MOJO_BASE_DEBUG=1 SEE ALSO
Mojolicious, Mojolicious::Guides, <http://mojolicio.us>. perl v5.14.2 2012-09-05 Mojo::Base(3pm)

Check Out this Related Man Page

Mojo(3pm)						User Contributed Perl Documentation						 Mojo(3pm)

NAME
Mojo - Duct tape for the HTML5 web! SYNOPSIS
use Mojo::Base 'Mojo'; # All the complexities of CGI, PSGI, HTTP and WebSockets get reduced to a # single method call! sub handler { my ($self, $tx) = @_; # Request my $method = $tx->req->method; my $path = $tx->req->url->path; # Response $tx->res->code(200); $tx->res->headers->content_type('text/plain'); $tx->res->body("$method request for $path!"); # Resume transaction $tx->resume; } DESCRIPTION
Mojo provides a flexible runtime environment for Perl real-time web frameworks. It provides all the basic tools and helpers needed to write simple web applications and higher level web frameworks such as Mojolicious. See Mojolicious for more! ATTRIBUTES
Mojo implements the following attributes. "home" my $home = $app->home; $app = $app->home(Mojo::Home->new); The home directory of your application, defaults to a Mojo::Home object which stringifies to the actual path. # Generate portable path relative to home directory my $path = $app->home->rel_file('data/important.txt'); "log" my $log = $app->log; $app = $app->log(Mojo::Log->new); The logging layer of your application, defaults to a Mojo::Log object. # Log debug message $app->log->debug('It works!'); "ua" my $ua = $app->ua; $app = $app->ua(Mojo::UserAgent->new); A full featured HTTP 1.1 user agent for use in your applications, defaults to a Mojo::UserAgent object. Note that this user agent should not be used in plugins, since non-blocking requests that are already in progress will interfere with new blocking ones. # Perform blocking request my $body = $app->ua->get('mojolicio.us')->res->body; METHODS
Mojo inherits all methods from Mojo::Base and implements the following new ones. "new" my $app = Mojo->new; Construct a new Mojo application. Will automatically detect your home directory and set up logging to "log/mojo.log" if there's a "log" directory. "build_tx" my $tx = $app->build_tx; Transaction builder, defaults to building a Mojo::Transaction::HTTP object. "config" my $config = $app->config; my $foo = $app->config('foo'); $app = $app->config({foo => 'bar'}); $app = $app->config(foo => 'bar'); Application configuration. # Manipulate configuration $app->config->{foo} = 'bar'; my $foo = $app->config->{foo}; delete $app->config->{foo}; "handler" $app->handler($tx); The handler is the main entry point to your application or framework and will be called for each new transaction, which will usually be a Mojo::Transaction::HTTP or Mojo::Transaction::WebSocket object. Meant to be overloaded in a subclass. sub handler { my ($self, $tx) = @_; ... } SEE ALSO
Mojolicious, Mojolicious::Guides, <http://mojolicio.us>. perl v5.14.2 2012-09-05 Mojo(3pm)
Man Page