X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FStorage%2FEngine%2FIO%2FFile.pm;h=ddd7b9f32f5e76026aa795794d26d72f2c31e40f;hb=004bf3ea04d7818116a94bb4b387d8ae1dd10f9a;hp=d8a209a91c514ebfb451e5a45784cfa5bd186fe2;hpb=a23e18d73284bb17b1c158787cf8c315ac772887;p=gitmo%2FMooseX-Storage.git diff --git a/lib/MooseX/Storage/Engine/IO/File.pm b/lib/MooseX/Storage/Engine/IO/File.pm index d8a209a..ddd7b9f 100644 --- a/lib/MooseX/Storage/Engine/IO/File.pm +++ b/lib/MooseX/Storage/Engine/IO/File.pm @@ -1,23 +1,87 @@ -package MooseX::Storage::IO::File; +package MooseX::Storage::Engine::IO::File; use Moose; +use utf8 (); use IO::File; -has file => ( - isa => 'Str', - is => 'ro', +our $VERSION = '0.28'; +our $AUTHORITY = 'cpan:STEVAN'; + +has 'file' => ( + is => 'ro', + isa => 'Str', required => 1, ); sub load { my ($self) = @_; - my $fh = IO::File->new($self->file, 'r'); + my $fh = IO::File->new($self->file, 'r') + || confess "Unable to open file (" . $self->file . ") for loading : $!"; return do { local $/; <$fh>; }; } sub store { my ($self, $data) = @_; - my $fh = IO::File->new($self->file, 'w'); + my $fh = IO::File->new($self->file, 'w') + || confess "Unable to open file (" . $self->file . ") for storing : $!"; + $fh->binmode(':utf8') if utf8::is_utf8($data); print $fh $data; -} \ No newline at end of file +} + +1; + +__END__ + +=pod + +=head1 NAME + +MooseX::Storage::Engine::IO::File - The actually file storage mechanism. + +=head1 DESCRIPTION + +This provides the actual means to store data to a file. + +=head1 METHODS + +=over 4 + +=item B + +=item B + +=item B + +=back + +=head2 Introspection + +=over 4 + +=item B + +=back + +=head1 BUGS + +All complex software has bugs lurking in it, and this module is no +exception. If you find a bug please either email me, or add the bug +to cpan-RT. + +=head1 AUTHOR + +Chris Prather Echris.prather@iinteractive.comE + +Stevan Little Estevan.little@iinteractive.comE + +=head1 COPYRIGHT AND LICENSE + +Copyright 2007-2008 by Infinity Interactive, Inc. + +L + +This library is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut