[Catalyst-commits] r9351 - in trunk/Catalyst-Example-InstantCRUD: . lib/Catalyst/Example lib/Catalyst/Helper script t

zby at dev.catalyst.perl.org zby at dev.catalyst.perl.org
Thu Feb 19 21:21:35 GMT 2009


Author: zby
Date: 2009-02-19 21:21:35 +0000 (Thu, 19 Feb 2009)
New Revision: 9351

Modified:
   trunk/Catalyst-Example-InstantCRUD/Makefile.PL
   trunk/Catalyst-Example-InstantCRUD/lib/Catalyst/Example/InstantCRUD.pm
   trunk/Catalyst-Example-InstantCRUD/lib/Catalyst/Helper/InstantCRUD.pm
   trunk/Catalyst-Example-InstantCRUD/script/instantcrud.pl
   trunk/Catalyst-Example-InstantCRUD/t/20.create_dvdzbr.t
Log:
using example database when no DSN

Modified: trunk/Catalyst-Example-InstantCRUD/Makefile.PL
===================================================================
--- trunk/Catalyst-Example-InstantCRUD/Makefile.PL	2009-02-19 19:19:56 UTC (rev 9350)
+++ trunk/Catalyst-Example-InstantCRUD/Makefile.PL	2009-02-19 21:21:35 UTC (rev 9351)
@@ -26,12 +26,11 @@
 #        'Catalyst::Plugin::Authentication::Credential::Password' => 0,
         'Catalyst::Plugin::Session::State::Cookie'               => 0,
         'Catalyst::Plugin::Session::Store::FastMmap'             => 0,
-        'Rose::HTMLx::Form::DBIC'                                => 0.03,
+        'Rose::HTMLx::Form::DBIC'                                => 0.05,
         'Rose::HTMLx::Form::DBIC::FormGenerator'                 => 0,
         'Path::Class'                                            => 0,
 #        'version'                                                => 0,
 #        'URI::Escape'                                            => 0,
-        'File::Spec'                                             => 0,
         'File::Slurp'                                            => 0,
         'Pod::Usage'                                             => 0,
         'List::Util'                                             => 0,

Modified: trunk/Catalyst-Example-InstantCRUD/lib/Catalyst/Example/InstantCRUD.pm
===================================================================
--- trunk/Catalyst-Example-InstantCRUD/lib/Catalyst/Example/InstantCRUD.pm	2009-02-19 19:19:56 UTC (rev 9350)
+++ trunk/Catalyst-Example-InstantCRUD/lib/Catalyst/Example/InstantCRUD.pm	2009-02-19 21:21:35 UTC (rev 9351)
@@ -1,6 +1,6 @@
 package Catalyst::Example::InstantCRUD;
 
-use version; $VERSION = qv('0.0.25');
+use version; $VERSION = qv('0.0.26');
 
 use warnings;
 use strict;

Modified: trunk/Catalyst-Example-InstantCRUD/lib/Catalyst/Helper/InstantCRUD.pm
===================================================================
--- trunk/Catalyst-Example-InstantCRUD/lib/Catalyst/Helper/InstantCRUD.pm	2009-02-19 19:19:56 UTC (rev 9350)
+++ trunk/Catalyst-Example-InstantCRUD/lib/Catalyst/Helper/InstantCRUD.pm	2009-02-19 21:21:35 UTC (rev 9351)
@@ -1,7 +1,8 @@
 package Catalyst::Helper::InstantCRUD;
 use base Catalyst::Helper;
+use Path::Class;
 
-use version; $VERSION = qv('0.0.6');
+use version; $VERSION = qv('0.0.7');
 
 use warnings;
 use strict;
@@ -15,7 +16,7 @@
 sub _mk_rootclass {
     my $self = shift;
     $self->render_file( 'rootclass',
-        File::Spec->catfile( $self->{c}, "Root.pm" ) );
+        file( $self->{c}, "Root.pm" ) );
 }
 
 sub _mk_config {
@@ -23,7 +24,7 @@
     my $dir       = $self->{dir};
     my $appprefix = $self->{appprefix};
     $self->render_file( 'config',
-        File::Spec->catfile( $dir, "$appprefix.yml" ) );
+        file( $dir, "$appprefix.yml" ) );
 }
 
 # No CHANGES file (already created)

Modified: trunk/Catalyst-Example-InstantCRUD/script/instantcrud.pl
===================================================================
--- trunk/Catalyst-Example-InstantCRUD/script/instantcrud.pl	2009-02-19 19:19:56 UTC (rev 9350)
+++ trunk/Catalyst-Example-InstantCRUD/script/instantcrud.pl	2009-02-19 21:21:35 UTC (rev 9351)
@@ -6,7 +6,7 @@
 use strict;
 use Getopt::Long;
 use Pod::Usage;
