NAME
OpusVL::Text::Util - Simple text utilities
VERSION
version 0.10
SYNOPSIS
This provides a couple of simple methods for playing with text.
use OpusVL::Text::Util qw/truncate_text wrap_text/;
my $truncated = truncate_text('a long string really', 10);
# 'a long...'
my $wrapped = truncate_text('a long string really', 10);
$wrapped = "a long\nstring really";
EXPORT
truncate_text
This truncates a string close to the limit provided. It tries to break it on a word break if possible. It then appends a '...' to the string. This isn't included in the calculation of the length, so you may end up with 3 more characters than you specified.
my $truncated = truncate_text('a long string really', 10);
# 'a long...'
wrap_text
This method has a go at wrapping a line of text. Note that it isn't designed to work on multiple lines of text. It will attempt to split at convenient points within the required width and if that fails it will simply display what is there. All the text should be displayed with this method.
You can also specify the linefeed characters as the last parameter.
my $wrapped = wrap_text('a long string really', 10);
# "a long\nstring\nreally"
my $wrapped = wrap_text('a long string really', 10, "\r\n");
# "a long\r\nstring\r\nreally"
string_to_id
Makes a string safe to use as an HTML id. Converts all non safe characters to _.
string_to_id('thuds-!this') # 'thuds__this'
line_split
Splits a string on line breaks. Accounts for all 3 types of line break, DOS, MAC and Unix.
line_split("a\nb\r\nc") # qw/a b c/
missing_array_items
Returns the list of items missing.
$mandatory = [qw/a b c/];
$cols = [qw/a b d e f/];
missing_array_items($mandatory, $cols); # ['c']
not_blank
Returns true if the string provided is not blank.
not_blank('0') # 0
not_blank('') # 1
split_words
Splits a list of words in a string. Looks for commas to split the list and strips whitespace.
split_words('veh1,veh2,veh3') # qw/veh1 veh2 veh3/
mask_text
Mask text field contents using a simple regex.
mask_text('*', '(\d{4}).*(\d{3})', '456456564654654');
# '4564********654'
Specify a fill character, a regex (as a string), and the text to mask out.
This does not guard against rogue regexes. Capture the parts you expect to be retained.
split_camel_case
Split a camel case word into an arrayref. This assumes you're giving it a word, behaviour when passed something like a sentence is undefined.
split_camel_case('TemplateNotMatchedException')
# ['Template', 'Not', 'Matched', 'Exception']
AUTHOR
Colin Newell <colin@opusvl.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2012 - 2016 by OpusVL.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.