Mojo::Home(3p)

NAME
Mojo::Home - Detect and access the project root directory in Mojo

SYNOPSIS
  use Mojo::Home;

  my $home = Mojo::Home->new;
  $home->detect;

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

ATTRIBUTES
Mojo::Home implements the following attributes.

  "app_class"
  my $class = $home->app_class;
  $home     = $home->app_class('Foo::Bar');

Application class.

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

  "new"
  my $home = Mojo::Home->new;
  my $home = Mojo::Home->new('/foo/bar');

Construct a new Mojo::Home object.

  "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 in directory and subdirectories recursively.

  $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.

  "parse"
  $home = $home->parse('/foo/bar');

Parse home directory.

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

Portably generate an absolute path from a relative UNIX style path.

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

Portably generate an absolute path from a relative UNIX style path.

  "slurp_rel_file"
  my $string = $home->slurp_rel_file('foo/bar.html');

Portably read all file data at once.

  my $content = $home->slurp_rel_file($home->list_files('public')->[1]);

  "to_string"
  my $string = $home->to_string;
  my $string = "$home";

Home directory.

SEE ALSO
Mojolicious, Mojolicious::Guides, <http://mojolicio.us>.