package MooseX::Storage::IO::AtomicFile; # ABSTRACT: An Atomic File I/O role our $VERSION = '0.53'; use Moose::Role; use MooseX::Storage::Engine::IO::AtomicFile; use namespace::autoclean; with 'MooseX::Storage::IO::File'; sub store { my ( $self, $filename, @args ) = @_; MooseX::Storage::Engine::IO::AtomicFile->new( file => $filename )->store( $self->freeze(@args) ); } 1; __END__ =pod =encoding UTF-8 =head1 NAME MooseX::Storage::IO::AtomicFile - An Atomic File I/O role =head1 VERSION version 0.53 =head1 SYNOPSIS package Point; use Moose; use MooseX::Storage; with Storage('format' => 'JSON', 'io' => 'AtomicFile'); has 'x' => (is => 'rw', isa => 'Int'); has 'y' => (is => 'rw', isa => 'Int'); 1; my $p = Point->new(x => 10, y => 10); ## methods to load/store a class ## on the file system $p->store('my_point.json'); my $p2 = Point->load('my_point.json'); =head1 METHODS =over 4 =item B =item B =back =head1 SUPPORT Bugs may be submitted through L (or L). There is also a mailing list available for users of this distribution, at L. There is also an irc channel available for users of this distribution, at L on C|irc://irc.perl.org/#moose>. =head1 AUTHORS =over 4 =item * Chris Prather =item * Stevan Little =item * יובל קוג'מן (Yuval Kogman) =back =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2007 by Infinity Interactive, Inc. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut