2 package MooseX::Storage::Engine::IO::AtomicFile;
9 our $AUTHORITY = 'cpan:STEVAN';
11 extends 'MooseX::Storage::Engine::IO::File';
14 my ($self, $data) = @_;
15 my $fh = IO::AtomicFile->new($self->file, 'w')
16 || confess "Unable to open file (" . $self->file . ") for storing : $!";
17 $fh->binmode(':utf8') if utf8::is_utf8($data);
20 || confess "Could not write atomic file (" . $self->file . ") because: $!";
31 MooseX::Storage::Engine::IO::AtomicFile - The actually atomic file storage mechanism.
35 This provides the actual means to store data to a file atomically.
45 =item B<store ($data)>
59 All complex software has bugs lurking in it, and this module is no
60 exception. If you find a bug please either email me, or add the bug
65 Chris Prather E<lt>chris.prather@iinteractive.comE<gt>
67 Stevan Little E<lt>stevan.little@iinteractive.comE<gt>
69 =head1 COPYRIGHT AND LICENSE
71 Copyright 2007-2008 by Infinity Interactive, Inc.
73 L<http://www.iinteractive.com>
75 This library is free software; you can redistribute it and/or modify
76 it under the same terms as Perl itself.