1 package IronMunger::CSVUtils;
7 use Sub::Exporter -setup => {
8 exports => [ qw(filename_to_name_and_nick name_and_nick_to_filename) ],
13 # So our plagger setup is weird. The filenames are of the form -
15 # my_${name}__${nick}_.csv
19 # This corresponds to either 'My Name (mynick)', 'My Name' or 'mynick'
20 # in the plagger config.
21 # Rather than annoy people, I thought I'd just live with it by assuming
22 # any name has two or more sections.
24 sub filename_to_name_and_nick ($filename) {
25 my ($body) = ($filename =~ m/^my_(.*?)_?\.csv$/);
26 confess "Couldn't unpick ${filename} - see comments" unless $body;
27 my ($name, $nick) = split(/__/, $body);
28 if (!defined $nick && $name !~ /_/) {
29 ($name, $nick) = (undef, $name);
31 $name = join(' ', split('_', $name)) if defined $name;
32 return ($name, $nick);
35 sub name_and_nick_to_filename ($name, $nick) {
36 $name = join('_', split(' ', $name)) if defined $name;
38 my @def = (grep defined, $name, $nick);
45 return "my_${body}.csv";