Skip to content

Commit

Permalink
use string instead of object for LANGUAGE_HANDLE in ENV
Browse files Browse the repository at this point in the history
  • Loading branch information
gshank committed Jul 30, 2012
1 parent 6d7af78 commit 055a33d
Show file tree
Hide file tree
Showing 17 changed files with 49 additions and 19 deletions.
20 changes: 18 additions & 2 deletions lib/HTML/FormHandler/Field.pm
Expand Up @@ -1138,9 +1138,25 @@ sub language_handle {
return;
}
return $self->get_language_handle if( $self->has_language_handle );
# if language handle isn't set use form language handle if possible
return $self->form->language_handle if ( $self->has_form );
require HTML::FormHandler::I18N;
return $ENV{LANGUAGE_HANDLE} || HTML::FormHandler::I18N->get_handle;
# no form, no language handle. This should only happen when
# testing fields.
my $lh;
if ( $ENV{LANGUAGE_HANDLE} ) {
if ( blessed $ENV{LANGUAGE_HANDLE} ) {
$lh = $ENV{LANGUAGE_HANDLE};
}
else {
$lh = HTML::FormHandler::I18N->get_handle( $ENV{LANGUAGE_HANDLE} );
}
}
else {
require HTML::FormHandler::I18N;
$lh = HTML::FormHandler::I18N->get_handle;
}
$self->set_language_handle($lh);
return $lh;
}

