| Youri-Utils documentation | Contained in the Youri-Utils distribution. |
Youri::Utils - Youri shared functions
This module implement some helper functions for all youri applications.
Create an instance from a plugin implementing given interface, using given configuration and local options. Returns a plugin instance, or undef if something went wrong.
Copyright (C) 2002-2006, YOURI project
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Youri-Utils documentation | Contained in the Youri-Utils distribution. |
# $Id: /mirror/youri/soft/Utils/trunk/lib/Youri/Utils.pm 2334 2007-03-23T08:48:22.544634Z guillomovitch $ package Youri::Utils;
use strict; use warnings; use base qw(Exporter); use Carp; use DateTime; use English qw(-no_match_vars); use UNIVERSAL::require; use version; our $VERSION = qv('0.2.1'); our @EXPORT = qw( create_instance log_message );
sub create_instance { my ($interface, $config, $options) = @_; croak 'No interface given' unless $interface; croak 'No config given' unless $config; my $class = $config->{class}; if (!$class) { carp "No class given, can't load plugin"; return; } # ensure loaded $class->require(); # check interface if (!$class->isa($interface)) { carp "$class is not a $interface"; return; } return $class->new( $config->{options} ? %{$config->{options}} : (), $options ? %{$options} : (), ); }
sub log_message { my ($message, $time, $process) = @_; print DateTime->now()->set_time_zone('local')->strftime('[%H:%M:%S] ') if $time; print "$PID " if $process; print "$message\n"; }
1;