Rose-HTML-Objects
view release on metacpan or search on metacpan
lib/Rose/HTML/Object.pm view on Meta::CPAN
sub import
{
my($class) = shift;
foreach my $arg (@_)
{
if($arg eq ':customize')
{
$class->import_methods(
{ target_class => (caller)[0] },
qw(object_type_class_exists object_type_class_keys
delete_object_type_class object_type_classes
clear_object_type_classes object_type_class
inherit_object_type_classes object_type_classes_cache
inherit_object_type_class add_object_type_classes
delete_object_type_classes add_object_type_class
localizer locale default_localizer default_locale));
}
else
{
lib/Rose/HTML/Object.pm view on Meta::CPAN
# # this package (MyTag)
# MyOtherTag->import_methods('foo', 'bar');
# If method dispatch was breadth-first, I probably wouldn't need this...
sub import_methods
{
my($this_class) = shift;
my $options = ref $_[0] && ref $_[0] eq 'HASH' ? shift : {};
my $target_class = $options->{'target_class'} || (caller)[0];
my(@search_classes, @parents);
@parents = ($this_class);
while(my $class = shift(@parents))
{
push(@search_classes, $class);
no strict 'refs';
lib/Rose/HTML/Object/Exporter.pm view on Meta::CPAN
return $Imported{$class}{$symbol};
}
our $Target_Class;
sub import
{
my($class) = shift;
my $target_class = $Target_Class || (caller)[0];
my($force, @symbols, %import_as, $imported);
foreach my $arg (@_)
{
if($arg =~ /^-?-force$/)
{
$force = 1;
}
elsif($arg =~ /^:(.+)/)
lib/Rose/HTML/Object/Message/Localizer.pm view on Meta::CPAN
if($parent->can('parent'))
{
$parent = $parent->parent;
}
if($parent && $parent->isa('Rose::HTML::Object::Error'))
{
$parent = $parent->parent;
}
my $calling_class = $parent ? ref($parent) : $args{'caller'} || (caller)[0];
my $first_parent = $parent;
my $args = $args{'args'} || $message->args;
my $locale = $args{'locale'} || $message->locale || $self->locale;
my $id = $message->id;
my $variant = $args{'variant'} ||=
$self->select_variant_for_message(id => $id,
lib/Rose/HTML/Object/Message/Localizer.pm view on Meta::CPAN
sub import_message_ids
{
my($self) = shift;
if($Rose::HTML::Object::Exporter::Target_Class)
{
$self->messages_class->import(@_);
}
else
{
local $Rose::HTML::Object::Exporter::Target_Class = (caller)[0];
$self->messages_class->import(@_);
}
}
sub import_error_ids
{
my($self) = shift;
@_ = (':all') unless(@_);
if($Rose::HTML::Object::Exporter::Target_Class)
{
$self->errors_class->import(@_);
}
else
{
local $Rose::HTML::Object::Exporter::Target_Class = (caller)[0];
$self->errors_class->import(@_);
}
}
sub add_localized_message
{
my($self, %args) = @_;
my $id = $args{'id'} || $self->generate_message_id;
my $name = $args{'name'} || croak "Missing name for new localized message";
lib/Rose/HTML/Object/Message/Localizer.pm view on Meta::CPAN
sub get_localized_message_text
{
my($self, %args) = @_;
my $id = $args{'id'};
my $name = $args{'name'};
my $locale = $args{'locale'} || $self->locale;
my $variant = $args{'variant'} || DEFAULT_VARIANT;
my $from_class = $args{'from_class'};
$from_class ||= (caller)[0];
$name ||= $self->get_message_name($id);
my $msgs = $self->localized_messages_hash;
# Try this twice: before and after loading messages
foreach my $try (1, 2)
{
no warnings 'uninitialized';
if(exists $msgs->{$name} && exists $msgs->{$name}{$locale})
lib/Rose/HTML/Object/Message/Localizer.pm view on Meta::CPAN
if(@_ > 1)
{
%args = @_;
}
else
{
$args{'from_class'} = $_[0];
}
my $from_class = $args{'from_class'} || (caller)[0];
no strict 'refs';
my $fh = \*{"${from_class}::DATA"};
if(fileno($fh))
{
local $/ = "\n";
if($Data_Pos{$from_class})
{
lib/Rose/HTML/Object/Messages.pm view on Meta::CPAN
$class->use_private_messages;
$class->init_export_tags;
if($Rose::HTML::Object::Exporter::Target_Class)
{
$class->SUPER::import(@_);
}
else
{
local $Rose::HTML::Object::Exporter::Target_Class = (caller)[0];
$class->SUPER::import(@_);
}
}
our %Private;
sub use_private_messages
{
my($class) = shift;
( run in 1.076 second using v1.01-cache-2.11-cpan-a3c8064c92c )