has 'localize_meth' => (
Expand Down
18 changes: 16 additions & 2 deletions lib/HTML/FormHandler/TraitFor/I18N.pm
Expand Up @@ -16,9 +16,11 @@ etc.
The builder for this attribute gets the Locale::Maketext language
handle from the environment variable $ENV{LANGUAGE_HANDLE}:
$ENV{LANGUAGE_HANDLE} = HTML::FormHandler::I18N->get_handle('en_en');
$ENV{LANGUAGE_HANDLE} = 'en_en';
...or creates a default language handler using L<HTML::FormHandler::I18N>.
(Note that earlier versions required an actual object reference in ENV,
which is a bad practice and no longer supported.)
You can pass in an existing L<Locale::MakeText> subclass instance
or create one in a builder.
Expand Down Expand Up @@ -68,7 +70,19 @@ sub _build_language_handle {
if (!$self->isa('HTML::FormHandler') && $self->has_form) {
return $self->form->language_handle();
}
return $ENV{LANGUAGE_HANDLE} || HTML::FormHandler::I18N->get_handle;
my $lh;
if ( $ENV{LANGUAGE_HANDLE} ) {
if ( blessed $ENV{LANGUAGE_HANDLE} ) {
$lh = $ENV{LANGUAGE_HANDLE};
}
else {
$lh = HTML::FormHandler::I18N->get_handle( $ENV{LANGUAGE_HANDLE} );
}
}
else {
$lh = HTML::FormHandler::I18N->get_handle;
}
return $lh;
}

sub _localize {
Expand Down
2 changes: 1 addition & 1 deletion t/basic.t
Expand Up @@ -3,7 +3,7 @@ use warnings;
use Test::More;

use HTML::FormHandler::I18N;
$ENV{LANGUAGE_HANDLE} = HTML::FormHandler::I18N->get_handle('en_en');
$ENV{LANGUAGE_HANDLE} = 'en_en';

use_ok('HTML::FormHandler');

Expand Down
2 changes: 1 addition & 1 deletion t/compound/basic.t
Expand Up @@ -4,7 +4,7 @@ use lib 't/lib';

use_ok( 'HTML::FormHandler::Field::Duration');
use HTML::FormHandler::I18N;
$ENV{LANGUAGE_HANDLE} = HTML::FormHandler::I18N->get_handle('en_en');
$ENV{LANGUAGE_HANDLE} = 'en_en';

my $field = HTML::FormHandler::Field::Duration->new( name => 'duration' );
$field->build_result;
Expand Down
2 changes: 1 addition & 1 deletion t/errors/basic.t
Expand Up @@ -4,7 +4,7 @@ use Test::More;

use_ok( 'HTML::FormHandler' );
use HTML::FormHandler::I18N;
$ENV{LANGUAGE_HANDLE} = HTML::FormHandler::I18N->get_handle('en_en');
$ENV{LANGUAGE_HANDLE} = 'en_en';

{
package My::Form;
Expand Down
2 changes: 1 addition & 1 deletion t/fields/dates.t
Expand Up @@ -4,7 +4,7 @@ use Test::More;


use HTML::FormHandler::I18N;
$ENV{LANGUAGE_HANDLE} = HTML::FormHandler::I18N->get_handle('en_en');
$ENV{LANGUAGE_HANDLE} = 'en_en';

#
# DateMDY
Expand Down
2 changes: 1 addition & 1 deletion t/fields/fields.t
Expand Up @@ -4,7 +4,7 @@ use warnings;
use Test::More;

use HTML::FormHandler::I18N;
$ENV{LANGUAGE_HANDLE} = HTML::FormHandler::I18N->get_handle('en_en');
$ENV{LANGUAGE_HANDLE} = 'en_en';

#
# Boolean
Expand Down
2 changes: 1 addition & 1 deletion t/render/compound2.t
Expand Up @@ -4,7 +4,7 @@ use Test::More;
use HTML::FormHandler::Test;

use HTML::FormHandler::I18N;
$ENV{LANGUAGE_HANDLE} = HTML::FormHandler::I18N->get_handle('en_en');
$ENV{LANGUAGE_HANDLE} = 'en_en';

{
package MyApp::Form::Password;
Expand Down
2 changes: 1 addition & 1 deletion t/render/errors.t
Expand Up @@ -4,7 +4,7 @@ use Test::More;
use HTML::FormHandler::Test;

use HTML::FormHandler::I18N;
$ENV{LANGUAGE_HANDLE} = HTML::FormHandler::I18N->get_handle('en_en');
$ENV{LANGUAGE_HANDLE} = 'en_en';
{
package Test::Form;
use HTML::FormHandler::Moose;
Expand Down
2 changes: 1 addition & 1 deletion t/result/errors.t
Expand Up @@ -4,7 +4,7 @@ use Test::More;
use HTML::FormHandler::Test;

use HTML::FormHandler::I18N;
$ENV{LANGUAGE_HANDLE} = HTML::FormHandler::I18N->get_handle('en_en');
$ENV{LANGUAGE_HANDLE} = 'en_en';

{
package Test::Form;
Expand Down
2 changes: 1 addition & 1 deletion t/validation/dependency.t
@@ -1,7 +1,7 @@
use Test::More;

use HTML::FormHandler::I18N;
$ENV{LANGUAGE_HANDLE} = HTML::FormHandler::I18N->get_handle('en_en');
$ENV{LANGUAGE_HANDLE} = 'en_en';

use DateTime;

Expand Down
2 changes: 1 addition & 1 deletion t/validation/filters.t
Expand Up @@ -8,7 +8,7 @@ use DateTime;
use Scalar::Util qw(blessed);

use HTML::FormHandler::I18N;
$ENV{LANGUAGE_HANDLE} = HTML::FormHandler::I18N->get_handle('en_en');
$ENV{LANGUAGE_HANDLE} = 'en_en';

{
package My::Form;
Expand Down
2 changes: 1 addition & 1 deletion t/validation/types.t
Expand Up @@ -6,7 +6,7 @@ use Test::Exception;
use HTML::FormHandler::Types (':all');

use HTML::FormHandler::I18N;
$ENV{LANGUAGE_HANDLE} = HTML::FormHandler::I18N->get_handle('en_en');
$ENV{LANGUAGE_HANDLE} = 'en_en';

{
package Test::Form;
Expand Down
2 changes: 1 addition & 1 deletion xt/dfv.t
Expand Up @@ -3,7 +3,7 @@ use warnings;
use Test::More;

use HTML::FormHandler::I18N;
$ENV{LANGUAGE_HANDLE} = HTML::FormHandler::I18N->get_handle('en_en');
$ENV{LANGUAGE_HANDLE} = 'en_en';

{
package MyApp::Form::Test;
Expand Down
2 changes: 1 addition & 1 deletion xt/locale.t
Expand Up @@ -74,7 +74,7 @@ $form->field('test_field')->clear_errors;
dies_ok( sub { $form->field('test_field')->add_error('You are not authorized for this archive. See: [<a href="/help/auth">more information</a>], [<a href="/need_auth">request authorization</a>]') }, 'dies on maketext error' );

################ Locale xx_xx set via ENV{LANGUAGE_HANDLE}
$ENV{LANGUAGE_HANDLE} = HTML::FormHandler::I18N->get_handle('xx_xx');
$ENV{LANGUAGE_HANDLE} = 'xx_xx';

# create form w/ locale must work
undef $form;
Expand Down
2 changes: 1 addition & 1 deletion xt/posted.t
Expand Up @@ -3,7 +3,7 @@ use warnings;
use Test::More;

use HTML::FormHandler::I18N;
$ENV{LANGUAGE_HANDLE} = HTML::FormHandler::I18N->get_handle('en_en');
$ENV{LANGUAGE_HANDLE} = 'en_en';

{
package Test::SingleBool;
Expand Down
2 changes: 1 addition & 1 deletion xt/upload.t
Expand Up @@ -5,7 +5,7 @@ use HTML::FormHandler::Test;

use_ok('HTML::FormHandler::Field::Upload');
use HTML::FormHandler::I18N;
$ENV{LANGUAGE_HANDLE} = HTML::FormHandler::I18N->get_handle('en_en');
$ENV{LANGUAGE_HANDLE} = 'en_en';

{
package Mock::Upload;
Expand Down

0 comments on commit 055a33d

Please sign in to comment.