File Coverage

blib/lib/WebService/Solr/Field.pm
Criterion Covered Total %
statement 30 30 100.0
branch 9 12 75.0
condition 2 2 100.0
subroutine 9 9 100.0
pod 6 6 100.0
total 56 59 94.9


line stmt bran cond sub pod time code
1             package WebService::Solr::Field;
2              
3 5     5   14714 use XML::Easy::Element;
  5         6369  
  5         136  
4 5     5   24 use XML::Easy::Content;
  5         5  
  5         79  
5 5     5   2233 use XML::Easy::Text ();
  5         5037  
  5         1404  
6              
7             sub new {
8 36     36 1 1811 my ( $class, $name, $value, $opts ) = @_;
9 36   100     86 $opts ||= {};
10              
11 36 100       50 die "name required" unless defined $name;
12 35 100       50 die "value required" unless defined $value;
13              
14             my $self = {
15             name => $name,
16             value => $value,
17 34         29 %{ $opts },
  34         69  
18             };
19              
20 34         89 return bless $self, $class;
21             }
22              
23             sub name {
24 60     60 1 44 my $self = shift;
25 60 50       72 $self->{ name } = $_[ 0 ] if @_;
26 60         134 return $self->{ name };
27             }
28              
29             sub value {
30 40     40 1 29 my $self = shift;
31 40 50       50 $self->{ value } = $_[ 0 ] if @_;
32 40         406 return $self->{ value };
33             }
34              
35             sub boost {
36 50     50 1 33 my $self = shift;
37 50 50       65 $self->{ boost } = $_[ 0 ] if @_;
38 50         82 return $self->{ boost };
39             }
40              
41             sub to_element {
42 30     30 1 24 my $self = shift;
43 30 100       34 my %attr = ( $self->boost ? ( boost => $self->boost ) : () );
44              
45 30         36 return XML::Easy::Element->new(
46             'field',
47             { name => $self->name, %attr },
48             XML::Easy::Content->new( [ $self->value ] ),
49             );
50             }
51              
52             sub to_xml {
53 5     5 1 15 my $self = shift;
54              
55 5         8 return XML::Easy::Text::xml10_write_element( $self->to_element );
56             }
57              
58             1;
59              
60             __END__