class HeadMusic::Named::Locale

Locale encapsulates a language and optional region or country.

Constants

DEFAULT_CODE

Attributes

language[R]
region[R]

Public Class Methods

default_locale() click to toggle source
# File lib/head_music/named.rb, line 13
def self.default_locale
  get(DEFAULT_CODE)
end
get(code) click to toggle source
# File lib/head_music/named.rb, line 17
def self.get(code)
  @locales ||= {}
  parts = code.to_s.split(/[_\-]/)
  language = parts[0].downcase
  region = parts[1]&.upcase
  key = [language, region].compact.join('_').to_sym
  @locales[key] ||= new(language: language, region: region)
end

Private Class Methods

new(language:, region: nil) click to toggle source
# File lib/head_music/named.rb, line 26
def initialize(language:, region: nil)
  @language = language
  @region = region
end

Public Instance Methods

code() click to toggle source
# File lib/head_music/named.rb, line 31
def code
  @code ||= [@language, @region].compact.join('_')
end