NAME

IRC::Toolkit::Role::CaseMap - Role for classes that track IRC casemapping

SYNOPSIS

package MyIRC;
use Moo;

has casemap => (
  is  => 'rw',
  default => sub { 'rfc1459' },
  coerce  => sub { lc $_[0] },
);

with 'IRC::Toolkit::Role::CaseMap';

sub mymeth {
  my ($self, $nickname, $one, $two) = @_;

  my $lowered = $self->lower( $nickname );
  my $uppered = $self->upper( $nickname );

  if ( $self->equal( $one, $two ) ) {
    ...
  }
}

DESCRIPTION

A Role::Tiny role that provides convenient helper methods for classes that track IRC casemapping, such as IRC client libraries.

This role requires a casemap attribute that returns one of 'rfc1459', 'ascii', or 'strict-rfc1459' -- see IRC::Toolkit::Case for details on IRC casemap issues.

lower

Returns the IRC-lowercased string.

upper

Returns the IRC-uppercased string.

equal

Expects two strings; returns true if they are equal per the current casemap rules. Returns empty list if the strings do not match.

AUTHOR

Jon Portnoy <avenj@cobaltirc.org>