-use File::Spec;
+use Path::Class;
 use File::Slurp;
 use Catalyst::Helper::InstantCRUD;
 use Catalyst::Utils;
@@ -15,7 +15,6 @@
 use DBIx::Class::Schema::Loader::RelBuilder;
 use List::Util qw(first);
 use DBI;
-use File::Temp;
 
 
 my $help     = 0;
@@ -36,7 +35,6 @@
 my %authz;
 
 
-#print create_example_db(), "\n";
 #exit;
 
 GetOptions(
@@ -84,13 +82,22 @@
 
 my $appdir = $appname;
 $appdir =~ s/::/-/g;
-local $FindBin::Bin = File::Spec->catdir($appdir, 'script');
+if( ! $dsn ){
+    my $db_file = lc $appname . '.db';
+    $db_file =~ s/::/_/g;
+    $db_file = file( $appdir, $db_file )->absolute->stringify;
+    create_example_db( $db_file );
+    print "Database created at $db_file\n";
+    $dsn = "dbi:SQLite:dbname=$db_file";
+}
 
+local $FindBin::Bin = dir($appdir, 'script');
+
 make_schema_at(
     $appname . '::' . $schema_name,
     { 
 #        debug => 1, 
-        dump_directory => "$appdir/lib", 
+        dump_directory => file( $appdir , 'lib')->stringify, 
         use_namespaces => 1,
         default_resultset_class => '+DBIx::Class::ResultSet::RecursiveUpdate', 
     },
@@ -111,7 +118,7 @@
     my $overload_method = first { $_ =~ /name/i } $result_source->columns;
     $overload_method ||= 'id';
     my @path = split /::/ , $appname . '::' . $schema_name;
-    my $file = File::Spec->rel2abs( File::Spec->catfile($appdir, 'lib', @path, 'Result', $result_class . '.pm' ) );
+    my $file = file( $appdir, 'lib', @path, 'Result', $result_class . '.pm' )->absolute->stringify;
     my $content = File::Slurp::slurp( $file );
     my $addition = q/use overload '""' => sub {$_[0]->/ . $overload_method . "}, fallback => 1;\n";
     for my $m ( @{$m2m->{$result_class}} ){
@@ -190,8 +197,8 @@
 }
     
 sub create_example_db {
-    my $tmp = File::Temp->new( UNLINK => 0, SUFFIX => '.db' );
-    my $dsn ||= 'dbi:SQLite:dbname=' . $tmp->filename;
+    my $filename = shift;
+    my $dsn ||= 'dbi:SQLite:dbname=' . $filename;
     my $dbh = DBI->connect( $dsn ) or die "Cannot connect to $dsn\n";
 
     my $sql;
@@ -200,11 +207,11 @@
         $sql = <DATA>;
     }
 
-    for my $statement ( split /^\s*$/m, $sql ){
-        warn "executing: \n$statement";
+    for my $statement ( split /;/, $sql ){
+        next if $statement =~ /\A\s*\z/;
+#        warn "executing: \n$statement";
         $dbh->do($statement) or die $dbh->errstr;
     }
-    return $tmp->filename;
 }
 
 
@@ -374,6 +381,7 @@
 =cut
 
 __DATA__
+BEGIN TRANSACTION;
 CREATE TABLE dvd (
   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
   name VARCHAR(255) DEFAULT NULL,
@@ -384,33 +392,77 @@
   alter_date datetime DEFAULT NULL,
   hour time DEFAULT NULL
 );
-
+INSERT INTO "dvd" VALUES(2,'Hohoho',1,1,1,'1990-08-23','2000-02-17 10:00:00','10:00');
+DELETE FROM sqlite_sequence;
+INSERT INTO "sqlite_sequence" VALUES('role',2);
+INSERT INTO "sqlite_sequence" VALUES('tag',25);
+INSERT INTO "sqlite_sequence" VALUES('user',3);
+INSERT INTO "sqlite_sequence" VALUES('dvd',4);
 CREATE TABLE dvdtag (
   dvd INTEGER NOT NULL DEFAULT '0' REFERENCES dvd (id),
   tag INTEGER NOT NULL DEFAULT '0' REFERENCES tag (id),
   PRIMARY KEY (dvd,tag)
 );
-
+INSERT INTO "dvdtag" VALUES(2,1);
+INSERT INTO "dvdtag" VALUES(2,2);
+INSERT INTO "dvdtag" VALUES(2,5);
+INSERT INTO "dvdtag" VALUES(2,6);
+INSERT INTO "dvdtag" VALUES(3,1);
+INSERT INTO "dvdtag" VALUES(0,7);
+INSERT INTO "dvdtag" VALUES(4,1);
+INSERT INTO "dvdtag" VALUES(1,0);
+INSERT INTO "dvdtag" VALUES(1,1);
+INSERT INTO "dvdtag" VALUES(1,2);
+INSERT INTO "dvdtag" VALUES(1,4);
+INSERT INTO "dvdtag" VALUES(1,6);
 CREATE TABLE role (
   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
   role VARCHAR(255)
 );
-
+INSERT INTO "role" VALUES(1,'Write');
+INSERT INTO "role" VALUES(2,'Read');
 CREATE TABLE tag (
   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
   name VARCHAR(255) DEFAULT NULL
 );
-
+INSERT INTO "tag" VALUES(1,'Action');
+INSERT INTO "tag" VALUES(2,'Romance');
+INSERT INTO "tag" VALUES(3,'Tag1');
+INSERT INTO "tag" VALUES(4,'Tag2');
+INSERT INTO "tag" VALUES(5,'Tag3');
+INSERT INTO "tag" VALUES(6,'Tag4');
+INSERT INTO "tag" VALUES(8,'aa');
+INSERT INTO "tag" VALUES(9,'aaa');
+INSERT INTO "tag" VALUES(10,'aaaa');
+INSERT INTO "tag" VALUES(11,'aaaaa');
+INSERT INTO "tag" VALUES(12,'aaaaa');
+INSERT INTO "tag" VALUES(13,'aaaaaa');
+INSERT INTO "tag" VALUES(14,'aaaaaaa');
+INSERT INTO "tag" VALUES(15,'aaaaaaaa');
+INSERT INTO "tag" VALUES(16,'aaaaaaaaa');
+INSERT INTO "tag" VALUES(17,'aaaaaaaaaa');
+INSERT INTO "tag" VALUES(18,'aaaaaaaaaaa');
+INSERT INTO "tag" VALUES(19,'aaaaaaaaaaaa');
+INSERT INTO "tag" VALUES(20,'aaaaaaaaaaaaa');
+INSERT INTO "tag" VALUES(21,'aaaaaaaaaaaaaa');
+INSERT INTO "tag" VALUES(22,'aaaaaaaaaaaaaaa');
+INSERT INTO "tag" VALUES(23,'aaaaaaaaaaaaaaaa');
+INSERT INTO "tag" VALUES(24,'aaaaaaaaaaaaaaaaa');
+INSERT INTO "tag" VALUES(25,'aaaaaaaaaaaaaaaaaa');
 CREATE TABLE user (
   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
   username VARCHAR(255) DEFAULT NULL,
   password VARCHAR(255) DEFAULT NULL,
   name VARCHAR(255) DEFAULT NULL
 );
-
+INSERT INTO "user" VALUES(1,'jgda','35a2c6fae61f8077aab61faa4019722abf05093c','Jonas Alves');
+INSERT INTO "user" VALUES(2,'isa','59dc310530b44e8dd1231682b4cc5f2458af1c60','Isa');
 CREATE TABLE user_role (
   user INTEGER NOT NULL DEFAULT '0' REFERENCES user (id),
   role INTEGER NOT NULL DEFAULT '0' REFERENCES role (id),
   PRIMARY KEY (user, role)
 );
-
+INSERT INTO "user_role" VALUES(1,1);
+INSERT INTO "user_role" VALUES(1,2);
+INSERT INTO "user_role" VALUES(3,0);
+COMMIT;

Modified: trunk/Catalyst-Example-InstantCRUD/t/20.create_dvdzbr.t
===================================================================
--- trunk/Catalyst-Example-InstantCRUD/t/20.create_dvdzbr.t	2009-02-19 19:19:56 UTC (rev 9350)
+++ trunk/Catalyst-Example-InstantCRUD/t/20.create_dvdzbr.t	2009-02-19 21:21:35 UTC (rev 9351)
@@ -10,13 +10,8 @@
 
 rmtree( ["t/tmp/$app", "t/tmp/$lcapp.db"] );
 
-my $testfile = file('t', 'tmp', "$lcapp.db")->absolute->stringify;
-my $origtestfile = file('t', 'var', "$lcapp.db")->absolute->stringify;
+`cd t/tmp; $^X -I../../lib ../../script/instantcrud.pl -name=$app`;
 
-copy $origtestfile, $testfile;
-
-`cd t/tmp; $^X -I../../lib ../../script/instantcrud.pl -name=$app -dsn='dbi:SQLite:dbname=$testfile'`;
-
 ok( -f "t/tmp/$app/lib/$app/DBSchema.pm", 'DBSchema creation');
 
 




More information about the Catalyst-commits mailing list