AnyEvent-Mac-Pasteboard

 view release on metacpan or  search on metacpan

lib/AnyEvent/Mac/Pasteboard.pm  view on Meta::CPAN

package AnyEvent::Mac::Pasteboard;

use strict;
use warnings;
use 5.008;
our $VERSION = '0.03';

use AnyEvent;
use Mac::Pasteboard ();
use Scalar::Util qw(looks_like_number);
use Time::HiRes;

our $DEFAULT_INTERVAL = 5;

#my $NATURAL_NUMBER_RE = qr/^[1-9][0-9]*$/;

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

    my $on_change   = delete $args{on_change}   || sub { };
    my $on_unchange = delete $args{on_unchange} || undef;
    my $on_error    = delete $args{on_error}    || sub { die @_; };
    my $interval    = delete $args{interval}    || $DEFAULT_INTERVAL;
    my $multibyte   = delete $args{multibyte}   || 1; # 1 is TRUE

    if (   !defined $interval
        or (ref $interval eq 'ARRAY' && @$interval != grep { looks_like_number($_) && $_ > 0 } @$interval )
        or (!ref $interval && !looks_like_number($interval) ) ) {
        $on_error->(qq(argument "interval" is natural number or arrayref contained its.));
    }

    my @interval = ref $interval eq 'ARRAY' ? @$interval : ($interval);
    my $interval_idx = 0;

    my $self = bless {}, $class;

    my ($previous_content, $current_content);
    $previous_content = $current_content = $self->{content}



( run in 0.307 second using v1.01-cache-2.11-cpan-64827b87656 )