Mercurial > pub > Impl
view Lib/IMPL/Resources/Format.pm @ 63:76b878ad6596
Added serialization support for the IMPL::Object::List
More intelligent Exception message
Fixed encoding support in the actions
Improoved tests
Minor fixes
author | wizard |
---|---|
date | Mon, 15 Mar 2010 02:38:09 +0300 |
parents | 16ada169ca75 |
children | 196bf443b5e1 |
line wrap: on
line source
package IMPL::Resources::Format; use strict; use warnings; require Exporter; our @ISA = qw(Exporter); our @EXPORT_OK = qw(&FormatMessage); sub FormatMessage { my ($string,$args) = @_; $string =~ s/%(\w+(?:\.\w+)*)%/_getvalue($args,$1,"\[$1\]")/ge; return $string; } sub _getvalue { my ($obj,$path,$default) = @_; foreach my $chunk (split /\./,$path) { if (eval { $obj->can( $chunk ) } ) { $obj = $obj->$chunk(); } elsif (UNIVERSAL::isa($obj,'HASH')) { $obj = $obj->{$chunk}; } else { return $default; } } return $obj; } 1;