Acme-VOYAGEGROUP-ConferenceRoom
view release on metacpan or search on metacpan
lib/Acme/VOYAGEGROUP/ConferenceRoom.pm view on Meta::CPAN
},
atlantis => {
lines => [3..4],
normalization => qr/^ãã¨ããã¦ãã|ã¢ãã©ã³ãã£ã¹$/ms,
position => qr{ \s(/*\|\s+\|)$ }x,
},
pacifis => {
lines => [3..5],
normalization => qr/^ã±ããµãã|ãã·ãã£ã¹$/ms,
position => qr{ \s(/*\|)$ }x,
},
zipang => {
lines => [7],
normalization => qr/^ãã±ãã|ã¸ãã³ã°$/ms,
position => qr{ ^(\|\s+\|/*)\s }x,
},
lemuria => {
lines => [7],
normalization => qr/^ãããã|ã¬ã ãªã¢$/ms,
position => qr{ \s(/*\|)$ }x,
},
africa => {
lines => [9],
normalization => qr/^ããµãã|ã¢ããªã«$/ms,
position => qr{ \s(/*\|\s+\|\s+\|)$ }x,
},
eurasia => {
lines => [9],
normalization => qr/^ãã¼ããã|ã¦ã¼ã©ã·ã¢$/ms,
position => qr{ \s(/*\|)$ }x,
},
north_america => {
lines => [11],
normalization => qr/^ã®ã¼ããããã|ãã¼ã¹ã¢ã¡ãªã«$/ms,
position => qr{ \s(/*\|)$ }x,
},
south_america => {
lines => [11],
normalization => qr/^ããããããã|ãµã¦ã¹ã¢ã¡ãªã«$/ms,
position => qr{ \s(/*\|\s+\|)$ }x,
},
australlia => {
lines => [11],
normalization => qr/^ãã¼ãã¨ããã|ãªã¼ã¹ãã©ãªã¢$/ms,
position => qr{ \s(/*\|\s+\|\s+\|\s+\|)$ }x,
},
antarctica => {
lines => [11],
normalization => qr/^ãããã¼ãã¦ãã|ã¢ã³ã¿ã¼ã¯ãã£ã«$/ms,
position => qr{ \s(/*\|\s+\|\s+\|\s+\|\s+\|)$ }x,
},
ajito => {
lines => [15..16],
normalization => qr/^ããã¨|ã¢ã¸ã$/ms,
position => qr{ \s(/*\|)$ }x,
},
);
my %OUTPUT_OF = (
color => 'Acme::VOYAGEGROUP::ConferenceRoom::Output::Color',
json => 'Acme::VOYAGEGROUP::ConferenceRoom::Output::JSON',
xml => 'Acme::VOYAGEGROUP::ConferenceRoom::Output::XML',
message_pack => 'Acme::VOYAGEGROUP::ConferenceRoom::Output::MessagePack',
);
sub conference_room {
my $room_name = shift or croak "Conference Room Not Found";
my $output_type = shift || 'color';
$room_name = _normalize($room_name);
my $process = $PROCESS_OF{$room_name};
croak "Conference Room Not Found: $room_name" unless $process;
croak "Mistake Position: $process->{position}" if $process->{position} !~ m/\s(\^?).+?(\$?)\s/xms;
my @lines = split "\n", FLOOR_PLAN;
my($head, $tail) = ($1) ? ('', '/') : ('/', '');
for my $i (@{ $process->{lines} }) {
1 while $lines[$i] =~ s{$process->{position}}{$head$1$tail};
}
if ($output_type ne 'none') {
my $module = $OUTPUT_OF{$output_type};
croak "No Type: $output_type" unless $module;
return $module->convert(\@lines) if $module->use;
}
join "\n", @lines;
}
sub _normalize {
my $room_name = shift;
for my $normalized_room_name (keys %PROCESS_OF) {
return $normalized_room_name
if $room_name =~ $PROCESS_OF{$normalized_room_name}->{normalization};
}
lc($room_name);
}
1;
__END__
=encoding utf-8
=head1 NAME
Acme::VOYAGEGROUP::ConferenceRoom - It's new $module
=head1 SYNOPSIS
use Acme::VOYAGEGROUP::ConferenceRoom;
=head1 DESCRIPTION
Acme::VOYAGEGROUP::ConferenceRoom is ...
=head1 LICENSE
Copyright (C) monmon.
( run in 0.882 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )