package Foo;
use Moose;
use MooseX::Storage;
-
+
with Storage(io => 'StorableFile');
-
+
has 'number' => (is => 'ro', isa => 'Int');
has 'string' => (is => 'rw', isa => 'Str');
- has 'float' => (is => 'ro', isa => 'Num');
+ has 'float' => (is => 'ro', isa => 'Num');
has 'array' => (is => 'ro', isa => 'ArrayRef');
- has 'hash' => (is => 'ro', isa => 'HashRef');
- has 'object' => (is => 'ro', isa => 'Object');
+ has 'hash' => (is => 'ro', isa => 'HashRef');
+ has 'object' => (is => 'ro', isa => 'Object');
## add some custom freeze/thaw hooks here ...
isa_ok($foo, 'Foo');
$foo->store($file);
-
+
# check our custom freeze hook fired ...
my $data = Storable::retrieve($file);
is_deeply(
'__CLASS__' => 'Foo',
'float' => 10.5,
'number' => 10,
- 'string' => 'HELLO WORLD',
+ 'string' => 'HELLO WORLD',
'array' => [ 1 .. 10],
- 'hash' => { map { $_ => undef } 1 .. 10 },
+ 'hash' => { map { $_ => undef } 1 .. 10 },
'object' => {
'__CLASS__' => 'Foo',
'number' => 2
},
},
'... got the data struct we expected'
- );
-
+ );
+
}
{