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对象。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,131评论 19 139
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,677评论 9 468
  • props一般用于承载组件间传递的数据; state一般用于组件自身的数据维护。
    余生筑阅读 282评论 0 1
  • 对于被追杀的人来说,躲到哪里都不安全,尤其追杀你的人是个咬定青山不放松的角色。那么,纵然你逃到天涯海角也还是不够远...
    13号的小猫阅读 266评论 0 3
  • 21世纪的我们,已经从“全民娱乐”跨界到了“全民学习”时代。 互联网的崛起,自媒体的兴起。跨越国界,开阔视野,实现...
    心曲姑凉阅读 374评论 1 4