Dist::Zilla::File::OnDisk - a file that comes from your filesystem


Dist-Zilla documentation Contained in the Dist-Zilla distribution.

Index


Code Index:

NAME

Top

Dist::Zilla::File::OnDisk - a file that comes from your filesystem

VERSION

Top

version 4.200008

DESCRIPTION

Top

This represents a file stored on disk. Its content attribute is read from the originally given file name when first read, but is then kept in memory and may be altered by plugins.

AUTHOR

Top

Ricardo SIGNES <rjbs@cpan.org>

COPYRIGHT AND LICENSE

Top


Dist-Zilla documentation Contained in the Dist-Zilla distribution.

package Dist::Zilla::File::OnDisk;
BEGIN {
  $Dist::Zilla::File::OnDisk::VERSION = '4.200008';
}
# ABSTRACT: a file that comes from your filesystem
use Moose;


has content => (
  is  => 'rw',
  isa => 'Str',
  lazy => 1,
  default => sub { shift->_read_file },
);

has _original_name => (
  is  => 'ro',
  isa => 'Str',
  init_arg => undef,
);

sub BUILD {
  my ($self) = @_;
  $self->{_original_name} = $self->name;
}

sub _read_file {
  my ($self) = @_;

  my $fname = $self->_original_name;
  open my $fh, '<', $fname or die "can't open $fname for reading: $!";

  # This is needed or \r\n is filtered to be just \n on win32.
  # Maybe :raw:utf8, not sure.
  #     -- Kentnl - 2010-06-10
  binmode $fh, ':raw';

  my $content = do { local $/; <$fh> };
}

with 'Dist::Zilla::Role::File';

__PACKAGE__->meta->make_immutable;
no Moose;
1;

__END__