The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#
# This file is part of Catalyst-Helper-HTML-FormHandler-Scripts
#
# This software is Copyright (c) 2011 by Chris Weyl.
#
# This is free software, licensed under:
#
#   The GNU Lesser General Public License, Version 2.1, February 1999
#
package Catalyst::Helper::HTML::FormHandler::Scripts;
{
  $Catalyst::Helper::HTML::FormHandler::Scripts::VERSION = '0.001';
}

# ABSTRACT: Create a script/myapp_hfh.pl to help with forms

use namespace::autoclean;
use common::sense;

use File::Spec;

sub mk_stuff {
    my ($self, $helper, $args) = @_;

    my $base = $helper->{base};
    my $app  = lc $helper->{app};

    $app =~ s/::/_/g;

    my $script = File::Spec->catfile($base, 'script', $app.'_hfh.pl');
    $helper->render_file('hfh', $script);
    chmod 0755, $script;
}


1;




=pod

=head1 NAME

Catalyst::Helper::HTML::FormHandler::Scripts - Create a script/myapp_hfh.pl to help with forms

=head1 VERSION

version 0.001

=head1 SYNOPSIS

    ./script/myapp_create.pl HTML::FormHandler::Scripts

=head1 DESCRIPTION

This is a Catalyst helper module that builds a
L<HTML::FormHandler> form for you, from your L<DBIx::Class> schema,
using L<HTML::FormHandler::Model::DBIC>.

VERY EARLY CODE: things may yet change, but shouldn't impact older versions
(unless you regenerate the script).

=head1 DEPENDENCIES

The generated script depends on: L<HTML::FormHandler::Generator::DBIC>,
L<Config::JFDI>, L<opts>, L<aliased>.

=head1 SEE ALSO

L<DBIx::Class>, L<HTML::FormHandler>, L<HTML::FormHandler::Model::DBIC>.

=head1 AUTHOR

Chris Weyl <cweyl@alumni.drew.edu>

=head1 COPYRIGHT AND LICENSE

This software is Copyright (c) 2011 by Chris Weyl.

This is free software, licensed under:

  The GNU Lesser General Public License, Version 2.1, February 1999

=cut


__DATA__
__hfh__
#!/usr/bin/env perl

use strict;
use warnings;

use FindBin;
use lib "$FindBin::Bin/../lib";

use aliased 'HTML::FormHandler::Generator::DBIC' => 'Generator';
use opts;
use Class::MOP;
use Config::JFDI;

opts
    my $schema => { isa => 'Str', default  => 'DB::Schema' },
    my $model  => { isa => 'Str', default  => 'Model::DB'  },
    my $rs     => { isa => 'Str', required => 1            },
    ;

$schema = "[% app %]::$schema";

# if we die, we die
Class::MOP::load_class($schema);

my $connect_info = Config::JFDI
    ->new(name => '[% app %]')
    ->get
    ->{$model}
    ->{'connect_info'}
    ;

my $gen = Generator->new(
    db_dsn      => $connect_info->{dsn},
    schema_name => $schema,
    rs_name     => $rs,
);

print $gen->generate_form;

1;