File Coverage

blib/lib/Translate/Fluent/Elements.pm
Criterion Covered Total %
statement 78 82 95.1
branch 1 6 16.6
condition n/a
subroutine 24 24 100.0
pod 1 1 100.0
total 104 113 92.0


line stmt bran cond sub pod time code
1             package Translate::Fluent::Elements;
2              
3 6     6   2365 use Translate::Fluent::Elements::Message;
  6         20  
  6         160  
4 6     6   2710 use Translate::Fluent::Elements::Pattern;
  6         16  
  6         161  
5 6     6   2450 use Translate::Fluent::Elements::PatternElement;
  6         17  
  6         188  
6 6     6   2485 use Translate::Fluent::Elements::InlinePlaceable;
  6         65  
  6         181  
7 6     6   2404 use Translate::Fluent::Elements::InlineText;
  6         19  
  6         181  
8 6     6   2687 use Translate::Fluent::Elements::InlineExpression;
  6         18  
  6         177  
9 6     6   2480 use Translate::Fluent::Elements::BlockText;
  6         16  
  6         169  
10 6     6   2411 use Translate::Fluent::Elements::BlockPlaceable;
  6         17  
  6         195  
11 6     6   2444 use Translate::Fluent::Elements::FunctionReference;
  6         18  
  6         176  
12 6     6   2618 use Translate::Fluent::Elements::VariableReference;
  6         18  
  6         182  
13 6     6   2404 use Translate::Fluent::Elements::CallArguments;
  6         17  
  6         171  
14 6     6   2449 use Translate::Fluent::Elements::ArgumentList;
  6         18  
  6         162  
15 6     6   2497 use Translate::Fluent::Elements::Argument;
  6         17  
  6         156  
16 6     6   2504 use Translate::Fluent::Elements::NamedArgument;
  6         18  
  6         160  
17 6     6   2550 use Translate::Fluent::Elements::MessageReference;
  6         18  
  6         158  
18 6     6   2582 use Translate::Fluent::Elements::TermReference;
  6         18  
  6         166  
19 6     6   2484 use Translate::Fluent::Elements::AttributeAccessor;
  6         17  
  6         153  
20 6     6   2625 use Translate::Fluent::Elements::StringLiteral;
  6         16  
  6         179  
21 6     6   2380 use Translate::Fluent::Elements::Term;
  6         14  
  6         159  
22 6     6   2479 use Translate::Fluent::Elements::SelectExpression;
  6         17  
  6         162  
23 6     6   2402 use Translate::Fluent::Elements::Variant;
  6         17  
  6         156  
24 6     6   2797 use Translate::Fluent::Elements::DefaultVariant;
  6         18  
  6         216  
25 6     6   2338 use Translate::Fluent::Elements::Attribute;
  6         17  
  6         1193  
26              
27             sub create {
28 708     708 1 1407 my (undef, $type, $args) = @_;
29              
30 708         1454 $type = "\u$type";
31 708         2821 $type =~ s/_(.)/\u$1/g;
32              
33 708         1613 my $class = "Translate::Fluent::Elements::$type";
34              
35 708         976 my $res;
36             eval {
37 708         12250 $res = $class->new( %$args );
38              
39 708         21077 1;
40 708 50       997 } or do {
41 0         0 my ($err) = $@;
42 0 0       0 print STDERR "err: $err\n"
43             unless $err =~ m{Can't locate object method "new"};
44 0 0       0 unless ($type eq 'Text') {
45 0         0 print STDERR "FLT: Missing $class\n";
46             }
47             };
48              
49 708         1776 return $res;
50             }
51              
52             1;
53              
54             __END__