iso-codes 0.4.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/iso_codes.rb CHANGED
@@ -1,18 +1,11 @@
1
- #
2
- # iso_codes.rb - A comprehensive database of ISO codes
3
- #
4
- # Written by Marius L. Jøhndal, 2008, 2010, 2011.
5
- #
6
- require 'zlib'
1
+ require 'iso_codes/version'
7
2
 
8
3
  module ISOCodes
9
- # Version of the ISO 639-3 code set supported (see
10
- # http://www.sil.org/iso639-3/download.asp).
11
- ISO_639_3_VERSION = '20110525'
4
+ # Version of the ISO 639-3 code set supported.
5
+ ISO_639_3_VERSION = '20130531'
12
6
 
13
- # Version of the ISO 639-3 macrolanguage mappings supported (see
14
- # http://www.sil.org/iso639-3/download.asp).
15
- ISO_639_3_MACROLANGUAGE_MAPPINGS_VERSION = '20100128'
7
+ # Version of the ISO 639-3 macrolanguage mappings supported.
8
+ ISO_639_3_MACROLANGUAGE_MAPPINGS_VERSION = '20130531'
16
9
 
17
10
  class Language
18
11
  # ISO 639-3 identifier for the language, or +nil+ if none is defined.
@@ -40,9 +33,9 @@ module ISOCodes
40
33
 
41
34
  def initialize(identifier, part2b, part2t, part1, language_type, ref_name)
42
35
  @identifier = identifier
43
- @alpha3_bibliographic = part2b
44
- @alpha3_terminology = part2t
45
- @alpha2 = part1
36
+ @alpha3_bibliographic = part2b == '' ? nil : part2b
37
+ @alpha3_terminology = part2t == '' ? nil : part2t
38
+ @alpha2 = part1 == '' ? nil : part1
46
39
  @language_type = language_type
47
40
  @reference_name = ref_name
48
41
  end
@@ -123,7 +116,7 @@ module ISOCodes
123
116
  end
124
117
 
125
118
  def read_data_file(filename, field_count, delimiter, skip_first)
126
- Zlib::GzipReader.open(get_data_filename(filename)).each_line do |l|
119
+ File.open(get_data_filename(filename)).each_line do |l|
127
120
  if skip_first
128
121
  skip_first = false
129
122
  next
@@ -136,8 +129,8 @@ module ISOCodes
136
129
  def load_iso_639_3
137
130
  data = {}
138
131
 
139
- read_data_file("iso-639-3_#{ISO_639_3_VERSION}.tab.gz", 8, "\t", true) do |args|
140
- identifier, part2b, part2t, part1, scope, language_type, ref_name, comment = args
132
+ read_data_file("iso-639-3.tab.txt", 8, "\t", true) do |args|
133
+ identifier, part2b, part2t, part1, scope, language_type, ref_name, _ = args
141
134
 
142
135
  # Sanity checks
143
136
  raise ArgumentError, "missing identifier" if identifier.nil?
@@ -176,7 +169,7 @@ module ISOCodes
176
169
  data[identifier] = [klass, nil, nil, identifier, part2b, part2t, part1, language_type, ref_name]
177
170
  end
178
171
 
179
- read_data_file("iso-639-3-macrolanguages_#{ISO_639_3_MACROLANGUAGE_MAPPINGS_VERSION}.tab.gz", 3, "\t", true) do |args|
172
+ read_data_file("iso-639-3-macrolanguages.tab.txt", 3, "\t", true) do |args|
180
173
  macrolanguage_identifier, individual_language_identifier, status = args
181
174
 
182
175
  case status
@@ -0,0 +1,3 @@
1
+ module ISOCodes
2
+ VERSION = '1.0.1' unless defined?(ISOCodes::VERSION)
3
+ end
metadata CHANGED
@@ -1,54 +1,138 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iso-codes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
5
- prerelease:
4
+ version: 1.0.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Marius L. Jøhndal
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-01-26 00:00:00.000000000 Z
13
- dependencies: []
14
- description: A database of ISO language and script codes.
15
- email: mariuslj (at) ifi [dot] uio (dot) no
11
+ date: 2016-05-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '10.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '10.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: yard
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.8.7
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.8.7
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.2'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: simplecov
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.10'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.10'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.10'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.10'
83
+ - !ruby/object:Gem::Dependency
84
+ name: bundler
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.0'
97
+ description: A database of ISO language codes and ISO script codes for Ruby.
98
+ email:
99
+ - mariuslj@ifi.uio.no
16
100
  executables: []
17
101
  extensions: []
