Class: Language

Inherits:
Object
  • Object
show all
Defined in:
app/models/language.rb

Constant Summary collapse

LANGUAGES =
{
  ENGLISH: 'E',
  FRENCH: 'F'
}
ENGLISH =
{
  value: LANGUAGES[:ENGLISH],
  label: I18n.t('languages.english'),
  locale: :en
}
FRENCH =
{
  value: LANGUAGES[:FRENCH],
  label: I18n.t('languages.french'),
  locale: :fr
}

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value) ⇒ Language

Returns a new instance of Language.



28
29
30
# File 'app/models/language.rb', line 28

def initialize(value)
  @value = value
end

Class Method Details

.from_locale(locale) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'app/models/language.rb', line 18

def self.from_locale(locale)
  locale = locale.to_s.downcase
  case locale
  when 'en'
    new(LANGUAGES[:ENGLISH])
  when 'fr'
    new(LANGUAGES[:FRENCH])
  end
end

Instance Method Details

#descriptionObject



41
42
43
# File 'app/models/language.rb', line 41

def description
  to_h[:label]
end

#localeObject



45
46
47
# File 'app/models/language.rb', line 45

def locale
  to_h[:locale]
end

#to_hObject



32
33
34
35
36
37
38
39
# File 'app/models/language.rb', line 32

def to_h
  case @value
  when LANGUAGES[:ENGLISH]
    ENGLISH
  when LANGUAGES[:FRENCH]
    FRENCH
  end
end

#valueObject



49
50
51
# File 'app/models/language.rb', line 49

def value
  to_h[:value]
end