Skip to content

Instantly share code, notes, and snippets.

@yuki-kimoto
Created May 2, 2012 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yuki-kimoto/2576690 to your computer and use it in GitHub Desktop.
Save yuki-kimoto/2576690 to your computer and use it in GitHub Desktop.
Perlee Script test
use Test::More 'no_plan';
use strict;
use warnings;
use PerleeScript;
my $ps = PerleeScript->new;
# my to var
is($ps->source(q/my $title = 'Perl';/)->to_javascript, q/var $title = 'Perl';/);
# Number nuderline is removed
is($ps->source(q/my $price = 3_000;/)->to_javascript, q/var $price = 3000;/);
# Unless to if not
is($ps->source(q/unless ($done) { 1 }/)->to_javascript,
q/if (!($done)) { 1 }/);
is($ps->source(q/unless (done()) { 1 }/)->to_javascript,
q/if (!(done())) { 1 }/);
is($ps->source(q/unless (done()->title()) { 1 }/)->to_javascript,
q/if (!(done().title())) { 1 }/);
# String
is($ps->source(q/"300"/)->to_javascript, q/"300"/);
# Allow to dot
is($ps->source(q/$book->author/)->to_javascript, q/$book.author/);
# String join
is($ps->source(q/$foo . $bar/)->to_javascript, q/$foo + '' + $bar/);
# Number operation
is($ps->source(q/$foo + $bar/)->to_javascript, q/$foo * 1 + +$bar/);
is($ps->source(q/$foo - $bar/)->to_javascript, q/$foo * 1 - +$bar/);
is($ps->source(q/$foo * $bar/)->to_javascript, q/$foo * 1 * +$bar/);
is($ps->source(q{$foo / $bar})->to_javascript, q{$foo * 1 / +$bar});
is($ps->source(q/$foo % $bar/)->to_javascript, q/$foo * 1 % +$bar/);
# Comment
is($ps->source(q/# foo/)->to_javascript, q{// foo});
# elsif to else if
is($ps->source(q/elsif ($done) { 1 }/)->to_javascript, q/else if ($done) { 1 }/);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment