Mojo::Home

作者: JSON_NULL | 来源:发表于2017-08-19 12:01 被阅读5次

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

    Mojo::Home为 Mojo程序提供“家目录”服务,它是一个Mojo程序“家目录”的容器。Mojo::Home...

  • mojo是什么?

    What is a Mojo? A mojo is a Maven plain Old Java Object. ...

  • Mojo::Base (不仅仅是对文档的翻译)

    Mojo::Base - Minimal base class for Mojo projects status...

  • Mojo::Reactor

    Mojo::Reactor 是低层事件驱动器的基类。通过子类Mojo::Reactor::EV和Mojo::Rea...

  • Mojo::EventEmitter

    简介 Mojo::EventEmitter - Event emitter base class Mojo::Ev...

  • Mojo::Log

    Mojo::Log模块是Mojo项目的简单日志记录器。并且它是Mojo::EventEmitter的一个子类。 语...

  • Mojo::UserAgent::CookieJar

    简介 Mojo::UserAgent::CookieJar是基于RFC 6265的供Mojo :: UserAge...

  • Mojo::UserAgent::Transactor

    简介 Mojo::UserAgent::Transactor 是Mojo::UserAgent中使用的事务构建和操...

  • Mojo::Asset::File

    简介 Mojo::Asset::File 是HTTP内容的文件存储。 事件 Mojo::Asset::File继承...

  • Mojo::Asset::Memory

    简介 Mojo::Asset::Memory - 用于HTTP内容的内存存储 事件 Mojo::Asset::Me...

网友评论

    本文标题:Mojo::Home

    本文链接:https://www.haomeiwen.com/subject/miggrxtx.html