From 847140b59311da9b022e5301cb5c4e3fe230501a Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Fri, 19 Feb 2010 13:35:49 -0600 Subject: make add_entry also accept arguments for Locale::PO->new --- lib/Locale/POFileManager/File.pm | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/lib/Locale/POFileManager/File.pm b/lib/Locale/POFileManager/File.pm index acdd0aa..839cde2 100644 --- a/lib/Locale/POFileManager/File.pm +++ b/lib/Locale/POFileManager/File.pm @@ -25,9 +25,10 @@ has entries => ( builder => '_build_entries', init_arg => undef, handles => { - entries => 'elements', - add_entry => 'push', - msgids => [ map => sub { my $m = $_->msgid; $m =~ s/^"|"$//g; $m } ], + entries => 'elements', + _add_entry => 'push', + msgids => + [ map => sub { my $m = $_->msgid; $m =~ s/^"|"$//g; $m } ], }, ); @@ -44,6 +45,18 @@ sub entry_for { return grep { $_->msgid eq $msgid } $self->entries; } +sub add_entry { + my $self = shift; + if (@_ == 1) { + $self->_add_entry($_[0]); + } + else { + my %args = @_; + $args{"-$_"} = delete $args{$_} for keys %args; + $self->_add_entry(Locale::PO->new(%args)); + } +} + sub save { my $self = shift; @@ -80,11 +93,10 @@ sub add_stubs_from { if (reftype($msgstr) && reftype($msgstr) eq 'CODE') { $msgstr = $msgstr->(lang => $self->language, msgid => $missing); } - my $entry = Locale::PO->new( - -msgid => $missing, - defined($msgstr) ? (-msgstr => $msgstr) : (), + $self->add_entry( + msgid => $missing, + defined($msgstr) ? (msgstr => $msgstr) : (), ); - $self->add_entry($entry); } $self->save; -- cgit v1.2.3-54-g00ecf