Implement String->words, String->lines, and String->split
[gitmo/Moose-Autobox.git] / lib / Moose / Autobox / String.pm
CommitLineData
6cf5bcf2 1package Moose::Autobox::String;
2use Moose::Role;
3
caac33a3 4our $VERSION = '0.09';
6cf5bcf2 5
31d40d73 6with 'Moose::Autobox::Value';
7
6cf5bcf2 8# perl built-ins
9
10sub lc { CORE::lc $_[0] }
11sub lcfirst { CORE::lcfirst $_[0] }
12sub uc { CORE::uc $_[0] }
13sub ucfirst { CORE::ucfirst $_[0] }
14sub chomp { CORE::chomp $_[0] }
15sub chop { CORE::chop $_[0] }
16sub reverse { CORE::reverse $_[0] }
17sub length { CORE::length $_[0] }
2e99cc07 18sub lines { CORE::split '\n', $_[0] }
19sub words { CORE::split ' ', $_[0] }
680d0745 20sub index {
21 return CORE::index($_[0], $_[1]) if scalar @_ == 2;
22 return CORE::index($_[0], $_[1], $_[2]);
23}
dae37220 24sub rindex {
25 return CORE::rindex($_[0], $_[1]) if scalar @_ == 2;
26 return CORE::rindex($_[0], $_[1], $_[2]);
27}
2e99cc07 28sub split {
29 return CORE::split($_[1], $_[0]) if scalar @_ == 2;
30 return CORE::split($_[1], $_[0], $_[2]);
31}
6cf5bcf2 32
31d40d73 331;
34
35__END__
36
37=pod
38
39=head1 NAME
40
41Moose::Autobox::String - the String role
42
43=head1 SYNOPOSIS
44
45 use Moose::Autobox;
31d40d73 46
47 "Hello World"->uc; # HELLO WORLD
48
49=head1 DESCRIPTION
50
8937074a 51This is a role to describes a String value.
52
260cc81f 53=head1 METHODS
54
55=over 4
56
260cc81f 57=item B<chomp>
58
59=item B<chop>
60
61=item B<index>
62
63=item B<lc>
64
65=item B<lcfirst>
66
67=item B<length>
68
69=item B<reverse>
70
dae37220 71=item B<rindex>
72
260cc81f 73=item B<uc>
74
75=item B<ucfirst>
76
77=back
78
5272f13f 79=over 4
80
81=item B<meta>
82
83=back
84
31d40d73 85=head1 BUGS
86
87All complex software has bugs lurking in it, and this module is no
88exception. If you find a bug please either email me, or add the bug
89to cpan-RT.
90
91=head1 AUTHOR
92
93Stevan Little E<lt>stevan@iinteractive.comE<gt>
94
95=head1 COPYRIGHT AND LICENSE
96
ea4e64bf 97Copyright 2006-2008 by Infinity Interactive, Inc.
31d40d73 98
99L<http://www.iinteractive.com>
100
101This library is free software; you can redistribute it and/or modify
102it under the same terms as Perl itself.
103
dae37220 104=cut
105