Module: Languages

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

Overview

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

Defined Under Namespace

Classes: Language, LanguageFamily

Constant Summary collapse

VERSION =

Returns:

  • (String)
'1.0.0'
TYPES =

Returns:

  • (Array[String])
%w[constructed extinct historical living special].freeze
SCOPES =

Returns:

  • (Array[String])
%w[individual macrolanguage special].freeze

Class Method Summary collapse

Instance 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

Instance Method Details

#self?.[]Language, ...

Parameters:

  • (String, Symbol)

Returns:



9
# File 'sig/languages.rbs', line 9

def self?.[]: (String | Symbol) -> (Language | LanguageFamily)?

#self?.allArray[Language]

Returns:



12
# File 'sig/languages.rbs', line 12

def self?.all: () -> Array[Language]

#self?.alpha2_codesArray[Symbol]

Returns:

  • (Array[Symbol])


14
# File 'sig/languages.rbs', line 14

def self?.alpha2_codes: () -> Array[Symbol]

#self?.alpha3_codesArray[Symbol]

Returns:

  • (Array[Symbol])


15
# File 'sig/languages.rbs', line 15

def self?.alpha3_codes: () -> Array[Symbol]

#self?.constructedArray[Language]

Returns:



21
# File 'sig/languages.rbs', line 21

def self?.constructed: () -> Array[Language]

#self?.extinctArray[Language]

Returns:



22
# File 'sig/languages.rbs', line 22

def self?.extinct: () -> Array[Language]

#self?.get_by_alpha2Language?

Parameters:

  • key (Symbol)

Returns:



31
# File 'sig/languages.rbs', line 31

def self?.get_by_alpha2: (Symbol key) -> Language?

#self?.get_by_alpha3Language, ...

Parameters:

  • key (Symbol)

Returns:



32
# File 'sig/languages.rbs', line 32

def self?.get_by_alpha3: (Symbol key) -> (Language | LanguageFamily)?

#self?.get_by_nameLanguage?

Parameters:

  • name (String)

Returns:



33
# File 'sig/languages.rbs', line 33

def self?.get_by_name: (String name) -> Language?

#self?.historicalArray[Language]

Returns:



23
# File 'sig/languages.rbs', line 23

def self?.historical: () -> Array[Language]

#self?.individual_languagesArray[Language]

Returns:



19
# File 'sig/languages.rbs', line 19

def self?.individual_languages: () -> Array[Language]

#self?.language_familiesArray[LanguageFamily]

Returns:



27
# File 'sig/languages.rbs', line 27

def self?.language_families: () -> Array[LanguageFamily]

#self?.livingArray[Language]

Returns:



24
# File 'sig/languages.rbs', line 24

def self?.living: () -> Array[Language]

#self?.load_language_familiesHash[Symbol, LanguageFamily]

Returns:



29
# File 'sig/languages.rbs', line 29

def self?.load_language_families: () -> Hash[Symbol, LanguageFamily]

#self?.load_tsv_dataObject

Parameters:

  • filename (String)

Returns:

  • (Object)


34
# File 'sig/languages.rbs', line 34

def self?.load_tsv_data: (String filename) -> untyped

#self?.macrolanguagesArray[Language]

Returns:



18
# File 'sig/languages.rbs', line 18

def self?.macrolanguages: () -> Array[Language]

#self?.namesArray[String]

Returns:

  • (Array[String])


13
# File 'sig/languages.rbs', line 13

def self?.names: () -> Array[String]

#self?.searchArray[Language]

Parameters:

  • pattern (Regexp)

Returns:



10
# File 'sig/languages.rbs', line 10

def self?.search: (Regexp pattern) -> Array[Language]

#self?.specialArray[Language]

Returns:



25
# File 'sig/languages.rbs', line 25

def self?.special: () -> Array[Language]

#self?.special_languagesArray[Language]

Returns:



17
# File 'sig/languages.rbs', line 17

def self?.special_languages: () -> Array[Language]