Add code and tests
[text-homestuck.git] / lib / Text / Homestuck.pm
index 6d9b4fdcb18e3ef9db74da30c2343b156d1be23c..88354ed355876fc3960f7590efc9493df37c9d2f 100644 (file)
@@ -3,33 +3,113 @@ package Text::Homestuck;
 use 5.014000;
 use strict;
 use warnings;
-
-require Exporter;
-
-our @ISA = qw(Exporter);
-
-# Items to export into callers namespace by default. Note: do not export
-# names by default without a very good reason. Use EXPORT_OK instead.
-# Do not simply export all your public functions/methods/constants.
-
-# This allows declaration      use Text::Homestuck ':all';
-# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
-# will save memory.
-our %EXPORT_TAGS = ( 'all' => [ qw(
-       
-) ] );
-
-our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
-
-our @EXPORT = qw(
-       
-);
-
+use parent qw/Exporter/;
+our @EXPORT = qw/aradia tavros sollux karkat nepeta kanaya terezi vriska equius gamzee eridan feferi/;
 our $VERSION = '0.000_001';
-$VERSION = eval $VERSION;  # see L<perlmodstyle>
 
 
-# Preloaded methods go here.
+sub aradia (_) {
+       local $_ = $_[0];
+       y/A-Z/a-z/;
+       y/,.?//d;
+       s/o/0/g;
+       $_
+}
+
+sub tavros (_) {
+       local $_ = $_[0];
+       y/a-zA-Z.!?/A-Za-z,,,/;
+       s/:\)/}:)/g;
+       $_
+}
+
+sub sollux (_) {
+       local $_ = $_[0];
+       y/A-Z/a-z/;
+       y/s/2/;
+       s/i/ii/g;
+       s/to/two/g;
+       s/\b(fuck|joke|kk|aa)\b/\U$1/g;
+       $_
+}
+
+sub karkat (_) {
+       local $_ = $_[0];
+       y/a-z/A-Z/;
+       s/\bD:/D:B/;
+       $_
+}
+
+sub nepeta (_){
+       local $_ = $_[0];
+       y/A-Z/a-z/;
+       s/ee/33/;
+       $_ = ":33 < $_";
+       $_
+}
+
+sub kanaya (_) {
+       local $_ = $_[0];
+       y/,.!?'//d;
+       s/\b(\w)/\u$1/g;
+       $_
+}
+
+sub terezi (_) {
+       local $_ = $_[0];
+       y/a-z/A-Z/;
+       y/AIE/413/;
+       s/(!|\?)/$1$1/g;
+       s/:\]|:\)/>:]/g;
+       $_
+}
+
+sub vriska (_) {
+       local $_ = $_[0];
+       y/Bb/88/;
+       s/:\)/::::\)/g;
+       s/D:/D::::/g;
+       $_
+}
+
+sub equius (_){
+       local $_ = $_[0];
+       s/strong/STRONG/g;
+       s/strength/STRONGNESS/g;
+       s/x/%/ig;
+       s/loo/100/ig;
+       s/ool/001/ig;
+       s/[?.!]$//;
+       $_ = "D --> $_";
+       $_
+}
+
+sub gamzee (_){
+       local $_ = $_[0];
+       y/[A-Z]/[a-z]/;
+       s/([a-z])(.)/$1\u$2/g;
+       s/:\)/:o\)/g;
+       $_
+}
+
+sub eridan (_){
+       local $_ = $_[0];
+       y/',.?!//d;
+       s/w/ww/g;
+       s/v/vv/g;
+       s/ing/in/g;
+       s/want to/wanna/g;
+       s/going to/gonna/g;
+       $_
+}
+
+sub feferi (_){
+       local $_ = $_[0];
+       s/H/)(/g;
+       s/E/-E/g;
+       s/:\)/38)/g;
+       $_
+}
 
 1;
 __END__
@@ -60,14 +140,8 @@ None by default.
 
 =head1 SEE ALSO
 
-Mention other useful documentation such as the documentation of
-related modules or operating system documentation (such as man pages
-in UNIX), or any relevant external documentation such as RFCs or
-standards.
-
-If you have a mailing list set up for your module, mention it here.
-
-If you have a web site set up for your module, mention it here.
+Homestuck: L<http://mspaintadventures.com/?s=6&p=001901>
+The mspa wiki page listing the quirks: http://mspaintadventures.wikia.com/wiki/Typing_Quirk
 
 =head1 AUTHOR
 
This page took 0.011538 seconds and 4 git commands to generate.