18
- extra_rdoc_files:
19
- - README.rdoc
102
+ extra_rdoc_files: []
20
103
  files:
21
- - CHANGELOG
22
- - README.rdoc
23
- - Rakefile
24
- - VERSION
25
- - iso-codes.gemspec
26
- - lib/iso-639-3-macrolanguages_20100128.tab.gz
27
- - lib/iso-639-3_20110525.tab.gz
104
+ - CHANGELOG.md
105
+ - LICENSE.md
106
+ - README.md
107
+ - bin/console
108
+ - bin/setup
109
+ - lib/iso-639-3-macrolanguages.tab.txt
110
+ - lib/iso-639-3.tab.txt
28
111
  - lib/iso_codes.rb
29
- - test/test_iso_codes.rb
112
+ - lib/iso_codes/version.rb
30
113
  homepage: http://github.com/mlj/iso-codes
31
- licenses: []
114
+ licenses:
115
+ - MIT
116
+ metadata: {}
32
117
  post_install_message:
33
118
  rdoc_options: []
34
119
  require_paths:
35
120
  - lib
36
121
  required_ruby_version: !ruby/object:Gem::Requirement
37
- none: false
38
122
  requirements:
39
- - - ! '>='
123
+ - - ">="
40
124
  - !ruby/object:Gem::Version
41
125
  version: '0'
42
126
  required_rubygems_version: !ruby/object:Gem::Requirement
43
- none: false
44
127
  requirements:
45
- - - ! '>='
128
+ - - ">="
46
129
  - !ruby/object:Gem::Version
47
130
  version: '0'
48
131
  requirements: []
49
- rubyforge_project: iso-codes
50
- rubygems_version: 1.8.11
132
+ rubyforge_project:
133
+ rubygems_version: 2.5.1
51
134
  signing_key:
52
- specification_version: 3
53
- summary: ISO language and script code support
135
+ specification_version: 4
136
+ summary: ISO language and script codes
54
137
  test_files: []
