module Erubis::Helpers::RailsFormHelper

def _pp_select(object, method, collection, priority_collection, options={}, html_options={})

def _pp_select(object, method, collection, priority_collection, options={}, html_options={})
  return pp_error_on(object, method) do
    s = ""
    ## start tag
    s << "<select id=\"#{object}_#{method}\" name=\"#{object}[#{method}]\""
    for key, val in html_options:
        s << " #{key}=\"#{val}\""
    end
    s << ">\n"
    ## selected table
    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
    ## <option> tags
    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, '[]')
    ## end tag
    s << "</select>"
    s
  end
end