Module: Languages

Defined in:
lib/languages.rb,
lib/languages/version.rb,
lib/languages/language.rb,
lib/languages/constants.rb,
lib/languages/language_family.rb

Overview

Provides living, extinct, ancient, historic, and constructed languages, specified in ISO 639-3

Defined Under Namespace

Classes: Language, LanguageFamily

Constant Summary collapse

VERSION =
'1.0.0'
TYPES =
%w[constructed extinct historical living special].freeze
SCOPES =
%w[individual macrolanguage special].freeze

Class Method Summary collapse

Class Method Details

.[](key) ⇒ Object



28
29
30
31
32
33
34
35
# File 'lib/languages.rb', line 28

def [](key)
  key = key.to_s.downcase
  case key.size
  when 3 then get_by_alpha3(key.to_sym)
  when 2 then get_by_alpha2(key.to_sym)
  else get_by_name(key)
  end
end

.allObject

Returns all human known languages, specified in ISO 639-3



44
45
46
# File 'lib/languages.rb', line 44

def all
  @data.values
end

.alpha2_codesObject



52
53
54
# File 'lib/languages.rb', line 52

def alpha2_codes
  all.map(&:alpha2).compact
end

.alpha3_codesObject



56
57
58
# File 'lib/languages.rb', line 56

def alpha3_codes
  all.map(&:alpha3)
end

.language_familiesObject

Returns all language families and groups defined in ISO 639-5



61
62
63
# File 'lib/languages.rb', line 61

def language_families
  @language_families.values
end

.namesObject



48
49
50
# File 'lib/languages.rb', line 48

def names
  all.map(&:name)
end

.search(pattern) ⇒ Object

Raises:

  • (ArgumentError)


37
38
39
40
41
# File 'lib/languages.rb', line 37

def search(pattern)
  raise(ArgumentError, 'Pattern must be a Regexp') unless pattern.is_a?(Regexp)

  all.select { |l| l.name.match? pattern }
end