#!/usr/bin/env perl
use strict;
use warnings;
use Test::More;
{
package Foo;
use Moose;
use Bread::Board::Declare;
has foo => (
reader => 'get_foo',
writer => 'set_foo',
accessor => 'foo',
predicate => 'has_foo',
clearer => 'clear_foo',
value => 'foo',
);
has bool => (
traits => ['Bool'],
isa => 'Bool',
value => 0,
handles => {
bool_unset => 'unset',
bool_set => 'set',
bool_not => 'not',
bool_toggle => 'toggle',
},
);
has string => (
traits => ['String'],
isa => 'Str',
value => '',
default => '', # XXX: ugh, needed because of the default_default stuff
handles => {
string_prepend => 'prepend',
string_chop => 'chop',
string_substr => 'substr',
string_match => 'match',
string_length => 'length',
string_inc => 'inc',
string_append => 'append',
string_clear => 'clear',
string_chomp => 'chomp',
string_replace => 'replace',
},
);
has hash => (
traits => ['Hash'],
isa => 'HashRef',
block => sub { {} },
handles => {
hash_delete => 'delete',
hash_exists => 'exists',
hash_values => 'values',
hash_get => 'get',
hash_set => 'set',
hash_is_empty => 'is_empty',
hash_keys => 'keys',
hash_elements => 'elements',
hash_kv => 'kv',
hash_defined => 'defined',
hash_accessor => 'accessor',
hash_count => 'count',
hash_clear => 'clear',
},
);
has counter => (
traits => ['Counter'],
isa => 'Int',
value => 0,
default => 0, # XXX: ugh, needed because of the default_default stuff
handles => {
counter_set => 'set',
counter_reset => 'reset',
counter_inc => 'inc',
counter_dec => 'dec',
},
);
has code => (
traits => ['Code'],
isa => 'CodeRef',
block => sub { sub { } },
handles => {
code_execute => 'execute',
code_execute_method => 'execute_method',
},
);
has array => (
traits => ['Array'],
isa => 'ArrayRef',
block => sub { [] },
handles => {
array_unshift => 'unshift',
array_shuffle => 'shuffle',
array_delete => 'delete',
array_get => 'get',
array_set => 'set',
array_uniq => 'uniq',
array_is_empty => 'is_empty',
array_shift => 'shift',
array_grep => 'grep',
array_sort_in_place => 'sort_in_place',
array_sort => 'sort',
array_elements => 'elements',
array_pop => 'pop',
array_reduce => 'reduce',
array_insert => 'insert',
array_join => 'join',
array_first => 'first',
array_natatime => 'natatime',
array_accessor => 'accessor',
array_count => 'count',
array_map => 'map',
array_push => 'push',
array_clear => 'clear',
array_splice => 'splice',
},
);
has number => (
traits => ['Number'],
isa => 'Num',
value => 1,
handles => {
number_add => 'add',
number_set => 'set',
number_sub => 'sub',
number_mul => 'mul',
number_mod => 'mod',
number_abs => 'abs',
number_div => 'div',
},
);
__PACKAGE__->meta->make_immutable;
}
pass("everything compiled successfully");
done_testing;