X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FProducer%2FYAML.pm;h=6156e25d83de93f63391bc8fcaf9f7812bec04bd;hb=821a0fde221f5accf93e3f65efa77b5a6733cb5e;hp=8e061855f89fcf06eed1d6c0ae78ba829207a356;hpb=62d773a57875e2193a639d242ab1630b10c9776f;p=dbsrgits%2FSQL-Translator.git diff --git a/lib/SQL/Translator/Producer/YAML.pm b/lib/SQL/Translator/Producer/YAML.pm index 8e06185..6156e25 100644 --- a/lib/SQL/Translator/Producer/YAML.pm +++ b/lib/SQL/Translator/Producer/YAML.pm @@ -1,7 +1,7 @@ package SQL::Translator::Producer::YAML; # ------------------------------------------------------------------- -# $Id: YAML.pm,v 1.10 2004-03-29 10:20:03 grommit Exp $ +# $Id$ # ------------------------------------------------------------------- # Copyright (C) 2002-4 SQLFairy Authors # @@ -41,14 +41,14 @@ takes a long time. use strict; use vars qw($VERSION); -$VERSION = sprintf "%d.%02d", q$Revision: 1.10 $ =~ /(\d+)\.(\d+)/; +$VERSION = sprintf "%d.%02d", q$Revision$ =~ /(\d+)\.(\d+)/; use YAML qw(Dump); # ------------------------------------------------------------------- sub produce { - my $translator = shift; - my $schema = $translator->schema; + my $translator = shift; + my $schema = $translator->schema; return Dump({ schema => { @@ -92,7 +92,7 @@ sub view_table { 'name' => $table->name, 'order' => $table->order, 'options' => $table->options || [], - 'comments' => $table->comments || '', + $table->comments ? ('comments' => $table->comments ) : (), 'constraints' => [ map { view_constraint($_) } $table->get_constraints ], @@ -113,7 +113,7 @@ sub view_constraint { return { 'deferrable' => scalar $constraint->deferrable, 'expression' => scalar $constraint->expression, - 'fields' => scalar $constraint->field_names, + 'fields' => [ map { ref $_ ? $_->name : $_ } $constraint->field_names ], 'match_type' => scalar $constraint->match_type, 'name' => scalar $constraint->name, 'options' => scalar $constraint->options, @@ -130,15 +130,17 @@ sub view_field { my $field = shift; return { - 'order' => scalar $field->order, - 'name' => scalar $field->name, - 'data_type' => scalar $field->data_type, - 'size' => [ $field->size ], - 'default_value' => scalar $field->default_value, - 'is_nullable' => scalar $field->is_nullable, - 'is_primary_key' => scalar $field->is_primary_key, - 'is_unique' => scalar $field->is_unique, - 'extra' => { $field->extra }, + 'order' => scalar $field->order, + 'name' => scalar $field->name, + 'data_type' => scalar $field->data_type, + 'size' => [ $field->size ], + 'default_value' => scalar $field->default_value, + 'is_nullable' => scalar $field->is_nullable, + 'is_primary_key' => scalar $field->is_primary_key, + 'is_unique' => scalar $field->is_unique, + $field->is_auto_increment ? ('is_auto_increment' => 1) : (), + $field->comments ? ('comments' => $field->comments) : (), + 'extra' => { $field->extra }, }; }