Module: WorldFlags::Helper::View::Util

Defined in:
lib/world_flags/helper/view/util.rb

Class Method Summary collapse

Class Method Details

.flag_code(code) ⇒ Object

define more mappings by setting WorldFlags.locale_flag_map to a Hash map en.wikipedia.org/wiki/ISO_639-1_language_matrix



63
64
65
# File 'lib/world_flags/helper/view/util.rb', line 63

def self.flag_code code
  WorldFlags.flag_code code
end

.flag_options(code, title, name, options = {}) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/world_flags/helper/view/util.rb', line 27

def self.flag_options code, title, name, options = {}
  locale = I18n.locale
  extra_options = title ? {:title => title } : {}      
  selected = flag_selected?(code, options) ? ' selected' : ''

  # add semi class if not selected
  semi = (selected.blank? ? ' semi' : '') if options[:with_semi]
  xclass = options[:class] ? " #{options[:class]}" : ''

  if WorldFlags.country_name_enabled?
    country_name = WorldFlags.country(code, locale)           
  end
  country_option = country_name ? {:'data-country_name' => country_name} : {}

  if WorldFlags.language_name_enabled?
    language_name = WorldFlags.language(code, locale)
  end
  language_option = language_name ? {:'data-language_name' => language_name} : {}

  flag_locale = WorldFlags.locale(code)

  {:class => "flag #{code}#{selected}#{semi}#{xclass}", :'data-cc' => code, :'data-locale' => flag_locale}.merge(options[:html] || {}).merge(extra_options).merge(country_option).merge(language_option)
end

.flag_selected?(code, options = {}) ⇒ Boolean

Returns:

  • (Boolean)


51
52
53
54
55
56
57
58
59
# File 'lib/world_flags/helper/view/util.rb', line 51

def self.flag_selected? code, options = {}
  code = code.to_sym
  sel = options[:selected] || options[code]

  auto_sel = flag_code(I18n.locale).to_sym if WorldFlags.auto_select?
  match_locales = [sel, auto_sel]

  selected ||= match_locales.any?{|e| e == code }
end

.label_for(options = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/world_flags/helper/view/util.rb', line 5

def self.label_for options = {}
  label = case options[:content]
  when true 
    name
  when String
    options[:content]
  else
    WorldFlags.flag_text
  end
end

.title_for(name, options = {}) ⇒ Object



16
17
18
19
20
21
22
23
24
25
# File 'lib/world_flags/helper/view/util.rb', line 16

def self.title_for name, options = {}
  case options[:title]
  when true
    name
  when String
    options[:title]
  else
    nil
  end        
end