Acme-Monta

 view release on metacpan or  search on metacpan

lib/Acme/Monta.pm  view on Meta::CPAN



sub new {
    my $class = shift;
    my %args  = @_;

    my $self = bless {
	_start => $args{start} ? $args{start} : '<monta>',
	_end => $args{end} ? $args{end} : '</monta>',

	_open_font   => $args{open_font} ? $args{open_font} : '#000',
	_open_back   => $args{open_back} ? $args{open_back} : '#fff',
	_close_font  => $args{close_font} ? $args{close_font} : '#000',
	_close_back  => $args{close_back} ? $args{close_back} : '#000',
	_close_img   => $args{close_img} ? 'url(' . $args{close_img} . ')' : '',

	_replace_tag => $args{replace_tag} ? $args{replace_tag} : 'span',

	_cursor => $args{cursor} ? $args{cursor} : 'pointer',

    }, $class;

    return $self;
}

sub montaize {
    my $self = shift;
    my $data = shift;

    $data =~ s|$self->{_start}(.*?)$self->{_end}|
	'<' . $self->{_replace_tag} . ' style="' .
	'cursor:' . $self->{_cursor} . ';' .
	'color:' . $self->{_close_font} . ';' .
	'background-color:' . $self->{_close_back} . ';' .
	'background-image:' . $self->{_close_img} . ';' .
	'" onClick="' . 
	'this.style.color = \'' . $self->{_open_font} . '\';' .
	'this.style.backgroundColor = \'' . $self->{_open_back} . '\';' .
	'this.style.backgroundImage = \'\';' .
	'this.style.cursor = \'\';' .
	'">' . $1 . '</' . $self->{_replace_tag} . '>'
	|goie;

    return $data;
}

1;

lib/Acme/Monta.pm  view on Meta::CPAN


It is TV of Japan and a popular presentation technique.
It is called 'MONTA METHOD'.

=head1 METHOD

=over 4

=item new (%args)

  Acme::Monta->new(close_font => '#0f0', close_back => '#0f0');

=item montaize (content)

  Contents are converted. 

=head2 ARGS

=over 4

=item start

  change start tag.

=item end

  change end tag.

=item open_font

  change open font color.

=item open_back

  change open background color.

=item close_font

  change close font color.

=item close_back

  change close background color.

=item close_img

  set close background image url.

=item replace_tag

t/montaize_openclose.t  view on Meta::CPAN

# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl Acme-Monta.t'

#########################

# change 'tests => 1' to 'tests => last_test_to_print';

use Test::More tests => 2;
BEGIN { use_ok('Acme::Monta') };

my $monta = Acme::Monta->new(open_font => '#f00', open_back => '#00f', close_font => '#0f0', close_back => '#0f0');
my $data = 'this is <monta>secret words</monta>.';
ok($monta->montaize($data) eq 'this is <span style="cursor:pointer;color:#0f0;background-color:#0f0;background-image:;" onClick="this.style.color = \'#f00\';this.style.backgroundColor = \'#00f\';this.style.backgroundImage = \'\';this.style.cursor = \...



( run in 1.677 second using v1.01-cache-2.11-cpan-ceb78f64989 )