Method: Merb::Global::Locale.parse

Defined in:
lib/merb_global/locale.rb

.parse(header) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/merb_global/locale.rb', line 55

def self.parse(header)
  header = header.split(',')
  header.collect! {|lang| lang.delete ' ' "\n" "\r" "\t"}
  header.reject! {|lang| lang.empty?}
  header.collect! {|lang| lang.split ';q='}
  header.collect! do |lang|
    if lang.size == 1
      [lang[0], 1.0]
    else
      [lang[0], lang[1].to_f]
    end
  end
  header.sort! {|lang_a, lang_b| lang_b[1] <=> lang_a[1]} # sorting by decreasing quality
  header.collect! {|lang| Locale.new(lang[0])}
end