summaryrefslogtreecommitdiff
path: root/rt/sbin/factory
diff options
context:
space:
mode:
Diffstat (limited to 'rt/sbin/factory')
-rw-r--r--rt/sbin/factory98
1 files changed, 22 insertions, 76 deletions
diff --git a/rt/sbin/factory b/rt/sbin/factory
index 743d8b9..882e4a8 100644
--- a/rt/sbin/factory
+++ b/rt/sbin/factory
@@ -1,9 +1,9 @@
-#!/usr/bin/perl -w
-# BEGIN BPS TAGGED BLOCK {{{
+#!/usr/bin/perl
+# {{{ BEGIN BPS TAGGED BLOCK
#
# COPYRIGHT:
#
-# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC
# <jesse@bestpractical.com>
#
# (Except where explicitly superseded by other copyright notices)
@@ -43,8 +43,7 @@
# works based on those contributions, and sublicense and distribute
# those contributions and any derivatives thereof.
#
-# END BPS TAGGED BLOCK }}}
-use strict;
+# }}} END BPS TAGGED BLOCK
use DBI;
my $database = shift;
@@ -60,17 +59,11 @@ my $password = '';
my $LicenseBlock = << '.';
-# BEGIN BPS TAGGED BLOCK {{{
-#
-# COPYRIGHT:
-#
-# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC
-# <jesse@bestpractical.com>
+# BEGIN BPS TAGGED BLOCK
#
-# (Except where explicitly superseded by other copyright notices)
+# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com>
#
-#
-# LICENSE:
+# (Except where explictly superceded by other copyright notices)
#
# This work is made available to you under the terms of Version 2 of
# the GNU General Public License. A copy of that license should have
@@ -82,29 +75,14 @@ my $LicenseBlock = << '.';
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+# Unless otherwise specified, all modifications, corrections or
+# extensions to this work which alter its source code become the
+# property of Best Practical Solutions, LLC when submitted for
+# inclusion in the work.
#
#
-# CONTRIBUTION SUBMISSION POLICY:
-#
-# (The following paragraph is not intended to limit the rights granted
-# to you to modify and distribute this software under the terms of
-# the GNU General Public License and is only of importance to you if
-# you choose to contribute your changes and enhancements to the
-# community by submitting them to Best Practical Solutions, LLC.)
-#
-# By intentionally submitting any modifications, corrections or
-# derivatives to this work, or any other work intended for use with
-# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-# you are the copyright holder for those contributions and you grant
-# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
-# royalty-free, perpetual, license to use, copy, create derivative
-# works based on those contributions, and sublicense and distribute
-# those contributions and any derivatives thereof.
-#
-# END BPS TAGGED BLOCK }}}
+# END BPS TAGGED BLOCK
+
.
my $Attribution = << '.';
@@ -148,7 +126,6 @@ foreach my $table (@tables) {
$tablemap{'CreatedBy'} = 'User';
$tablemap{'UpdatedBy'} = 'User';
-my %typemap;
$typemap{'id'} = 'ro';
$typemap{'Creator'} = 'auto';
$typemap{'Created'} = 'auto';
@@ -185,27 +162,7 @@ foreach my $table (@tables) {
my $ClassAccessible = "";
my $FieldsPod = "";
my $CreatePod = "";
- my $RecordInit = "";
my %fields;
-
-
- my $introspection = $dbh->prepare("SELECT * from $table where id is null");
- $introspection->execute();
- my @names =@{ $introspection->{'NAME'}};
- my @types = @{$introspection->{'TYPE'}};
- my @is_blob = @{$introspection->{'mysql_is_blob'}};
- my @is_num = @{$introspection->{'mysql_is_num'}};
-
- my %blobness = ();
- my %sqltypes = ();
- my %numeric = ();
- foreach my $name (@names) {
- $sqltypes{$name} = shift @types;
- $blobness{$name} = (shift @is_blob || "0");
- $numeric{$name} = (shift @is_num || "0");
- }
-
-
my $sth = $dbh->prepare("DESCRIBE $table");
$sth->execute;
@@ -213,16 +170,10 @@ foreach my $table (@tables) {
my $field = $row->{'Field'};
my $type = $row->{'Type'};
my $default = $row->{'Default'};
- my $length = 0;
- if ($type =~ /^(?:.*?)\((\d+)\)$/) {
- $length = $1;
- }
$fields{$field} = 1;
#generate the 'accessible' datastructure
- no warnings 'uninitialized';
-
if ( $typemap{$field} eq 'auto' ) {
$ClassAccessible .= " $field =>
{read => 1, auto => 1,";
@@ -236,7 +187,7 @@ foreach my $table (@tables) {
{read => 1, write => 1,";
}
- $ClassAccessible .= " sql_type => $sqltypes{$field}, length => $length, is_blob => $blobness{$field}, is_numeric => $numeric{$field}, ";
+
$ClassAccessible .= " type => '$type', default => '$default'},\n";
#generate pod for the accessible fields
@@ -248,7 +199,7 @@ Returns the current value of $field.
";
- unless ( exists $typemap{$field} && ( $typemap{$field} eq 'auto' || $typemap{$field} eq 'ro' )) {
+ unless ( $typemap{$field} eq 'auto' || $typemap{$field} eq 'ro' ) {
$FieldsPod .= "
=head2 Set$field VALUE
@@ -303,7 +254,7 @@ sub ${field}Obj {
}
- my $Create = "
+ $Create = "
sub Create {
my \$self = shift;
my \%args = (
@@ -355,15 +306,10 @@ sub _Init {
$CollectionClass .= "
- # By default, order by SortOrder
- \$self->OrderByCols(
- { ALIAS => 'main',
- FIELD => 'SortOrder',
- ORDER => 'ASC' },
- { ALIAS => 'main',
- FIELD => 'id',
- ORDER => 'ASC' },
- );
+ # By default, order by name
+ \$self->OrderBy( ALIAS => 'main',
+ FIELD => 'SortOrder',
+ ORDER => 'ASC');
";
}
$CollectionClass .= "
@@ -451,7 +397,7 @@ $ClassAccessible
open( COL, ">$CollectionClassPath" );
print COL $CollectionClass;
- close(COL);
+ close($COL);
}
@@ -492,7 +438,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz
These overlay files can contain new subs or subs to replace existing subs in this module.
-Each of these files should begin with the line
+If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line
no warnings qw(redefine);