File Coverage

blib/lib/Rose/HTML/Form/Field/Time/Minutes.pm
Criterion Covered Total %
statement 18 26 69.2
branch 0 4 0.0
condition 0 6 0.0
subroutine 6 7 85.7
pod 2 2 100.0
total 26 45 57.7


line stmt bran cond sub pod time code
1              
2             use strict;
3 6     6   35  
  6         14  
  6         200  
4             use Rose::HTML::Object::Errors qw(:time);
5 6     6   29 use Rose::HTML::Object::Messages qw(:time);
  6         11  
  6         35  
6 6     6   39  
  6         8  
  6         33  
7             use base 'Rose::HTML::Form::Field::Text';
8 6     6   36  
  6         12  
  6         1684  
9             our $VERSION = '0.606';
10              
11             __PACKAGE__->add_required_html_attrs(
12             {
13             size => 2,
14             });
15              
16             {
17             my($self) = shift;
18             $self->label_id(FIELD_LABEL_MINUTE);
19 23     23 1 53 $self->SUPER::init(@_);
20 23         102 }
21 23         94  
22             {
23             my($self) = shift;
24              
25             my $ok = $self->SUPER::validate(@_);
26 0     0 1   return $ok unless($ok);
27              
28 0           my $value = $self->internal_value;
29 0 0          
30             unless($value =~ /^\d\d?$/ && $value >= 0 && $value <= 59)
31 0           {
32             $self->add_error_id(TIME_INVALID_MINUTE);
33 0 0 0       return 0;
      0        
34             }
35 0            
36 0           return 1;
37             }
38              
39 0           if(__PACKAGE__->localizer->auto_load_messages)
40             {
41             __PACKAGE__->localizer->load_all_messages;
42             }
43              
44             use utf8; # The __DATA__ section contains UTF-8 text
45              
46             1;
47 6     6   40  
  6         18  
  6         31  
48              
49             [% LOCALE en %]
50              
51             TIME_INVALID_MINUTE = "Invalid minute."
52             FIELD_LABEL_MINUTE = "Minute"
53             FIELD_ERROR_LABEL_MINUTE = "minute"
54              
55             [% LOCALE de %]
56              
57             TIME_INVALID_MINUTE = "Ungültige Minuten."
58             FIELD_LABEL_MINUTE = "Minuten"
59             FIELD_ERROR_LABEL_MINUTE = "Minuten"
60              
61             [% LOCALE fr %]
62              
63             TIME_INVALID_MINUTE = "Minute invalide."
64             FIELD_LABEL_MINUTE = "Minute"
65             FIELD_ERROR_LABEL_MINUTE = "minute"
66              
67             [% LOCALE bg %]
68              
69             TIME_INVALID_MINUTE = "Невалидна минута."
70             FIELD_LABEL_MINUTE = "Минута"
71             FIELD_ERROR_LABEL_MINUTE = "минута"
72              
73              
74             __END__
75              
76             =head1 NAME
77              
78             Rose::HTML::Form::Field::Time::Minutes - Text field that only accepts valid minutes.
79              
80             =head1 SYNOPSIS
81              
82             $field =
83             Rose::HTML::Form::Field::Time::Minutes->new(
84             label => 'Minutes',
85             name => 'mins');
86              
87             $field->input_value(99);
88             $field->validate; # 0
89              
90             $field->input_value(20);
91             $field->validate; # 1
92              
93             print $field->html;
94              
95             ...
96              
97             =head1 DESCRIPTION
98              
99             L<Rose::HTML::Form::Field::Time::Minutes> is a subclass of L<Rose::HTML::Form::Field::Text> that only accepts valid minutes: numbers between 0 and 59, inclusive, with or without leading zeros.
100              
101             =head1 AUTHOR
102              
103             John C. Siracusa (siracusa@gmail.com)
104              
105             =head1 LICENSE
106              
107             Copyright (c) 2010 by John C. Siracusa. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.