Mojo::Home(3)

NAME
Mojo::Home - Home sweet home!

SYNOPSIS
  use Mojo::Home;

  # Find and manage the project root directory
  my $home = Mojo::Home->new;
  $home->detect;
  say $home->lib_dir;
  say $home->rel_file('templates/layouts/default.html.ep');
  say "$home";

DESCRIPTION
Mojo::Home is a container for home directories.

ATTRIBUTES
Mojo::Home implements the following attributes.

  parts
  my $parts = $home->parts;
  $home     = $home->parts([]);

Home directory parts.

METHODS
Mojo::Home inherits all methods from Mojo::Base and implements the following new ones.

  detect
  $home = $home->detect;
  $home = $home->detect('My::App');

Detect home directory from the value of the "MOJO_HOME" environment variable or application class.

  lib_dir
  my $path = $home->lib_dir;

Path to "lib" directory of application.

  list_files
  my $files = $home->list_files;
  my $files = $home->list_files('foo/bar');

Portably list all files recursively in directory relative to the home directory.

  say $home->rel_file($home->list_files('templates/layouts')->[1]);

  mojo_lib_dir
  my $path = $home->mojo_lib_dir;

Path to "lib" directory in which Mojolicious is installed.

  new
  my $home = Mojo::Home->new;
  my $home = Mojo::Home->new('/home/sri/my_app');

Construct a new Mojo::Home object and "parse" home directory if necessary.

  parse
  $home = $home->parse('/home/sri/my_app');

Parse home directory.

  rel_dir
  my $path = $home->rel_dir('foo/bar');

Portably generate an absolute path for a directory relative to the home directory.

  rel_file
  my $path = $home->rel_file('foo/bar.html');

Portably generate an absolute path for a file relative to the home directory.

  to_string
  my $str = $home->to_string;

Home directory.

OPERATORS
Mojo::Home overloads the following operators.

  bool
  my $bool = !!$home;

Always true.

  stringify
  my $str = "$home";

Alias for "to_string".

SEE ALSO
Mojolicious, Mojolicious::Guides, <http://mojolicious.org>.