HTML-SuperForm

 view release on metacpan or  search on metacpan

lib/HTML/SuperForm/Field.pm  view on Meta::CPAN

    my $self = shift;
    my $key = shift;

    if(ref($key) eq "ARRAY") {
        for my $k (@$key) {
            if($self->{_selected}{$k}) {
                return 1;
            }
        }
        return 0;
    }

    return $self->{_selected}{$key};
}

sub selected_str {
    my $self = shift;
    my $key = shift;
    if($self->well_formed) {
        return $self->selected($key) ? ' selected="selected"' : '';
    }
    return $self->selected($key) ? ' selected' : '';
}

sub checked_str {
    my $self = shift;
    my $key = shift;
    if($self->well_formed) {
        return $self->selected($key) ? ' checked="checked"' : '';
    }
    return $self->selected($key) ? ' checked' : '';
}

sub multiple_str {
    my $self = shift;

    if($self->well_formed) {
        return $self->multiple ? ' multiple="' . $self->multiple . '"' : '';
    }
    return $self->multiple ? ' multiple' : '';
}

sub readonly_str {
    my $self = shift;

    if($self->well_formed) {
        return $self->readonly ? ' readonly="' . $self->readonly . '"' : '';
    }
    return $self->readonly ? ' readonly' : '';
}

sub disabled_str {
    my $self = shift;

    if($self->well_formed) {
        return $self->disabled ? ' disabled="' . $self->disabled . '"' : '';
    }
    return $self->disabled ? ' disabled' : '';
}

sub update_form {
    my $self = shift;

    return unless $self->name();
    return unless UNIVERSAL::isa($self->form, "HTML::SuperForm");

    if(defined($self->default) || !$self->selectable) {
        $self->form->add_default($self->name() => $self->default);
    } else {
        $self->form->set_default($self->name() => undef);
    }
}

sub attribute_str {
    my $self = shift;

    return " " . join(' ', map { qq|$_="$self->{_attributes}{$_}"| } 
            keys %{$self->{_attributes}});
}

sub values {
    my $self = shift;

    return $self->{_all_values};
}

sub AUTOLOAD {
    my $self = $_[0];

    my ($key) = ${*AUTOLOAD} =~ /::([^:]*)$/;

    {
        no strict "refs";
        if(exists($mutators{$key})) {
            *{"HTML::SuperForm::Field::$key"} = sub {
                my $self = shift;
                my $val = shift;

                if(defined($val)) {
                    $self->{'_' . $key} = $val;
                    return;
                }

                return $self->{'_' . $key};
            };
            goto &{"HTML::SuperForm::Field::$key"};
        }

        if(exists($accessors{$key})) {
            *{"HTML::SuperForm::Field::$key"} = sub {
                my $self = shift;

                return $self->{'_' . $key};
            };
            goto &{"HTML::SuperForm::Field::$key"};
        }

        if(exists($self->{_attributes}{$key})) {
            *{"HTML::SuperForm::Field::$key"} = sub {
                my $self = shift;
                return $self->{_attributes}{$key};



( run in 1.038 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )