package SQL::Translator::Producer::Turnkey;
# -------------------------------------------------------------------
-# $Id: Turnkey.pm,v 1.50 2004-04-25 10:13:31 boconnor Exp $
+# $Id: Turnkey.pm,v 1.57 2004-08-05 02:05:46 boconnor Exp $
# -------------------------------------------------------------------
# Copyright (C) 2002-4 SQLFairy Authors
#
use strict;
use vars qw[ $VERSION $DEBUG ];
-$VERSION = sprintf "%d.%02d", q$Revision: 1.50 $ =~ /(\d+)\.(\d+)/;
+$VERSION = sprintf "%d.%02d", q$Revision: 1.57 $ =~ /(\d+)\.(\d+)/;
$DEBUG = 1 unless defined $DEBUG;
use SQL::Translator::Schema::Constants;
if($type eq 'dbi'){
return <<'EOF';
[% MACRO printPackage(node) BLOCK %]
-# --------------------------------------------
+
+########[% node.name | replace('Turnkey::Model::', '') %].pm########
package [% node.name %];
use base '[% node.base %]';
use Class::DBI::Pager;
+no warnings qw(redefine);
[% node.name %]->set_up_table('[% node.table.name %]');
[% printPKAccessors(node.primary_key, node.table.name) %]
[% seen = 0 %]
[% FOREACH h = hedges %]
[% NEXT UNLESS h.type == 'one2one' %]
-[% IF seen == 0 ; seen = 1 %]########## one2one ###########[% END %]
+[% IF seen == 0 ; seen = 1 %]# one2one #[% END %]
sub [% h.thatnode.table.name %]s { my $self = shift; return map $_->[% h.thatviafield.name %], $self->[% h.vianode.table.name %]_[% h.thisviafield.name %] }
[% END %]
[% seen = 0 %]
[% FOREACH h = hedges %]
[% NEXT UNLESS h.type == 'one2many' %]
-[% IF seen == 0 ; seen = 1 %]########## one2many ##########[% END %]
+[% IF seen == 0 ; seen = 1 %]# one2many #[% END %]
[% thisnode = h.thisnode_index(0) %]
[% i = 0 %]
[% FOREACH thatnode = h.thatnode %]
[% seen = 0 %]
[% FOREACH h = hedges %]
[% NEXT UNLESS h.type == 'many2one' %]
-[% IF seen == 0 ; seen = 1 %]########## many2one ##########[% END %]
+[% IF seen == 0 ; seen = 1 %]# many2one #[% END %]
[% i = 0 %]
[% FOREACH thisnode = h.thisnode %]
#[% thisnode.name %]::[% h.thisfield_index(0).name %] -> [% h.vianode.name %]::[% h.thisviafield_index(i).name %] ... [% h.vianode.name %]::[% h.thatviafield_index(0).name %] <- [% h.thatnode_index(0).name %]::[% h.thatfield_index(0).name %]
[% seen = 0 %]
[% FOREACH h = hedges %]
[% NEXT UNLESS h.type == 'many2many' %]
-[% IF seen == 0 ; seen = 1 %]########## many2many #########[% END %]
+[% IF seen == 0 ; seen = 1 %]# many2many #[% END %]
[% i = 0 %]
[% FOREACH thisnode = h.thisnode %]
[% j = 0 %]
[% i = i + 1 %]
[% END %]
[% END %]
-
+1;
[% END %]
[% MACRO printHasFriendly(node) BLOCK %]
#
[% END %]
[% MACRO printList(array) BLOCK %][% FOREACH item = array %][% item %] [% END %][% END %]
+
+########AutoDBI.pm########
+use Turnkey::Model::DBI;
+[% FOREACH node = nodes %]
+use [% node.value.name %];
+[% END %]
+1;
+
+########[% baseclass | replace('Turnkey::Model::', '') %].pm########
package [% baseclass %];
# Created by SQL::Translator::Producer::Turnkey
return(Dumper($arg{'object'}));
}
-[% FOREACH node = nodes %]
- [% printPackage(node.value) %]
-[% END %]
+1;
+
+[% FOREACH node = nodes %][% printPackage(node.value) %][% END %]
EOF
}
+elsif($type eq 'soap'){
+ return <<'EOF';
+[% FOREACH node = nodes %][% node.value.name %], [%- END -%]
+EOF
+}
elsif($type eq 'atom'){
return <<'EOF';
-[% ###### DOCUMENT START ###### %]
+[% # DOCUMENT START # %]
+
+########AutoAtom.pm########
+[% FOREACH node = nodes %]
+use [% node.value.name %];
+[% END %]
+1;
[% FOREACH node = nodes %]
[% IF !node.value.is_trivial_link %]
-##############################################
+########[% node.value.name | replace('Turnkey::Model::', '') %].pm########
package Turnkey::Atom::[% node.value.name FILTER replace "Turnkey::Model::", "" %];
</layouts>
<uribindings>
- <uribinding uri="/" class="Turnkey::Util::Frontpage"/>
+ <uribinding uri="/db" class="Turnkey::Util::Frontpage"/>
+ <uribinding uri="/db/search" class="Turnkey::Util::Search"/>
+ <uribinding uri="/db/userinfo" class="Turnkey::Util::Userinfo"/>
</uribindings>
<classbindings>
<div class="middle-header">[% name %]</div>
[% END %]
<!-- begin atom: [% p.label %] -->
- <table cellpadding="0" cellspacing="0" align="left" height="100%" width="100%"><!-- [% ref(atom) %] [% ref(dbobject) %] -->
+ <!-- table cellpadding="0" cellspacing="0" width="100%" --><!-- [% ref(atom) %] [% ref(dbobject) %] -->
[% renderatom(name,dbobject,p.containers[0]) %]
- </table>
+ <!-- /table -->
</div></div>
<div class="cleaner"></div>
[% ELSIF p.type == 'minor' %]
<div class="box-header">[% atom.name | replace('Turnkey::Atom::', '') %]</div>
[% END %]
<!-- begin atom: [% p.label %] -->
- <table cellpadding="0" cellspacing="0" align="left" height="100%" width="100%"><!-- [% ref(atom) %] [% ref(dbobject) %] -->
+ <!-- table cellpadding="0" cellspacing="0" width="100%" --><!-- [% ref(atom) %] [% ref(dbobject) %] -->
[% renderatom(name,dbobject,atom) %]
- </table>
+ <!-- /table -->
</div>
[% END %]
</div></div>
[% END %]
[% MACRO obj2url(obj) SWITCH obj %]
[% CASE DEFAULT %]
- /[% ref(obj) | replace('.+::','') %]/db/[% obj %]
+ /db/[% ref(obj) | replace('.+::','') %]/[% obj %]
[% END %]
<!-- the above method should be updated when additional namespaces are used -->
[% MACRO obj2desc(obj) SWITCH ref(obj) %]
[% renderlist(atom.render(dbobject)) %]
[% END %]
[% MACRO renderlist(lstArr) BLOCK %]
- <div class="left-item"><ul>
+ <div class="left-item">
+ <ul>
[% FOREACH item = lstArr %]
[% class = ref(atom) | replace('::Atom::', '::Model::') %]
[% id = item.id %]
[% PROCESS make_linked_dbobject %]
<li class="minorfocus">[% obj2link(linked_dbobject) %]</li>
[% END %]
- </ul></div>
+ </ul>
+ </div>
[% END %]
EOF
[% PROCESS make_linked_dbobject %]
<li class="minorfocus">[% obj2link(linked_dbobject) %]</li>
[% END %]
- </ul>
+ </ul>
[% END %]
[- END -]
EOF