This file is indexed.

/usr/share/perl5/Mojo/Home.pm is in libmojolicious-perl 7.21+dfsg-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
package Mojo::Home;
use Mojo::Base 'Mojo::File';

use Mojo::Util qw(class_to_path deprecated);

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 'blib' || $home->[-1] eq 'lib');
  }

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

# DEPRECATED!
sub lib_dir {
  deprecated 'Mojo::Home::lib_dir is DEPRECATED';
  shift->child('lib')->to_string;
}

# DEPRECATED!
sub list_files {
  deprecated
    'Mojo::Home::list_files is DEPRECATED in favor of Mojo::Files::list_tree';
  my ($self, $dir, $options) = (shift, shift // '', shift);
  my $base = $self->child(split('/', $dir));
  $base->list_tree($options)->map(sub { join '/', @{$_->to_rel($base)} })
    ->to_array;
}

sub mojo_lib_dir { shift->new(__FILE__)->dirname->child('..') }

# DEPRECATED!
sub parse {
  deprecated 'Mojo::Home::parse is DEPRECATED';
  my $self = shift;
  $$self = shift;
  return $self;
}

# DEPRECATED!
sub parts {
  deprecated 'Mojo::Home::parts is DEPRECATED';
  my $self = shift;
  return $self->to_array unless @_;
  $$self = Mojo::File->new(@{shift()})->to_string;
  return $self;
}

# DEPRECATED!
sub rel_dir {
  deprecated
    'Mojo::Home::rel_dir is DEPRECATED in favor of Mojo::Home::rel_file';
  Mojo::File->new(@{shift->parts}, split('/', shift))->to_string;
}

sub rel_file { shift->child(split('/', shift)) }

1;

=encoding utf8

=head1 NAME

Mojo::Home - Home sweet home

=head1 SYNOPSIS

  use Mojo::Home;

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

=head1 DESCRIPTION

L<Mojo::Home> is a container for home directories based on L<Mojo::File>.

=head1 METHODS

L<Mojo::Home> inherits all methods from L<Mojo::File> and implements the
following new ones.

=head2 detect

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

Detect home directory from the value of the C<MOJO_HOME> environment variable or
the location of the application class.

=head2 mojo_lib_dir

  my $path = $home->mojo_lib_dir;

Path to C<lib> directory in which L<Mojolicious> is installed as a L<Mojo::Home>
object.

=head2 rel_file

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

Return a new L<Mojo::Home> object relative to the home directory.

=head1 OPERATORS

L<Mojo::Home> inherits all overloaded operators from L<Mojo::File>.

=head1 SEE ALSO

L<Mojolicious>, L<Mojolicious::Guides>, L<http://mojolicious.org>.

=cut