package MooseX::Storage::Engine::IO::AtomicFile;
use Moose;
+use utf8 ();
use IO::AtomicFile;
-our $VERSION = '0.01';
+our $VERSION = '0.03';
+our $AUTHORITY = 'cpan:STEVAN';
extends 'MooseX::Storage::Engine::IO::File';
sub store {
my ($self, $data) = @_;
- my $fh = IO::AtomicFile->new($self->file, 'w');
+ my $fh = IO::AtomicFile->new($self->file, 'w')
+ || confess "Unable to open file (" . $self->file . ") for storing : $!";
+ $fh->binmode(':utf8') if utf8::is_utf8($data);
print $fh $data;
$fh->close()
|| confess "Could not write atomic file (" . $self->file . ") because: $!";