remove alot of the "scalaring"
[dbsrgits/SQL-Translator-2.0-ish.git] / lib / SQL / Translator / Producer / YAML.pm
index 6027d3a..71e0808 100644 (file)
@@ -18,107 +18,105 @@ role SQL::Translator::Producer::YAML {
                 add_drop_table => $translator->add_drop_table,
                 filename       => $translator->filename,
                 no_comments    => $translator->no_comments,
-                parser_args    => $translator->parser_args,
-                producer_args  => $translator->producer_args,
+                parser_args    => $translator->parser_args || {},
+                producer_args  => $translator->producer_args || {},
                 parser_type    => $translator->parser_type,
                 producer_type  => $translator->producer_type,
                 show_warnings  => $translator->show_warnings,
                 trace          => $translator->trace,
                 version        => $translator->version,
             },
-    #        keys %{$schema->extra} ? ('extra' => { $schema->extra } ) : (),
+            keys %{$schema->extra} ? ('extra' => { $schema->extra } ) : (),
         });
     }
     
     method _create_table(Table $table) {
         return {
             'name'        => $table->name,
-    #        'order'       => $table->order,
-            'options'     => $table->options  || [],
+            'options'     => $table->options || [],
             $table->comments ? ('comments'    => $table->comments ) : (),
             'constraints' => [ map { $self->_create_constraint($_) } $table->get_constraints ],
             'indices'     => [ map { $self->_create_index($_) } $table->get_indices ],
-            'fields'      => { map { ($_->name => $self->_create_field($_)) } $table->get_fields 
-            },
-            #keys %{$table->extra} ? ('extra' => { $table->extra } ) : (),
+            'fields'      => { map { ($_->name => $self->_create_field($_)) } $table->get_fields, },
+            'order'       => $table->order,
+            keys %{$table->extra} ? ('extra' => { $table->extra } ) : (),
         };
     }
     
     method _create_constraint(Constraint $constraint) {
         return {
-            'deferrable'       => scalar $constraint->deferrable,
-            'expression'       => scalar $constraint->expression,
-            'fields'           => [ map { ref $_ ? $_->name : $_ } $constraint->field_names ],
-            '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' => [ map { ref $_ ? $_->name : $_ } $constraint->reference_fields ],
-    #        'reference_table'  => scalar $constraint->reference_table,
-            'type'             => scalar $constraint->type,
-            #keys %{$constraint->extra} ? ('extra' => { $constraint->extra } ) : (),
+            'deferrable'       => $constraint->deferrable,
+            'expression'       => $constraint->expression || '',
+            'fields'           => [ $constraint->fields ],
+            'name'             => $constraint->name,
+            'options'          => $constraint->options || [],
+            'on_delete'        => $constraint->on_delete || '',
+            'on_update'        => $constraint->on_update || '',
+            'reference_fields' => [ map { ref $_ ? $_->name : $_ } $constraint->reference_fields ],
+            'reference_table'  => $constraint->reference_table || '',
+            'type'             => $constraint->type,
+            'match_type'       => $constraint->match_type,
+            keys %{$constraint->extra} ? ('extra' => { $constraint->extra } ) : (),
         };
     }
     
     method _create_field(Column $field) {
         return {
-    #        'order'             => scalar $field->order,
-            'name'              => scalar $field->name,
-            'data_type'         => scalar $field->data_type,
+            'name'              => $field->name,
+            'data_type'         => $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,
+            'default_value'     => $field->default_value,
+            'is_nullable'       => $field->is_nullable,
+            'is_primary_key'    => $field->is_primary_key,
+            'is_unique'         => $field->is_unique,
+            'order'             => $field->order,
             $field->is_auto_increment ? ('is_auto_increment' => 1) : (),
             $field->comments ? ('comments' => $field->comments) : (),
-            #keys %{$field->extra} ? ('extra' => { $field->extra } ) : (),
+            keys %{$field->extra} ? ('extra' => { $field->extra } ) : (),
         };
     }
     
     method _create_procedure(Procedure $procedure) {
         return {
-    #        'order'      => scalar $procedure->order,
-            'name'       => scalar $procedure->name,
-            'sql'        => scalar $procedure->sql,
-            'parameters' => scalar $procedure->parameters,
-            'owner'      => scalar $procedure->owner,
-            'comments'   => scalar $procedure->comments,
-            #keys %{$procedure->extra} ? ('extra' => { $procedure->extra } ) : (),
+            'name'       => $procedure->name,
+            'sql'        => $procedure->sql,
+            'parameters' => $procedure->parameters,
+            'owner'      => $procedure->owner,
+            'comments'   => $procedure->comments,
+            keys %{$procedure->extra} ? ('extra' => $procedure->extra ) : (),
         };
     }
     
     method _create_trigger(Trigger $trigger) {
         return {
-    #        'order'               => scalar $trigger->order,
-            'name'                => scalar $trigger->name,
-            'perform_action_when' => scalar $trigger->perform_action_when,
-            'database_events'     => scalar $trigger->database_events,
-            'fields'              => scalar $trigger->fields,
-            'on_table'            => scalar $trigger->on_table,
-            'action'              => scalar $trigger->action,
-            #keys %{$trigger->extra} ? ('extra' => { $trigger->extra } ) : (),
+            'name'                => $trigger->name,
+            'perform_action_when' => $trigger->perform_action_when,
+            'database_events'     => [ $trigger->database_events ],
+            'fields'              => $trigger->fields ? [ $trigger->fields ] : undef,
+            'on_table'            => $trigger->on_table,
+            'action'              => $trigger->action,
+            'order'               => $trigger->order,
+            keys %{$trigger->extra} ? ('extra' => { $trigger->extra } ) : (),
         };
     }
     
     method _create_view(View $view) {
         return {
-    #        'order'  => scalar $view->order,
-            'name'   => scalar $view->name,
-            'sql'    => scalar $view->sql,
-            'fields' => scalar $view->fields,
-            #keys %{$view->extra} ? ('extra' => { $view->extra } ) : (),
+            'name'   => $view->name,
+            'sql'    => $view->sql,
+            'fields' => $view->fields ? [ $view->fields ] : '',
+            'order'  => $view->order,
+            keys %{$view->extra} ? ('extra' => { $view->extra } ) : (),
         };
     }
     
     method _create_index(Index $index) {
         return {
-            'name'      => scalar $index->name,
-            'type'      => scalar $index->type,
-            'fields'    => scalar $index->fields,
-            'options'   => scalar $index->options,
-            #keys %{$index->extra} ? ('extra' => { $index->extra } ) : (),
+            'name'      => $index->name,
+            'type'      => $index->type,
+            'fields'    => [ $index->fields ],
+            'options'   => $index->options,
+            keys %{$index->extra} ? ('extra' => $index->extra ) : (),
         };
     }
 }