internetee-registry/lib/sorted_country.rb
2015-09-23 12:34:18 +03:00

43 lines
1.1 KiB
Ruby

require 'countries'
require 'action_view'
class SortedCountry
class << self
include ActionView::Helpers
def all_options(selected = nil)
quick_options = options_for_select(quick_list, { selected: selected })
# no double select
selected = quick_list.map(&:second).include?(selected) ? '' : selected
all_options = options_for_select([['---', '---']] + all_sorted_truncated,
{ selected: selected, disabled: ['---'] })
quick_options + all_options
end
private
def quick_list
@quick_list ||=
[
['Estonia', 'EE'],
['Finland', 'FI'],
['Latvia', 'LV'],
['Lithuania', 'LT'],
['Russian Federation', 'RU'],
['Sweden', 'SE'],
['United States', 'US']
]
end
def all_sorted
@all_sorted ||= Country.all.sort_by { |name, _code| name.first }
end
def all_sorted_truncated
@all_sorted_truncated ||=
all_sorted.map { |name, code| [truncate(name, length: 26), code] }
end
end
end