Files
racalmas/lib/calcms/entry.pm

52 lines
1.1 KiB
Perl

package entry;
use warnings;
use strict;
sub from_valid($$) {
my ( $params, $attrs ) = @_;
return { map { defined $params->{$_} ? { $_ => $params->{$_} } : () } @$attrs };
}
sub set_numbers($$$) {
my ( $entry, $params, $fields ) = @_;
for my $field (@$fields) {
my $value = $params->{$field};
next unless defined $value;
if ( $value =~ /([\-\d]+)/ ){
$entry->{$field} = $1;
}
}
}
sub set_bools($$$) {
my ( $entry, $params, $fields ) = @_;
for my $field (@$fields) {
my $value = $params->{$field};
next unless defined $value;
if ($value=~/([01])/){
$entry->{$field} = $1;
}
}
}
sub set_strings($$$) {
my ( $entry, $params, $attrs ) = @_;
for my $field (@$attrs) {
my $value = $params->{$field};
next unless defined $value;
$entry->{$field} = $value;
$entry->{$field} =~ s/^\s+//g;
$entry->{$field} =~ s/\s+$//g;
}
}
sub element_of($$) {
my ( $value, $attrs ) = @_;
return unless $value;
return { map { $_ => $_ } @$attrs }->{$value} //'';
}
# do not delete last line
1;