Alice

 view release on metacpan or  search on metacpan

lib/Alice/Window.pm  view on Meta::CPAN

package Alice::Window;

use Encode;
use utf8;
use Alice::MessageBuffer;
use Text::MicroTemplate qw/encoded_string/;
use IRC::Formatting::HTML qw/irc_to_html/;
use Any::Moose;
use AnyEvent;

my $url_regex = qr/\b(https?:\/\/(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/i;

has buffer => (
  is       => 'rw',
  required => 1,
);

has title => (
  is       => 'ro',
  isa      => 'Str',
  required => 1,
);

has topic => (
  is      => 'rw',
  isa     => 'HashRef[Str|Undef]',
  default => sub {{
    string => 'no topic set',
    author => '',
    time   => time,
  }}
);

has id => (
  is       => 'ro',
  required => 1,
);

has disabled => (
  is       => 'rw',
  default  => 0,
);

has render => (
  is       => 'ro',
  required => 1,
);

sub sort_name {
  my $name = lc $_[0]->title;
  $name =~ s/^[^\w\d]+//;
  $name;
}

sub pretty_name {
  my $self = shift;
  if ($self->is_channel) {
    return substr $self->title, 1;
  }
  return $self->title;
}

has type => (
  is => 'ro',



( run in 0.891 second using v1.01-cache-2.11-cpan-39bf76dae61 )