Advertisement
Guest User

Untitled

a guest
Jun 11th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.14 KB | None | 0 0
  1. exodist@dev1 $ cat lib/OpenExodus/Model/Schema.pm                                [~/projects/oe.net]
  2. package OpenExodus::Model::Schema;
  3. use strict;
  4. use warnings;
  5.  
  6. use Fey::DBIManager::Source;
  7. use Fey::Loader;
  8. use YAML qw/LoadFile/;
  9. use Fey::ORM::Schema;
  10. use Moose;
  11. use MooseX::ClassAttribute;
  12.  
  13. class_has config => (
  14.     isa => 'Hash',
  15.     is => 'ro',
  16.     default => sub {
  17.         my $file = $ENV{'RTK_DB_CONF'} || 'dbconf.yaml';
  18.         return LoadFile( $file ) if -e $file;
  19.         return {};
  20.     },
  21. );
  22.  
  23. class_has source => (
  24.     isa => 'Fey::DBIManager::Source',
  25.     is => 'ro',
  26.     default => sub {
  27.         Fey::DBIManager::Source->new(
  28.             dsn      => 'dbi:Pg:dbname=' . ($ENV{RTK_DB} || __PACKAGE__->config->{database}),
  29.             username => $ENV{RTK_DB_USER} || __PACKAGE__->config->{username},
  30.             password => $ENV{RTK_DB_PASS} || __PACKAGE__->config->{password},
  31.         );
  32.     },
  33. );
  34.  
  35. sub dbh {
  36.     my $class = shift;
  37.     return $class->source->dbh();
  38. }
  39.  
  40. has_schema( Fey::Loader->new( dbh => __PACKAGE__->dbh() )->make_schema() );
  41.  
  42. __PACKAGE__->DBIManager()->add_source( __PACKAGE__->source );
  43.  
  44. 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement