File Coverage

blib/lib/RapidApp/JSON/RawJavascript.pm
Criterion Covered Total %
statement 19 20 95.0
branch n/a
condition n/a
subroutine 8 9 88.8
pod 0 3 0.0
total 27 32 84.3


line stmt bran cond sub pod time code
1             package RapidApp::JSON::RawJavascript;
2              
3 6     6   39 use strict;
  6         14  
  6         184  
4 6     6   27 use warnings;
  6         11  
  6         148  
5 6     6   27 use Moose;
  6         10  
  6         36  
6              
7 6     6   34065 use overload '""' => sub { (shift)->stringify(@_) };
  6     1097   12  
  6         59  
  1097         2576  
8              
9             sub stringify {
10 1097     1097 0 1504 my $self = shift;
11 1097         2370 return $self->TO_JSON_RAW;
12             }
13              
14             has 'js' => ( is => 'rw', isa => 'Str' );
15              
16             # compat with RapidApp::JSONFunc API:
17 0     0 0 0 sub func { (shift)->js }
18              
19             around BUILDARGS => sub {
20             my $orig= shift;
21             my $class= shift;
22             if (scalar(@_) == 1 && !ref $_[0]) {
23             return $class->$orig( js => $_[0] ); # interpret single-param as a javascript fragment
24             } else {
25             return $class->$orig(@_);
26             }
27             };
28              
29             sub TO_JSON_RAW {
30 1128     1128 0 27031 return (shift)->js;
31             }
32              
33 6     6   1371 no Moose;
  6         14  
  6         27  
34             __PACKAGE__->meta->make_immutable;
35             1;