| blib/lib/VSO.pm | |||
|---|---|---|---|
| Criterion | Covered | Total | % |
| condition | 37 | 60 | 61.6 |
| line | !l | l&&!r | l&&r | condition |
|---|---|---|---|---|
| 43 | 0 | 22 | 0 | $args{'extends'} and not ref $args{'extends'} |
| 97 | 0 | 55 | 6 | $$props{'required'} and not defined $value |
| 55 | 2 | 4 | $$props{'required'} and not defined $value and not $$props{'default'} | |
| 52 | 3 | 2 | $$props{'default'} and not defined $value | |
| 117 | 52 | 0 | 0 | $$props{'where'} and defined $value |
| 146 | 0 | 0 | 0 | $$props{'required'} and defined $original_value |
| 154 | 25 | 2 | 14 | $$props{'coerce'} && exists $$_coercions{$wanted_type}{$current_type} |
| 344 | 18 | 0 | 0 | not defined $$s{$name} and $$props{'default'} |
| line | l | !l | condition |
|---|---|---|---|
| 42 | 0 | 22 | $args{'extends'} ||= [] |
| 72 | 16 | 17 | $$meta{'field_names'} ||= [sort(keys %{$$meta{'fields'};})] |
| 203 | 3 | 0 | eval { do { ': ' . $$props{'isa'}->message($s) } } || '' |
| 250 | 0 | 2 | $$meta{'triggers'}{"before.$name"} ||= [] |
| 278 | 0 | 2 | $$meta{'triggers'}{"after.$name"} ||= [] |
| 304 | 26 | 3 | $properties{'isa'} ||= 'Any' |
| 489 | 180 | 9 | $args{'as'} ||= '' |
| 518 | 182 | 0 | $args{'where'} || sub { 1; } |
| 179 | 3 | $args{'message'} || sub { "Must be a valid '${name}'"; } |
| line | l | !l&&r | !l&&!r | condition |
|---|---|---|---|---|
| 46 | 0 | 22 | 0 | $$_meta{$caller} ||= _new_meta() |
| 154 | 4 | 17 | 41 | $wanted_type eq 'Any' or $current_type->isa($wanted_type) |
| 245 | 2 | 4 | 0 | exists $$meta{'fields'}{$name} or $class->can($name) |
| 273 | 2 | 4 | 0 | exists $$meta{'fields'}{$name} or $class->can($name) |
| 473 | 4 | 0 | 0 | defined @{"${class}::ISA";} or $INC{$file} |
| 475 | 0 | 4 | 0 | $INC{$file} ||= $file |