Fixed copyrights.
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Producer / YAML.pm
index 74fbece..d58abed 100644 (file)
@@ -1,10 +1,9 @@
 package SQL::Translator::Producer::YAML;
 
 # -------------------------------------------------------------------
-# $Id: YAML.pm,v 1.6 2003-10-17 19:48:38 dlc Exp $
+# $Id: YAML.pm,v 1.8 2004-02-09 23:02:17 kycl4rk Exp $
 # -------------------------------------------------------------------
-# Copyright (C) 2003 darren chamberlain <darren@cpan.org>,
-#   Ken Y. Clark <kclark@cpan.org>.
+# Copyright (C) 2002-4 SQLFairy Authors
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License as
@@ -42,7 +41,7 @@ takes a long time.
 
 use strict;
 use vars qw($VERSION);
-$VERSION = sprintf "%d.%02d", q$Revision: 1.6 $ =~ /(\d+)\.(\d+)/;
+$VERSION = sprintf "%d.%02d", q$Revision: 1.8 $ =~ /(\d+)\.(\d+)/;
 
 use YAML qw(Dump);
 
@@ -78,15 +77,17 @@ sub view_table {
     my $table = shift;
 
     return {
-        'name'     => $table->name,
-        'order'    => $table->order,
-        'options'  => $table->options  || [],
-        'comments' => $table->comments || '',
-        'indices'  => {
-            map { ($_->name => view_index($_)) }
-                $table->get_indices
-        },
-        'fields'   => { 
+        'name'        => $table->name,
+        'order'       => $table->order,
+        'options'     => $table->options  || [],
+        'comments'    => $table->comments || '',
+        'constraints' => [
+            map { view_constraint($_) } $table->get_constraints
+        ],
+        'indices'     => [
+            map { view_index($_) } $table->get_indices
+        ],
+        'fields'      => { 
             map { ($_->name => view_field($_)) }
                 $table->get_fields 
         },
@@ -94,6 +95,25 @@ sub view_table {
 }
 
 # -------------------------------------------------------------------
+sub view_constraint {
+    my $constraint = shift;
+
+    return {
+        'deferrable'       => scalar $constraint->deferrable,
+        'expression'       => scalar $constraint->expression,
+        'fields'           => scalar $constraint->fields,
+        'match_type'       => scalar $constraint->match_type,
+        'name'             => scalar $constraint->name,
+        'options'          => scalar $constraint->options,
+        'on_delete'        => scalar $constraint->on_delete,
+        'on_update'        => scalar $constraint->on_update,
+        'reference_fields' => scalar $constraint->reference_fields,
+        'reference_table'  => scalar $constraint->reference_table,
+        'type'             => scalar $constraint->type,
+    };
+}
+
+# -------------------------------------------------------------------
 sub view_field {
     my $field = shift;