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