module I18nLanguageSelect::InstanceTag

Public Instance Methods

language_code_select(priority_languages, options, html_options) click to toggle source

Adapted from Rails language_select. Just uses language codes instead of full names.

# File lib/i18n_language_select/instance_tag.rb, line 13
def language_code_select(priority_languages, options, html_options)
  selected = object.send(@method_name) if object.respond_to?(@method_name)

  languages = ""

  if options.present? and options[:include_blank]
    option = options[:include_blank] == true ? "" : options[:include_blank]
    languages += "<option>#{option}</option>\n"
  end

  if priority_languages
    languages += options_for_select(priority_languages, selected)
    languages += "<option value=\"\" disabled=\"disabled\">-------------</option>\n"
  end

  languages = languages + options_for_select(language_translations, selected)

  html_options = html_options.stringify_keys
  add_default_name_and_id(html_options)

  content_tag(:select, languages.html_safe, html_options)
end
language_translations() click to toggle source
# File lib/i18n_language_select/instance_tag.rb, line 36
def language_translations
  I18n.t(I18nLanguageSelect.configuration.namespace.to_s).map do |pairing|
    [pairing[1], pairing[0]] if pairing[0] && pairing[1]
  end.compact.sort_by do |pairing|
    pairing[0] # sort by language name alphabetical
  end
end
to_language_code_select_tag(priority_languages, html_options = {}, options = {}) click to toggle source
# File lib/i18n_language_select/instance_tag.rb, line 4
def to_language_code_select_tag(priority_languages, html_options = {}, options = {})
  # Rails 4 stores options sent when creating an InstanceTag.
  # Let's use them!
  options = @options if defined?(@options)

  language_code_select(priority_languages, options, html_options)
end