blib/lib/RiveScript.pm | |||
---|---|---|---|
Criterion | Covered | Total | % |
branch | 365 | 682 | 53.5 |
line | true | false | branch |
---|---|---|---|
182 | 4 | 5 | if ($action eq 'load') { } |
5 | 0 | elsif ($action eq 'call') { } | |
190 | 1 | 3 | if ($@) { } |
202 | 4 | 1 | if (exists $rs->{'objects'}{$name}) { } |
215 | 0 | 26 | if (exists $self->{'verbose'}) |
218 | 0 | 26 | if (exists $self->{'debugfile'}) |
229 | 48 | 3272 | if ($self->{'debug'}) |
231 | 48 | 0 | if ($self->{'debugopts'}{'verbose'}) |
236 | 0 | 48 | if (length $self->{'debugopts'}{'file'}) |
249 | 0 | 3 | if ($self->{'debug'}) { } |
280 | 0 | 0 | unless (-d $dir) |
290 | 0 | 0 | if $file eq "." |
291 | 0 | 0 | if $file eq ".." |
292 | 0 | 0 | if $file =~ /\~$/i |
296 | 0 | 0 | if $file =~ /$re$/ |
298 | 0 | 0 | unless $goodExt |
320 | 0 | 0 | unless (defined $file) |
325 | 0 | 0 | unless (-f $file) |
355 | 0 | 29 | unless (defined $code) |
415 | 15 | 311 | if ($inobj) |
416 | 6 | 9 | if ($line =~ /^<\s*object/i) { } |
418 | 4 | 2 | if (length $objname) |
420 | 4 | 0 | if (exists $self->{'handlers'}{$objlang}) { } |
439 | 8 | 309 | if ($line =~ m[^(//|#)]i) { } |
0 | 309 | elsif ($line =~ m[^/\*]) { } | |
0 | 309 | elsif ($line =~ m[\*/]) { } | |
441 | 0 | 8 | if ($line =~ /^#/) |
447 | 0 | 0 | if ($line =~ m[\*/]) |
460 | 0 | 309 | if ($comment) |
465 | 58 | 251 | if length $line == 0 |
476 | 87 | 164 | if ($cmd eq '+') { } |
478 | 0 | 87 | if ($line =~ /\s\s#\s/) |
484 | 0 | 164 | if ($line =~ /\s#\s/) |
489 | 0 | 251 | if ($line =~ /$inline_comment_regexp/) |
500 | 0 | 251 | if ($syntax_error) |
503 | 0 | 0 | if ($self->{'strict'}) { } |
515 | 87 | 164 | if ($cmd eq "+") |
527 | 234 | 33 | if (defined $lookahead and length $lookahead > 0) |
529 | 211 | 23 | if ($lookCmd ne "^" and $lookCmd ne "%") |
536 | 7 | 16 | if ($cmd eq "+") |
538 | 7 | 0 | if ($lookCmd eq '%') { } |
552 | 1 | 15 | if ($cmd eq "!") |
553 | 1 | 0 | if ($lookCmd eq "^") |
565 | 11 | 4 | if ($cmd ne "^" and $lookCmd ne "%") |
566 | 11 | 0 | if ($lookCmd eq '^') { } |
569 | 10 | 1 | exists $concat_mode{$local_options{'concat'}} ? : |
580 | 17 | 234 | if ($cmd eq '!') { } |
16 | 218 | elsif ($cmd eq '>') { } | |
16 | 202 | elsif ($cmd eq '<') { } | |
87 | 115 | elsif ($cmd eq '+') { } | |
83 | 32 | elsif ($cmd eq '-') { } | |
7 | 25 | elsif ($cmd eq '%') { } | |
12 | 13 | elsif ($cmd eq '^') { } | |
3 | 10 | elsif ($cmd eq '@') { } | |
10 | 0 | elsif ($cmd eq '*') { } | |
588 | 16 | 1 | if ($type ne "array") |
592 | 0 | 17 | if ($type eq 'version') { } |
5 | 12 | elsif ($type eq 'local') { } | |
1 | 11 | elsif ($type eq 'global') { } | |
2 | 9 | elsif ($type eq 'var') { } | |
1 | 8 | elsif ($type eq 'array') { } | |
6 | 2 | elsif ($type eq 'sub') { } | |
2 | 0 | elsif ($type eq 'person') { } | |
594 | 0 | 0 | if ($value > $SUPPORT) |
604 | 0 | 1 | unless (defined $var) |
608 | 0 | 1 | unless (defined $value) |
618 | 0 | 20 | if ($var eq $res) |
624 | 1 | 0 | if ($ok) { } |
626 | 0 | 1 | if ($value eq ' |
635 | 0 | 0 | if ($value eq ' |
645 | 0 | 2 | unless (defined $var) |
649 | 0 | 2 | unless (defined $value) |
654 | 0 | 2 | if ($value eq ' |
663 | 0 | 1 | unless (defined $var) |
667 | 0 | 1 | unless (defined $value) |
672 | 0 | 1 | if ($value eq " |
685 | 1 | 1 | if ($val =~ /\|/) { } |
702 | 0 | 6 | unless (defined $var) |
706 | 0 | 6 | unless (defined $value) |
711 | 0 | 6 | if ($value eq " |
719 | 0 | 2 | unless (defined $var) |
723 | 0 | 2 | unless (defined $value) |
727 | 0 | 2 | if ($value eq " |
744 | 3 | 13 | if ($type eq "begin") |
750 | 10 | 6 | if ($type eq "topic") |
758 | 4 | 6 | if (scalar @fields >= 2) |
760 | 2 | 7 | if ($field eq 'includes') { } |
2 | 5 | elsif ($field eq 'inherits') { } | |
5 | 0 | elsif ($mode ne '') { } | |
768 | 3 | 2 | if ($mode eq 'includes') { } |
778 | 6 | 10 | if ($type eq "object") |
780 | 5 | 1 | scalar @fields ? : |
785 | 1 | 5 | unless (length $lang) |
791 | 4 | 2 | if (exists $self->{'handlers'}{$lang}) { } |
811 | 10 | 6 | if ($type eq 'begin' or $type eq 'topic') { } |
6 | 0 | elsif ($type eq 'object') { } | |
823 | 7 | 80 | if (length $isThat) { } |
839 | 0 | 83 | if ($ontrig eq "") |
844 | 7 | 76 | if (length $isThat) { } |
868 | 0 | 3 | if (length $isThat) { } |
878 | 0 | 10 | if (length $isThat) { } |
916 | 17 | 234 | if ($cmd eq '!') { } |
16 | 218 | elsif ($cmd eq '>') { } | |
97 | 121 | elsif ($cmd eq '+' or $cmd eq '%' or $cmd eq '@') { } | |
95 | 26 | elsif ($cmd eq '-' or $cmd eq '^' or $cmd eq '/') { } | |
10 | 16 | elsif ($cmd eq '*') { } | |
924 | 0 | 17 | unless ($line =~ /^.+(?:\s+.+|)\s*=\s*.+?$/) |
933 | 0 | 16 | if ($line =~ /^begin/ and $line =~ /\s+/) { } |
0 | 16 | elsif ($line =~ /^topic/i and $line =~ /[^a-z0-9_\-\s]/) { } | |
0 | 16 | elsif ($line =~ /[^A-Za-z0-9_\-\s]/) { } | |
956 | 15 | 82 | if ($self->{'utf8'}) { } |
958 | 0 | 15 | if ($line =~ /[A-Z\\.]/) |
963 | 0 | 82 | if ($line =~ /[^a-z0-9(\|)\[\]*_#\@{}<>=\s]/) |
974 | 6 | 1246 | if $char eq "(" |
6 | 1246 | if $char eq ")" | |
975 | 4 | 1248 | if $char eq "[" |
4 | 1248 | if $char eq "]" | |
976 | 3 | 1249 | if $char eq "{" |
3 | 1249 | if $char eq "}" | |
977 | 0 | 1252 | if $char eq "<" |
0 | 1252 | if $char eq ">" | |
981 | 0 | 97 | if ($parens) |
982 | 0 | 0 | $parens > 0 ? : |
984 | 0 | 97 | if ($square) |
985 | 0 | 0 | $square > 0 ? : |
987 | 0 | 97 | if ($curly) |
988 | 0 | 0 | $curly > 0 ? : |
990 | 0 | 97 | if ($chevron) |
991 | 0 | 0 | $chevron > 0 ? : |
1002 | 0 | 10 | unless ($line =~ /^.+?\s*(==|eq|!=|ne|<>|<|<=|>|>=)\s*.+?=>.+?$/) |
1028 | 29 | 29 | if ($thats eq 'thats') { } |
1053 | 3 | 103 | if ($trig =~ /\{weight=(\d+)\}/i) { } |
1056 | 3 | 0 | unless (exists $prior->{$weight}) |
1114 | 10 | 96 | if ($trig =~ /{inherits=(\d+)}/) { } |
1116 | 4 | 6 | if ($inherits > $highest_inherits) |
1128 | 5 | 101 | unless (exists $track->{$inherits}) |
1141 | 1 | 105 | if ($trig =~ /\_/) { } |
2 | 103 | elsif ($trig =~ /\#/) { } | |
22 | 81 | elsif ($trig =~ /\*/) { } | |
3 | 78 | elsif ($trig =~ /\[(.+?)\]/) { } | |
1146 | 1 | 0 | if ($cnt > 1) { } |
1147 | 1 | 0 | unless (exists $track->{$inherits}{'alpha'}{$cnt}) |
1161 | 2 | 0 | if ($cnt > 1) { } |
1162 | 2 | 0 | unless (exists $track->{$inherits}{'number'}{$cnt}) |
1176 | 15 | 7 | if ($cnt > 1) { } |
1177 | 14 | 1 | unless (exists $track->{$inherits}{'wild'}{$cnt}) |
1191 | 2 | 1 | unless (exists $track->{$inherits}{'option'}{$cnt}) |
1201 | 54 | 24 | unless (exists $track->{$inherits}{'atomic'}{$cnt}) |
1230 | 29 | 29 | if ($thats ne "thats") |
1305 | 0 | 7 | if ($trig =~ /\_/) { } |
0 | 7 | elsif ($trig =~ /\#/) { } | |
4 | 3 | elsif ($trig =~ /\*/) { } | |
0 | 3 | elsif ($trig =~ /\[(.+?)\]/) { } | |
1309 | 0 | 0 | if ($cnt > 1) { } |
1310 | 0 | 0 | unless (exists $track->{'alpha'}{$cnt}) |
1323 | 0 | 0 | if ($cnt > 1) { } |
1324 | 0 | 0 | unless (exists $track->{'number'}{$cnt}) |
1337 | 0 | 4 | if ($cnt > 1) { } |
1338 | 0 | 0 | unless (exists $track->{'wild'}{$cnt}) |
1351 | 0 | 0 | unless (exists $track->{'option'}{$cnt}) |
1360 | 3 | 0 | unless (exists $track->{'atomic'}{$cnt}) |
1398 | 6 | 52 | if (exists $self->{'sortlist'}{$name}) |
1415 | 4 | 4 | unless (exists $track->{$cword}) |
1438 | 0 | 37 | if ($depth > $self->{'depth'}) |
1449 | 12 | 25 | if (exists $self->{'includes'}{$topic}) |
1459 | 5 | 32 | if (exists $self->{'lineage'}{$topic}) |
1478 | 0 | 48 | if ($depth > $self->{'depth'}) |
1505 | 3 | 45 | if (exists $self->{'includes'}{$topic}) |
1514 | 2 | 46 | if (exists $self->{'lineage'}{$topic}) |
1525 | 6 | 42 | if (exists $self->{'lineage'}{$topic} or $inherited) { } |
1612 | 0 | 0 | if ($@) |
1637 | 0 | 0 | if ($self->{'debug'}) |
1640 | 0 | 0 | if ($self->{'depth'} != 50) |
1655 | 0 | 0 | if ($topic eq '__begin__') { } |
1661 | 0 | 0 | unless (exists $deparse->{'topic'}{$topic}) |
1678 | 0 | 0 | if ($topic eq '__begin__') { } |
1684 | 0 | 0 | unless (exists $deparse->{'that'}{$topic}) |
1720 | 0 | 0 | if (exists $src->{'redirect'}) |
1723 | 0 | 0 | if (exists $src->{'condition'}) |
1729 | 0 | 0 | if (exists $src->{'reply'}) |
1741 | 0 | 0 | if ($self->{'_can_clone'}) |
1768 | 0 | 0 | if (ref $file eq 'GLOB') { } |
0 | 0 | elsif (ref $file) { } | |
1775 | 0 | 0 | unless open $fh, ">", $file |
1778 | 0 | 0 | ref $deparsed ? : |
1786 | 0 | 0 | unless scalar keys %{$$deparse{"begin"}{$sort};} > 0 |
1790 | 0 | 0 | if (ref $data eq "ARRAY") |
1793 | 0 | 0 | if ($test =~ /\s+/) |
1803 | 0 | 0 | if ($needs_pipes) { } |
1815 | 0 | 0 | if (scalar keys %{$$deparse{"begin"}{"triggers"};}) |
1826 | 0 | 0 | unless exists $deparse->{'topic'}{$topic} |
1827 | 0 | 0 | if $topic eq "random" and $doneRandom |
1828 | 0 | 0 | if $topic eq "random" |
1832 | 0 | 0 | if ($topic ne "random" or exists $deparse->{'include'}{$topic} or exists $deparse->{'inherit'}{$topic}) |
1836 | 0 | 0 | if (exists $deparse->{'inherit'}{$topic}) |
1839 | 0 | 0 | if (exists $deparse->{'include'}{$topic}) |
1846 | 0 | 0 | $tagged ? : |
1849 | 0 | 0 | if (exists $deparse->{'that'}{$topic}) |
1850 | 0 | 0 | $tagged ? : |
1853 | 0 | 0 | if ($tagged) |
1864 | 0 | 0 | $id ? : |
1870 | 0 | 0 | if (exists $d->{'previous'}) |
1874 | 0 | 0 | if (exists $d->{'condition'}) |
1880 | 0 | 0 | if (exists $d->{'redirect'}) |
1884 | 0 | 0 | if (exists $d->{'reply'}) |
1898 | 0 | 0 | $indent ? : |
1901 | 0 | 0 | if ($sep eq ' ') { } |
0 | 0 | elsif ($sep eq '|') { } | |
1914 | 0 | 0 | if (length $line > $width) |
1924 | 0 | 0 | if ($line) |
1929 | 0 | 0 | if (scalar @lines) |
1930 | 0 | 0 | $sep eq ' ' ? : |
1988 | 1 | 26 | if (not defined $code) { } |
1993 | 26 | 0 | if (ref $code eq 'CODE') { } |
2039 | 0 | 0 | unless (defined $data{$key}) |
2045 | 0 | 0 | if ($res eq $key) |
2051 | 0 | 0 | if ($reserved) { } |
2052 | 0 | 0 | if ($data{$key} eq ' |
2060 | 0 | 0 | if ($data{$key} eq ' |
2084 | 0 | 0 | unless (defined $data{$key}) |
2088 | 0 | 0 | if ($data{$key} eq ' |
2117 | 0 | 0 | unless (defined $data{$key}) |
2121 | 0 | 0 | if ($data{$key} eq ' |
2142 | 0 | 0 | unless (defined $data{$key}) |
2146 | 0 | 0 | if ($data{$key} eq ' |
2170 | 0 | 7 | unless (defined $data{$key}) |
2174 | 0 | 7 | if ($data{$key} eq ' |
2213 | 0 | 3 | unless defined $user |
2214 | 0 | 3 | unless defined $var |
2217 | 3 | 0 | if (length $user and length $var) |
2218 | 2 | 1 | if (exists $self->{'client'}{$user}{$var}) { } |
2226 | 0 | 0 | if (length $user) { } |
2245 | 0 | 0 | if (length $user) { } |
2274 | 0 | 0 | unless defined $user |
2276 | 0 | 0 | if (length $user and exists $self->{'client'}{$user}) |
2279 | 0 | 0 | if (exists $self->{'frozen'}{$user}) |
2285 | 0 | 0 | if $var eq "__history__" |
2331 | 0 | 0 | unless defined $user |
2333 | 0 | 0 | if (length $user and exists $self->{'frozen'}{$user}) |
2337 | 0 | 0 | if (exists $args{'discard'}) { } |
0 | 0 | elsif (exists $args{'keep'}) { } | |
2349 | 0 | 0 | if ($restore) |
2355 | 0 | 0 | if $var eq "__history__" |
2370 | 0 | 0 | if ($discard) |
2392 | 0 | 0 | unless defined $user |
2395 | 0 | 0 | if (length $user and exists $self->{'client'}{$user}{'__lastmatch__'}) |
2419 | 0 | 0 | unless (defined $self->{'current_user'}) |
2459 | 5 | 153 | if (exists $self->{'topics'}{'__begin__'}{'request'}) { } |
2467 | 4 | 1 | if ($begin =~ /\{ok\}/i) |
2509 | 0 | 216 | if (scalar keys %{$$self{"sorted"};} == 0) |
2519 | 191 | 25 | if (exists $self->{'client'}{$user}) { } |
2527 | 0 | 216 | unless (exists $self->{'topics'}{$topic}) |
2534 | 1 | 215 | if ($tags{'step'} > $self->{'depth'}) |
2536 | 1 | 0 | if (exists $self->{'syntax'}{$topic}{$msg}{'ref'}) |
2544 | 5 | 210 | if ($tags{'context'} eq "begin") |
2550 | 26 | 189 | unless (exists $self->{'client'}{$user}{'__history__'}) |
2572 | 162 | 53 | if ($tags{'step'} == 0) |
2574 | 14 | 148 | if (exists $self->{'includes'}{$topic} or exists $self->{'lineage'}{$topic}) |
2579 | 13 | 172 | if (exists $self->{'sortsthat'}{$top}) |
2583 | 13 | 0 | if (scalar @{$self->{'client'}{$user}{'__history__'}{'reply'};} > 0) |
2598 | 7 | 35 | if ($lastReply =~ /^$botside$/i) |
2606 | 7 | 0 | if ($msg =~ /^$humanside$/i) |
2620 | 7 | 35 | if $foundMatch |
2626 | 7 | 178 | if $foundMatch |
2631 | 208 | 7 | unless ($foundMatch) |
2638 | 190 | 241 | if ($msg =~ /^$regexp$/i) |
2643 | 181 | 9 | if (exists $self->{'topics'}{$topic}{$trig}) { } |
2668 | 52 | 163 | if (exists $matched->{'redirect'}) |
2681 | 15 | 148 | if (exists $matched->{'condition'}) |
2694 | 0 | 39 | if $left eq "" |
2695 | 0 | 39 | if $right eq "" |
2701 | 19 | 20 | if ($eq eq 'eq' or $eq eq '==') { } |
4 | 16 | elsif ($eq eq 'ne' or $eq eq '!=' or $eq eq '<>') { } | |
1 | 15 | elsif ($eq eq '<') { } | |
0 | 15 | elsif ($eq eq '<=') { } | |
7 | 8 | elsif ($eq eq '>') { } | |
8 | 0 | elsif ($eq eq '>=') { } | |
2702 | 4 | 15 | if ($left eq $right) |
2707 | 2 | 2 | if ($left ne $right) |
2712 | 1 | 0 | if ($left < $right) |
2717 | 0 | 0 | if ($left <= $right) |
2722 | 1 | 6 | if ($left > $right) |
2727 | 4 | 4 | if ($left >= $right) |
2732 | 12 | 27 | if ($match) |
2739 | 12 | 151 | if length $reply > 0 |
2747 | 0 | 133 | if ($text =~ /{weight=(\d+)\}/i) |
2749 | 0 | 0 | if ($weight <= 0) |
2765 | 18 | 197 | if ($foundMatch == 0) { } |
0 | 197 | elsif (not defined $reply or length $reply == 0) { } | |
2775 | 5 | 210 | if ($tags{'context'} eq 'begin') { } |
2776 | 0 | 5 | if ($reply =~ /\{topic=(.+?)\}/i) |
2807 | 0 | 13 | if ($depth > $self->{'depth'}) |
2814 | 3 | 10 | if (exists $self->{'lineage'}{$topic}) |
2817 | 1 | 2 | if (exists $self->{'topics'}{$inherits}{$trig}) { } |
2826 | 2 | 0 | if (defined $match) |
2835 | 8 | 2 | if (exists $self->{'includes'}{$topic}) |
2839 | 8 | 2 | if (exists $self->{'topics'}{$includes}{$trig}) { } |
2848 | 0 | 2 | if (defined $match) |
2898 | 16 | 0 | if (exists $self->{'arrays'}{$name}) |
2908 | 0 | 0 | if (exists $self->{'bot'}{$var}) |
2920 | 0 | 0 | if (exists $self->{'client'}{$user}{$var}) |
2929 | 0 | 480 | if ($regexp =~ / |
2941 | 0 | 480 | if ($regexp =~ / |
2963 | 23 | 322 | if (scalar @stars == 1) |
2966 | 338 | 7 | if (scalar @botstars == 1) |
2988 | 345 | 0 | if (scalar @stars > 0) |
2989 | 345 | 0 | if defined $stars[1] |
2990 | 10 | 0 | defined $stars[$1] ? : |
2992 | 345 | 0 | if (scalar @botstars > 0) |
2994 | 0 | 0 | defined $botstars[$1] ? : |
3009 | 0 | 0 | if ($rand =~ /\|/) { } |
3060 | 69 | 345 | if ($reply =~ /<([^<]+?)>/) { } |
3068 | 8 | 61 | if ($tag eq 'bot' or $tag eq 'env') { } |
12 | 49 | elsif ($tag eq 'set') { } | |
0 | 49 | elsif ($tag =~ /^(?:add|sub|mult|div)$/) { } | |
45 | 4 | elsif ($tag eq 'get') { } | |
3072 | 3 | 5 | if ($tag eq "env") |
3076 | 0 | 60 | if ($res eq $what) |
3081 | 0 | 3 | if ($reserved) { } |
3090 | 2 | 6 | if ($data =~ /=/) { } |
3095 | 5 | 1 | exists $target->{$what} ? : |
3108 | 0 | 0 | unless (exists $self->{'client'}{$user}{$var}) |
3113 | 0 | 0 | if (not $self->{'client'}{$user}{$var} =~ /^[0-9\-\.]+$/) { } |
0 | 0 | elsif ($value =~ /^[^0-9\-\.]$/) { } | |
3121 | 0 | 0 | if ($tag eq 'add') { } |
0 | 0 | elsif ($tag eq 'sub') { } | |
0 | 0 | elsif ($tag eq 'mult') { } | |
0 | 0 | elsif ($tag eq 'div') { } | |
3132 | 0 | 0 | if ($value == 0) { } |
3142 | 39 | 6 | exists $self->{'client'}{$user}{$data} ? : |
3160 | 2 | 343 | if ($reply =~ /\{topic=(.+?)\}/i) |
3183 | 5 | 2 | exists $self->{'objlangs'}{$obj} ? : |
3184 | 5 | 2 | if (length $lang) { } |
3186 | 5 | 0 | if (exists $self->{'handlers'}{$lang}) { } |
3236 | 24 | 147 | if ($self->{'utf8'}) { } |
3242 | 9 | 15 | if ($botReply) |
3250 | 24 | 147 | if ($self->{'utf8'}) { } |
3268 | 3 | 2 | if ($type eq 'formal') { } |
2 | 0 | elsif ($type eq 'sentence') { } | |
0 | 0 | elsif ($type eq 'upper') { } | |
0 | 0 | elsif ($type eq 'lower') { } |