File Coverage

blib/lib/Rose/HTML/Form/Field/OnOff.pm
Criterion Covered Total %
statement 33 35 94.2
branch 12 14 85.7
condition n/a
subroutine 13 13 100.0
pod 3 9 33.3
total 61 71 85.9


line stmt bran cond sub pod time code
1             package Rose::HTML::Form::Field::OnOff;
2              
3 16     16   133 use strict;
  16         43  
  16         730  
4              
5 16     16   121 use base 'Rose::HTML::Form::Field::Input';
  16         36  
  16         5466  
6              
7 16     16   147 use Rose::HTML::Form::Constants qw(FF_SEPARATOR);
  16         35  
  16         1696  
8              
9             our $VERSION = '0.606';
10              
11             use Rose::Object::MakeMethods::Generic
12             (
13 16         172 boolean => 'hidden',
14 16     16   109 );
  16         36  
15              
16             __PACKAGE__->add_required_html_attrs(
17             {
18             value => 'on',
19             });
20              
21 447     447 1 3077 sub value { shift->html_attr('value', @_) }
22              
23 2 100   2 0 13 sub value_label { $_[0]->is_on ? $_[0]->label : undef }
24              
25 230 100   230 1 616 sub internal_value { $_[0]->is_on ? $_[0]->html_attr('value') : undef }
26 54 50   54 1 190 sub output_value { $_[0]->is_on ? $_[0]->html_attr('value') : undef }
27              
28 5     5 0 27 sub hide { shift->hidden(1) }
29 5     5 0 26 sub show { shift->hidden(0) }
30              
31             sub group_context_name
32             {
33 1330     1330 0 2218 my($self) = shift;
34 1330 100       3630 my $parent_group = $self->parent_group or return;
35 1059 100       2973 my $name = $parent_group->fq_name or return;
36 1044         2672 return $name;
37             }
38              
39             sub fq_name
40             {
41 1214     1214 0 2089 my($self) = shift;
42              
43 1214         2901 my $name = $self->group_context_name;
44 1214 100       2983 $name = $self->local_name unless(defined $name);
45              
46 1214         3610 return join(FF_SEPARATOR, grep { defined } $self->form_context_name,
  3642         9555  
47             $self->field_context_name,
48             $name);
49             }
50              
51             my $sep = FF_SEPARATOR;
52              
53             sub fq_moniker
54             {
55 116     116 0 257 my($self) = shift;
56              
57 116         339 my $name = $self->group_context_name;
58              
59 116 50       360 if(defined $name)
60             {
61 0         0 my $moniker = $self->local_moniker;
62 0         0 $name =~ s/(?:^|\Q$sep\E)[^$sep]+$/$moniker/o;
63             }
64 116         344 else { $name = $self->local_moniker }
65              
66 116         913 return join(FF_SEPARATOR, grep { defined } $self->form_context_name,
  348         1109  
67             $self->field_context_name,
68             $name);
69             }
70              
71             1;