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 12     12   61187 use XML::Easy::Element;
  12         14930  
  12         376  
4 12     12   73 use XML::Easy::Content;
  12         23  
  12         202  
5 12     12   5292 use XML::Easy::Text ();
  12         11249  
  12         3075  
6              
7             sub new {
8 38     38 1 3079 my ( $class, $name, $value, $opts ) = @_;
9 38   100     124 $opts ||= {};
10              
11 38 100       69 die "name required" unless defined $name;
12 37 100       69 die "value required" unless defined $value;
13              
14             my $self = {
15             name => $name,
16             value => $value,
17 36         45 %{ $opts },
  36         95  
18             };
19              
20 36         116 return bless $self, $class;
21             }
22              
23             sub name {
24 62     62 1 83 my $self = shift;
25 62 50       91 $self->{ name } = $_[ 0 ] if @_;
26 62         161 return $self->{ name };
27             }
28              
29             sub value {
30 42     42 1 52 my $self = shift;
31 42 50       62 $self->{ value } = $_[ 0 ] if @_;
32 42         436 return $self->{ value };
33             }
34              
35             sub boost {
36 52     52 1 57 my $self = shift;
37 52 50       78 $self->{ boost } = $_[ 0 ] if @_;
38 52         107 return $self->{ boost };
39             }
40              
41             sub to_element {
42 32     32 1 35 my $self = shift;
43 32 100       49 my %attr = ( $self->boost ? ( boost => $self->boost ) : () );
44              
45 32         79 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 21 my $self = shift;
54              
55 5         7 return XML::Easy::Text::xml10_write_element( $self->to_element );
56             }
57              
58             1;
59              
60             __END__