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   14754 use XML::Easy::Element;
  5         5543  
  5         136  
4 5     5   32 use XML::Easy::Content;
  5         11  
  5         85  
5 5     5   1885 use XML::Easy::Text ();
  5         4549  
  5         1078  
6              
7             sub new {
8 36     36 1 3089 my ( $class, $name, $value, $opts ) = @_;
9 36   100     126 $opts ||= {};
10              
11 36 100       94 die "name required" unless defined $name;
12 35 100       82 die "value required" unless defined $value;
13              
14             my $self = {
15             name => $name,
16             value => $value,
17 34         54 %{ $opts },
  34         101  
18             };
19              
20 34         133 return bless $self, $class;
21             }
22              
23             sub name {
24 60     60 1 86 my $self = shift;
25 60 50       123 $self->{ name } = $_[ 0 ] if @_;
26 60         183 return $self->{ name };
27             }
28              
29             sub value {
30 40     40 1 60 my $self = shift;
31 40 50       83 $self->{ value } = $_[ 0 ] if @_;
32 40         437 return $self->{ value };
33             }
34              
35             sub boost {
36 50     50 1 68 my $self = shift;
37 50 50       104 $self->{ boost } = $_[ 0 ] if @_;
38 50         127 return $self->{ boost };
39             }
40              
41             sub to_element {
42 30     30 1 45 my $self = shift;
43 30 100       57 my %attr = ( $self->boost ? ( boost => $self->boost ) : () );
44              
45 30         65 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 28 my $self = shift;
54              
55 5         13 return XML::Easy::Text::xml10_write_element( $self->to_element );
56             }
57              
58             1;
59              
60             __END__