def handle(directive, elem_info, stmt_list)
ret = super
return ret if ret
d_name = directive.name
d_arg = directive.arg
d_str = directive.str
e = elem_info
attr_info = e.attr_info
case d_name.to_s
when /(_|\A)radio_button\z/
add_directive_object_and_method_and_value(d_arg, attr_info)
when /_field\z/, /_area\z/, /_box\z/, /(_|\A)select\z/, 'input'
add_directive_object_and_method(d_arg, attr_info)
end
replace_elem = d_name.to_s !~ /\Astart_/
case d_name
when :text_field, :password_field, :hidden_field
add_directive_integer_option(d_arg, 'size', attr_info['size'])
add_directive_integer_option(d_arg, 'maxsize', attr_info['maxsize'])
when :file_field
add_directive_integer_option(d_arg, 'size', attr_info['size'])
when :link_to, :link_to_remote, :link_to_unless_current
add_directive_content_as_arg(d_arg, elem_info.cont_stmts)
when :anchor, :anchor_remote
replace_elem = false
when :mail_to
add_directive_content_as_arg(d_arg, elem_info.cont_stmts)
add_directive_attr_as_arg(d_arg, attr_info, 'href')
d_arg.sub!(/\A\'mailto:/, "'")
when :form_tag, :start_form_tag
add_directive_attr_as_option(d_arg, attr_info, 'action')
replace_elem = false
when :text_area
add_directive_integer_option(d_arg, 'cols', attr_info['cols'])
add_directive_integer_option(d_arg, 'rows', attr_info['rows'])
when :submit_tag
add_directive_attr_as_arg(d_arg, attr_info, 'value')
when :submit_to_remote
add_directive_attr_as_arg(d_arg, attr_info, 'value')
add_directive_attr_as_arg(d_arg, attr_info, 'name')
when :radio_button
when :check_box
when :select, :collection_select, :country_select, :time_zone_select, :date_select, :datetime_select
when :image_tag, :link_image_to, :link_to_image
add_directive_attr_as_arg(d_arg, attr_info, 'src')
add_directive_str_option(d_arg, 'alt', attr_info['alt'])
else
end
print_directive(elem_info, stmt_list, d_name, d_arg, replace_elem)
return true
end