Mojo::Home

Mojo::Home为 Mojo程序提供“家目录”服务,它是一个Mojo程序“家目录”的容器。Mojo::Home从Mojo::File继承了所有的函数和方法。

方法

Mojo::Home继承了Mojo::File中所有的方法,并实现了以下方法。

detect

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

从MOJO_HOME环境变量的值或应用程序类的位置检测程序的“家目录”。实现代码如下:

sub detect {
  my ($self, $class) = @_;

  # Environment variable
  my $home;
  if ($ENV{MOJO_HOME}) { $home = Mojo::File->new($ENV{MOJO_HOME})->to_array }

  # Location of the application class (Windows mixes backslash and slash)
  elsif ($class && (my $path = $INC{my $file = class_to_path $class})) {
    $home = Mojo::File->new($path)->to_array;
    splice @$home, (my @dummy = split('/', $file)) * -1;
    pop @$home if @$home && $home->[-1] eq 'lib';
    pop @$home if @$home && $home->[-1] eq 'blib';
  }

  $$self = Mojo::File->new(@$home)->to_abs->to_string if $home;
  return $self;
}

mojo_lib_dir

my $path = $home->mojo_lib_dir;

把Mojolicious安装到的 lib包装成Mojo::Home对象返回。

rel_file

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

根据“参数”相对于当前“家目录”计算得到一个新的Mojo::Home对象。

你可能感兴趣的:(Mojo::Home)