def _pp_select(object, method, collection, priority_collection, options={}, html_options={})
return pp_error_on(object, method) do
s = ""
s << "<select id=\"#{object}_#{method}\" name=\"#{object}[#{method}]\""
for key, val in html_options:
s << " #{key}=\"#{val}\""
end
s << ">\n"
key = options.key?(:value) ? :value : (options.key?('value') ? 'value' : nil)
if key.nil? ; selected = "@#{object}.#{method}"
elsif (val=options[key]).nil? ; selected = nil
elsif val =~ /\A<%=(.*)%>\z/ ; selected = $1
else ; selected = val.inspect
end
s << "<% _table = {#{selected}=>' selected=\"selected\"'} %>\n" if selected
if options[:include_blank] || options['include_blank']
s << "<option value=\"\"></option>\n"
end
unless priority_collection.blank?
_pp_select_options(s, priority_collection, selected, 'delete')
s << "<option value=\"\">-------------</option>\n"
end
_pp_select_options(s, collection, selected, '[]')
s << "</select>"
s
end
end