1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
package Test::BDD::Cucumber::Util;
$Test::BDD::Cucumber::Util::VERSION = '0.26';
use strict;
use warnings;
=head1 NAME
Test::BDD::Cucumber::Util - Some functions used throughout the code
=head1 VERSION
version 0.26
=head1 DESCRIPTION
Some functions used throughout the code
=head1 FUNCTIONS
=head2 bs_quote
=head2 bs_unquote
C<bs_quote()> "makes safe" strings with backslashed characters in it, so other
operations can be done on them. C<bs_unquote> goes the other way.
$string = "foo \<bar\> <baz>";
$string = bs_quote( $string );
$string =~ s/<([^>]+)>/"$1"/g;
$string = bs_unquote( $string );
$string eq 'foo <bar> "baz"';
=cut
my $marker_start = ';;;TEST_BDD_TEMP_MARKER_OPEN;;;';
my $marker_end = ';;;TEST_BDD_TEMP_MARKER_END;;;';
sub bs_quote {
my $string = shift;
$string =~ s/\\(.)/${marker_start} . ord($1) . ${marker_end}/ge;
return $string;
}
sub bs_unquote {
my $string = shift;
$string =~ s/$marker_start(\d+)$marker_end/chr($1)/ge;
return $string;
}
=head1 AUTHOR
Peter Sergeant C<pete@clueball.com>
=head1 LICENSE
Copyright 2011-2014, Peter Sergeant; Licensed under the same terms as Perl
=cut
1;
|