we aren't coring Bag
[gitmo/Moose.git] / lib / Moose / AttributeHelpers / Trait / Collection / ImmutableHash.pm
1
2 package Moose::AttributeHelpers::Trait::Collection::ImmutableHash;
3 use Moose::Role;
4
5 our $VERSION   = '0.87';
6 $VERSION = eval $VERSION;
7 our $AUTHORITY = 'cpan:STEVAN';
8
9 use Moose::AttributeHelpers::MethodProvider::ImmutableHash;
10
11 with 'Moose::AttributeHelpers::Trait::Collection';
12
13 has 'method_provider' => (
14     is        => 'ro',
15     isa       => 'ClassName',
16     predicate => 'has_method_provider',
17     default   => 'Moose::AttributeHelpers::MethodProvider::ImmutableHash'
18 );
19
20 sub _helper_type { 'HashRef' }
21
22 no Moose::Role;
23
24 package # hide me from search.cpan.org
25     Moose::Meta::Attribute::Custom::Trait::Collection::ImmutableHash;
26 sub register_implementation {
27     'Moose::AttributeHelpers::Trait::Collection::ImmutableHash'
28 }
29
30
31 1;
32
33 __END__
34
35 =pod
36
37 =head1 NAME
38
39 Moose::AttributeHelpers::Collection::ImmutableHash
40
41 =head1 SYNOPSIS
42
43   package Stuff;
44   use Moose;
45   use Moose::AttributeHelpers;
46
47   has 'options' => (
48       metaclass => 'Collection::ImmutableHash',
49       is        => 'ro',
50       isa       => 'HashRef[Str]',
51       default   => sub { {} },
52       handles  => {
53           get_option      => 'get',
54           has_options     => 'empty',
55           get_option_list => 'keys',
56       }
57   );
58
59 =head1 DESCRIPTION
60
61 This module provides a immutable HashRef attribute which provides a number of
62 hash-line operations. See L<Moose::AttributeHelpers::MethodProvider::ImmutableHash>
63 for more details.
64
65 =head1 METHODS
66
67 =over 4
68
69 =item B<meta>
70
71 =item B<method_provider>
72
73 =item B<has_method_provider>
74
75 =back
76
77 =head1 BUGS
78
79 All complex software has bugs lurking in it, and this module is no
80 exception. If you find a bug please either email me, or add the bug
81 to cpan-RT.
82
83 =head1 AUTHOR
84
85 Stevan Little E<lt>stevan@iinteractive.comE<gt>
86
87 =head1 COPYRIGHT AND LICENSE
88
89 Copyright 2007-2009 by Infinity Interactive, Inc.
90
91 L<http://www.iinteractive.com>
92
93 This library is free software; you can redistribute it and/or modify
94 it under the same terms as Perl itself.
95
96 =cut