Sha256: 65ad6d9cd1ea3e8f34796858c63a4642707714806ba45f93b94a01e73d2915e7
Contents?: true
Size: 1.7 KB
Versions: 2
Compression:
Stored size: 1.7 KB
Contents
# CountrySelect - stolen from http://github.com/rails/iso-3166-country-select module ActionView module Helpers module FormOptionsHelper def country_select(object, method, priority_countries = nil, options = {}, html_options = {}) InstanceTag.new(object, method, self, options.delete(:object)).to_country_select_tag(priority_countries, options, html_options) end def country_options_for_select(selected = nil, priority_countries = nil) country_options = "".html_safe if priority_countries priority_countries = [*priority_countries].map {|x| [x.html_safe,ISO3166::Country::NameIndex[x]] } country_options += options_for_select(priority_countries, selected) country_options += "<option value=\"\" disabled=\"disabled\">-------------</option>\n" end countries = ISO3166::Country::Names.map{|(name,alpha2)| [name.html_safe,alpha2] } return country_options + options_for_select(countries, selected) end end class InstanceTag def to_country_select_tag(priority_countries, options, html_options) html_options = html_options.stringify_keys add_default_name_and_id(html_options) value = options.delete(:selected) || value(object) content_tag("select", add_options( country_options_for_select(value, priority_countries), options, value ), html_options ) end end class FormBuilder def country_select(method, priority_countries = nil, options = {}, html_options = {}) @template.country_select(@object_name, method, priority_countries, options.merge(:object => @object), html_options) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
countries-0.8.4 | lib/countries/select_helper.rb |
countries-0.8.3 | lib/countries/select_helper.rb |