From: Shawn M Moore Date: Wed, 28 Jan 2009 07:21:12 +0000 (+0000) Subject: Implement String->words, String->lines, and String->split X-Git-Tag: 0_10~9 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=2e99cc07cbadca783f188e74fae52fcc8c8dcb1b;p=gitmo%2FMoose-Autobox.git Implement String->words, String->lines, and String->split --- diff --git a/Changes b/Changes index dbcd928..3565811 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,8 @@ Revision history for Perl extension Moose::Autobox +0.10 + - add split, words, lines to String (Sartak) + 0.09 Thu. Oct 23, 2008 - update Perl6::Junction dependency and support new version diff --git a/lib/Moose/Autobox/String.pm b/lib/Moose/Autobox/String.pm index cbd7321..cb3c77a 100644 --- a/lib/Moose/Autobox/String.pm +++ b/lib/Moose/Autobox/String.pm @@ -15,6 +15,8 @@ sub chomp { CORE::chomp $_[0] } sub chop { CORE::chop $_[0] } sub reverse { CORE::reverse $_[0] } sub length { CORE::length $_[0] } +sub lines { CORE::split '\n', $_[0] } +sub words { CORE::split ' ', $_[0] } sub index { return CORE::index($_[0], $_[1]) if scalar @_ == 2; return CORE::index($_[0], $_[1], $_[2]); @@ -23,6 +25,10 @@ sub rindex { return CORE::rindex($_[0], $_[1]) if scalar @_ == 2; return CORE::rindex($_[0], $_[1], $_[2]); } +sub split { + return CORE::split($_[1], $_[0]) if scalar @_ == 2; + return CORE::split($_[1], $_[0], $_[2]); +} 1; diff --git a/t/005_string.t b/t/005_string.t index ef18efb..0701f2d 100644 --- a/t/005_string.t +++ b/t/005_string.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 20; +use Test::More tests => 23; use Test::Exception; BEGIN { @@ -47,6 +47,10 @@ is('Hello World, Hello'->rindex('Hello'), 13, '... got the correct right index') is('Hello World, Hello'->rindex('Hello', 6), 0, '... got the correct right index'); +is_deeply(['/foo/bar/baz'->split('/')], ['', 'foo', 'bar', 'baz'], '... got the correct fragments'); +is_deeply(['Hello World'->words], ['Hello', 'World'], '... got the correct words'); +is_deeply(["Hello\nWor\n\nld\n"->lines], ['Hello', 'Wor', '', 'ld'], '... got the correct lines'); + eval 'Hello World, Hello'->dump; is($VAR1, 'Hello World, Hello' , '... eval of &dump works');