138
+ has_rdoc:
data/CHANGELOG DELETED
@@ -1,5 +0,0 @@
1
- v0.4.0. support for 'special situation' codes
2
- v0.3.0. Ruby 1.9 updates
3
- v0.2.1. updated language tables to 20110525
4
- v0.2.0. updated language tables to 20100707
5
- v0.1.0. initial release
data/README.rdoc DELETED
@@ -1,73 +0,0 @@
1
- = iso-codes
2
-
3
- A comprehensive database of ISO language and script codes.
4
-
5
- == Installation
6
-
7
- gem install iso-codes
8
-
9
- == Usage
10
-
11
- Language codes can be looked up using +find_language+:
12
-
13
- require 'iso_codes'
14
-
15
- language = ISOCodes.find_language('lav')
16
- # ISO 639-3 reference name
17
- language.reference_name
18
- # ISO 639-3 identifier
19
- language.identifier
20
- # ISO 639-1 (alpha-2) identifier
21
- language.alpha2
22
- # ISO 639-2 (alpha-3) identifiers
23
- language.alpha3_bibliographic
24
- language.alpha3_terminology
25
-
26
- === Macrolanguages and individual languages
27
-
28
- ISO 639-3 defines language identifiers that covers a set of other language
29
- identifiers. For example, the identifier +lav+ for Latvian corresponds to
30
- +lvs+ for Standard Latvian and +ltg+ for Latgalian. These identifiers are
31
- called macrolanguages (see http://www.sil.org/iso639-3/scope.asp#M for a
32
- more formal definition). See http://www.sil.org/iso639-3/macrolanguages.asp
33
- for an overview of such identifiers.
34
-
35
- Macrolanguage identifiers can be looked up in the same way as other
36
- language codes:
37
-
38
- language = ISOCodes.find_language('lav')
39
- language.reference_name
40
- # => "Latvian"
41
- language.class
42
- # => ISOCodes::Macrolanguage
43
- language.alpha3_bibliographic
44
- # => "lav"
45
- language.alpha2
46
- # => "lv"
47
-
48
- The individual languages covered by the identifier can be listed:
49
-
50
- >> language.individual_languages.map { |l| l.identifier }
51
- # => ["ltg", "lvs"]
52
-
53
- For an individual language the macrolanguage, if any, can be found.
54
-
55
- language = ISOCodes.find_language('ltg')
56
- language.class
57
- # => ISOCodes::IndividualLanguage
58
- language.macrolanguage.identifier
59
- # => "lav"
60
-
61
- == TODO
62
-
63
- * ISO 639-1 and ISO 639-2
64
- * IANA language codes
65
- * country/region codes (ISO 3166-1 through 3)
66
- * currencies (ISO 4217:2001 and 2008)
67
-
68
- If you feel like implementing any of this, please fork the project on
69
- github.
70
-
71
- == Copyright
72
-
73
- Copyright (c) 2010, 2011 Marius L. Jøhndal.
data/Rakefile DELETED
@@ -1,23 +0,0 @@
1
- # encoding: utf-8
2
- begin
3
- require 'jeweler'
4
-
5
- Jeweler::Tasks.new do |p|
6
- p.name = "iso-codes"
7
- p.summary = "ISO language and script code support"
8
- p.description = "A database of ISO language and script codes."
9
- p.authors = ['Marius L. Jøhndal']
10
- p.email = "mariuslj (at) ifi [dot] uio (dot) no"
11
- p.homepage = "http://github.com/mlj/iso-codes"
12
- p.rubyforge_project = "iso-codes"
13
- end
14
- rescue LoadError
15
- puts "Jeweler not available. Install it with: sudo gem install jeweler"
16
- end
17
-
18
- require 'rake/testtask'
19
- Rake::TestTask.new(:test) do |test|
20
- test.libs << 'lib' << 'test'
21
- test.pattern = 'test/**/test_*.rb'
22
- test.verbose = true
23
- end
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.4.0
data/iso-codes.gemspec DELETED
@@ -1,44 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = "iso-codes"
8
- s.version = "0.4.0"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Marius L. J\u{f8}hndal"]
12
- s.date = "2012-01-26"
13
- s.description = "A database of ISO language and script codes."
14
- s.email = "mariuslj (at) ifi [dot] uio (dot) no"
15
- s.extra_rdoc_files = [
16
- "README.rdoc"
17
- ]
18
- s.files = [
19
- "CHANGELOG",
20
- "README.rdoc",
21
- "Rakefile",
22
- "VERSION",
23
- "iso-codes.gemspec",
24
- "lib/iso-639-3-macrolanguages_20100128.tab.gz",
25
- "lib/iso-639-3_20110525.tab.gz",
26
- "lib/iso_codes.rb",
27
- "test/test_iso_codes.rb"
28
- ]
29
- s.homepage = "http://github.com/mlj/iso-codes"
30
- s.require_paths = ["lib"]
31
- s.rubyforge_project = "iso-codes"
32
- s.rubygems_version = "1.8.11"
33
- s.summary = "ISO language and script code support"
34
-
35
- if s.respond_to? :specification_version then
36
- s.specification_version = 3
37
-
38
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
39
- else
40
- end
41
- else
42
- end
43
- end
44
-
Binary file
@@ -1,45 +0,0 @@
1
- require 'iso_codes'
2
- require 'test/unit'
3
-
4
- class ISO6393CodesTestCase < Test::Unit::TestCase
5
- def test_find_language
6
- l = ISOCodes::find_language("eng")
7
- assert_not_nil l
8
- assert_equal 'eng', l.identifier
9
- assert_equal 'eng', l.alpha3_terminology
10
- assert_equal 'eng', l.alpha3_bibliographic
11
- assert_equal 'en', l.alpha2
12
- assert_equal 'English', l.reference_name
13
- end
14
-
15
- def test_find_language_macrolanguage
16
- l = ISOCodes::find_language("ara")
17
- assert_not_nil l
18
- assert_kind_of ISOCodes::Macrolanguage, l
19
- assert l.individual_languages.any? { |c| c.identifier == 'arq' }
20
- end
21
-
22
- def test_doc_exx
23
- language = ISOCodes.find_language('lav')
24
- assert_equal 'Latvian', language.reference_name
25
- assert_equal ISOCodes::Macrolanguage, language.class
26
- assert_equal 'lav', language.alpha3_bibliographic
27
- assert_equal 'lv', language.alpha2
28
-
29
- assert_equal ["ltg", "lvs"], language.individual_languages.map { |l| l.identifier }
30
-
31
- language = ISOCodes.find_language('ltg')
32
- assert_equal ISOCodes::IndividualLanguage, language.class
33
- assert_equal "lav", language.macrolanguage.identifier
34
- end
35
-
36
- def test_all_language_instantiation
37
- ISOCodes.all_iso_639_3_codes.each do |l|
38
- assert_not_nil l
39
-
40
- k = ISOCodes::find_language(l)
41
- assert_not_nil k
42
- assert_kind_of ISOCodes::Language, k
43
- end
44
- end
45
- end