Implement String->words, String->lines, and String->split
Shawn M Moore [Wed, 28 Jan 2009 07:21:12 +0000 (07:21 +0000)]
Changes
lib/Moose/Autobox/String.pm
t/005_string.t

diff --git a/Changes b/Changes
index dbcd928..3565811 100644 (file)
--- 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
 
index cbd7321..cb3c77a 100644 (file)
@@ -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;
 
index ef18efb..0701f2d 100644 (file)
@@ -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');