our > use vars
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Parser / Storable.pm
1 package SQL::Translator::Parser::Storable;
2
3 =head1 NAME
4
5 SQL::Translator::Parser::Storable - parser for Schema objects serialized
6     with the Storable module
7
8 =head1 SYNOPSIS
9
10   use SQL::Translator;
11
12   my $translator = SQL::Translator->new;
13   $translator->parser('Storable');
14
15 =head1 DESCRIPTION
16
17 Slurps in a Schema from a Storable file on disk.  You can then turn
18 the data into a database tables or graphs.
19
20 =cut
21
22 use strict;
23 use warnings;
24 our ($DEBUG, @EXPORT_OK);
25 $DEBUG = 0 unless defined $DEBUG;
26 our $VERSION = '1.59';
27
28 use Storable;
29 use Exporter;
30 use SQL::Translator::Utils qw(debug normalize_name);
31
32 use base qw(Exporter);
33
34 @EXPORT_OK = qw(parse);
35
36 sub parse {
37     my ($translator, $data) = @_;
38
39     if (defined($data)) {
40         $translator->{'schema'} = Storable::thaw($data);
41         return 1;
42     } elsif (defined($translator->filename)) {
43         $translator->{'schema'} = Storable::retrieve($translator->filename);
44         return 1;
45     }
46
47     return 0;
48 }
49
50 1;
51
52 =pod
53
54 =head1 SEE ALSO
55
56 SQL::Translator.
57
58 =head1 AUTHOR
59
60 Paul Harrington E<lt>harringp@deshaw.comE<gt>.
61
62 =cut