iso-codes 0.4.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
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