File Coverage

blib/lib/Text/Homestuck.pm
Criterion Covered Total %
statement 23 25 92.0
branch 1 2 50.0
condition n/a
subroutine 7 7 100.0
pod 0 1 0.0
total 31 35 88.5


line stmt bran cond sub pod time code
1             package Text::Homestuck;
2              
3 1     1   37583 use 5.014000;
  1         4  
  1         69  
4 1     1   8 use strict;
  1         1  
  1         42  
5 1     1   6 use warnings;
  1         15  
  1         38  
6 1     1   912 use parent qw/Exporter/;
  1         275  
  1         5  
7             our @EXPORT = qw/aradia tavros sollux karkat nepeta kanaya terezi vriska equius gamzee eridan feferi/;
8             our $VERSION = '0.000_001';
9              
10             sub filter {
11 12     12 0 16 my ($name, $code) = @_;
12 1     1   99 no strict 'refs';
  1         2  
  1         984  
13 12         52 *{$name} = sub (;$){
14 12     12   982 local *__ANON__ = $name;
15 12 50       32 if ($_[0]) {
16 12         21 local $_ = $_[0];
17 12         32 $code->();
18 12         70 $_
19             } else {
20 0           $code->();
21 0           $_
22             }
23             }
24 12         47 }
25              
26             filter aradia => sub {
27             y/A-Z/a-z/;
28             y/,.?//d;
29             s/o/0/g;
30             };
31              
32             filter tavros => sub {
33             y/a-zA-Z.!?/A-Za-z,,,/;
34             s/:\)/}:)/g;
35             };
36              
37             filter sollux => sub {
38             y/A-Z/a-z/;
39             y/s/2/;
40             s/i/ii/g;
41             s/to/two/g;
42             s/\b(fuck|joke|kk|aa)\b/\U$1/g;
43             };
44              
45             filter karkat => sub {
46             y/a-z/A-Z/;
47             s/\bD:/D:B/;
48             };
49              
50             filter nepeta => sub {
51             y/A-Z/a-z/;
52             s/ee/33/;
53             $_ = ":33 < $_";
54             };
55              
56             filter kanaya => sub {
57             y/,.!?'//d;
58             s/\b(\w)/\u$1/g;
59             };
60              
61             filter terezi => sub {
62             y/a-z/A-Z/;
63             y/AIE/413/;
64             s/(!|\?)/$1$1/g;
65             s/:\]|:\)/>:]/g;
66             };
67              
68             filter vriska => sub {
69             y/Bb/88/;
70             s/:\)/::::\)/g;
71             s/D:/D::::/g;
72             };
73              
74             filter equius => sub {
75             s/strong/STRONG/g;
76             s/strength/STRONGNESS/g;
77             s/x/%/ig;
78             s/loo/100/ig;
79             s/ool/001/ig;
80             s/[?.!]$//;
81             $_ = "D --> $_";
82             };
83              
84             filter gamzee => sub {
85             y/[A-Z]/[a-z]/;
86             s/([a-z])(.)/$1\u$2/g;
87             s/:\)/:o\)/g;
88             };
89              
90             filter eridan => sub {
91             y/',.?!//d;
92             s/w/ww/g;
93             s/v/vv/g;
94             s/ing/in/g;
95             s/want to/wanna/g;
96             s/going to/gonna/g;
97             };
98              
99             filter feferi => sub {
100             s/H/)(/g;
101             s/E/-E/g;
102             s/:\)/38)/g;
103             };
104              
105             1;
106             __END__