isodoc-i18n 1.1.3 → 1.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/isodoc-i18n.gemspec +7 -7
- data/lib/isodoc/{version.rb → i18n/version.rb} +1 -1
- data/lib/isodoc/i18n.rb +1 -0
- data/lib/isodoc-i18n.rb +0 -4
- metadata +5 -14
- data/.github/workflows/rake.yml +0 -15
- data/.github/workflows/release.yml +0 -24
- data/Rakefile +0 -6
- data/bin/rspec +0 -17
- data/spec/assets/de.yaml +0 -12
- data/spec/assets/new.yaml +0 -53
- data/spec/assets/zh-Hans.yaml +0 -7
- data/spec/isodoc/base_spec.rb +0 -158
- data/spec/spec_helper.rb +0 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2995acc039a84f2046a7dd94885f6645db44c003e13e3c2d03acc080df6ccf46
|
4
|
+
data.tar.gz: 10aaebe352a542028a9e6bf1d69b3e6d1309416a0fc4329aa34053a520bdc982
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9aa2d2786ef223580b0cd832dd08d9821e06553975a369abda5e03b947cff9c5d44ad20ace189937e3707c536ffa99b5090b8cdc8ccf6cbf1dfc429ed0df623
|
7
|
+
data.tar.gz: bd0b5bc0c703ae8ffeeeea6d8df3df34d004bc478b4e8e0ec61c450da83b7c1571954e538bd43a3e7af320035496baa96a27e3d6f564dc7ea5afa58c3244638a
|
data/isodoc-i18n.gemspec
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
-
require "isodoc/version"
|
1
|
+
require_relative "lib/isodoc/i18n/version"
|
4
2
|
|
5
3
|
Gem::Specification.new do |spec|
|
6
4
|
spec.name = "isodoc-i18n"
|
@@ -18,9 +16,11 @@ Gem::Specification.new do |spec|
|
|
18
16
|
|
19
17
|
spec.bindir = "bin"
|
20
18
|
spec.require_paths = ["lib"]
|
21
|
-
spec.files = `git ls-files`.split("\
|
22
|
-
|
23
|
-
|
19
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
20
|
+
f.match(%r{^(test|spec|features|bin|.github)/}) \
|
21
|
+
|| f.match(%r{Rakefile|bin/rspec})
|
22
|
+
end
|
23
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
|
24
24
|
|
25
25
|
spec.add_dependency "htmlentities", "~> 4.3.4"
|
26
26
|
spec.add_dependency "metanorma-utils", "~> 1.4.0"
|
@@ -36,5 +36,5 @@ Gem::Specification.new do |spec|
|
|
36
36
|
spec.add_development_dependency "simplecov", "~> 0.15"
|
37
37
|
spec.add_development_dependency "timecop", "~> 0.9"
|
38
38
|
spec.add_development_dependency "webmock"
|
39
|
-
#spec.metadata["rubygems_mfa_required"] = "true"
|
39
|
+
# spec.metadata["rubygems_mfa_required"] = "true"
|
40
40
|
end
|
data/lib/isodoc/i18n.rb
CHANGED
data/lib/isodoc-i18n.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: isodoc-i18n
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: htmlentities
|
@@ -201,26 +201,17 @@ executables: []
|
|
201
201
|
extensions: []
|
202
202
|
extra_rdoc_files: []
|
203
203
|
files:
|
204
|
-
- ".github/workflows/rake.yml"
|
205
|
-
- ".github/workflows/release.yml"
|
206
204
|
- ".hound.yml"
|
207
205
|
- ".rubocop.yml"
|
208
206
|
- CODE_OF_CONDUCT.md
|
209
207
|
- Gemfile
|
210
208
|
- LICENSE
|
211
209
|
- README.adoc
|
212
|
-
- Rakefile
|
213
|
-
- bin/rspec
|
214
210
|
- isodoc-i18n.gemspec
|
215
211
|
- lib/isodoc-i18n.rb
|
216
212
|
- lib/isodoc-yaml/i18n-en.yaml
|
217
213
|
- lib/isodoc/i18n.rb
|
218
|
-
- lib/isodoc/version.rb
|
219
|
-
- spec/assets/de.yaml
|
220
|
-
- spec/assets/new.yaml
|
221
|
-
- spec/assets/zh-Hans.yaml
|
222
|
-
- spec/isodoc/base_spec.rb
|
223
|
-
- spec/spec_helper.rb
|
214
|
+
- lib/isodoc/i18n/version.rb
|
224
215
|
homepage: https://github.com/metanorma/isodoc-i18n
|
225
216
|
licenses:
|
226
217
|
- BSD-2-Clause
|
@@ -233,14 +224,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
233
224
|
requirements:
|
234
225
|
- - ">="
|
235
226
|
- !ruby/object:Gem::Version
|
236
|
-
version: 2.
|
227
|
+
version: 2.7.0
|
237
228
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
238
229
|
requirements:
|
239
230
|
- - ">="
|
240
231
|
- !ruby/object:Gem::Version
|
241
232
|
version: '0'
|
242
233
|
requirements: []
|
243
|
-
rubygems_version: 3.
|
234
|
+
rubygems_version: 3.3.7
|
244
235
|
signing_key:
|
245
236
|
specification_version: 4
|
246
237
|
summary: isodoc-i18n
|
data/.github/workflows/rake.yml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# Auto-generated by Cimas: Do not edit it manually!
|
2
|
-
# See https://github.com/metanorma/cimas
|
3
|
-
name: rake
|
4
|
-
|
5
|
-
on:
|
6
|
-
push:
|
7
|
-
branches: [ master, main ]
|
8
|
-
tags: [ v* ]
|
9
|
-
pull_request:
|
10
|
-
|
11
|
-
jobs:
|
12
|
-
rake:
|
13
|
-
uses: metanorma/ci/.github/workflows/generic-rake.yml@main
|
14
|
-
secrets:
|
15
|
-
pat_token: ${{ secrets.METANORMA_CI_PAT_TOKEN }}
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# Auto-generated by Cimas: Do not edit it manually!
|
2
|
-
# See https://github.com/metanorma/cimas
|
3
|
-
name: release
|
4
|
-
|
5
|
-
on:
|
6
|
-
workflow_dispatch:
|
7
|
-
inputs:
|
8
|
-
next_version:
|
9
|
-
description: |
|
10
|
-
Next release version. Possible values: x.y.z, major, minor, patch or pre|rc|etc
|
11
|
-
required: true
|
12
|
-
default: 'skip'
|
13
|
-
push:
|
14
|
-
tags: [ v* ]
|
15
|
-
|
16
|
-
jobs:
|
17
|
-
release:
|
18
|
-
uses: metanorma/ci/.github/workflows/rubygems-release.yml@main
|
19
|
-
with:
|
20
|
-
next_version: ${{ github.event.inputs.next_version }}
|
21
|
-
secrets:
|
22
|
-
rubygems-api-key: ${{ secrets.METANORMA_CI_RUBYGEMS_API_KEY }}
|
23
|
-
pat_token: ${{ secrets.METANORMA_CI_PAT_TOKEN }}
|
24
|
-
|
data/Rakefile
DELETED
data/bin/rspec
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# This file was generated by Bundler.
|
4
|
-
#
|
5
|
-
# The application 'rspec' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require "pathname"
|
10
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path(
|
11
|
-
"../../Gemfile", Pathname.new(__FILE__).realpath
|
12
|
-
)
|
13
|
-
|
14
|
-
require "rubygems"
|
15
|
-
require "bundler/setup"
|
16
|
-
|
17
|
-
load Gem.bin_path("rspec-core", "rspec")
|
data/spec/assets/de.yaml
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
ordinal_keys: [gender,number]
|
2
|
-
SpelloutRules:
|
3
|
-
m.sg: spellout-ordinal-r
|
4
|
-
f.sg: spellout-ordinal
|
5
|
-
n.sg: spellout-ordinal-s
|
6
|
-
m.pl: spellout-ordinal
|
7
|
-
f.pl: spellout-ordinal
|
8
|
-
n.pl: spellout-ordinal
|
9
|
-
edition: Auflage
|
10
|
-
inflection:
|
11
|
-
Auflage:
|
12
|
-
gender: f
|
data/spec/assets/new.yaml
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
hash:
|
2
|
-
key1: val1
|
3
|
-
key2: val2
|
4
|
-
arr:
|
5
|
-
- arr1
|
6
|
-
- arr2
|
7
|
-
text: "text2"
|
8
|
-
inflection:
|
9
|
-
Fred:
|
10
|
-
sg: Fred
|
11
|
-
pl: Freds
|
12
|
-
Man:
|
13
|
-
dat: viri
|
14
|
-
acc: virem
|
15
|
-
Woman:
|
16
|
-
sg:
|
17
|
-
nom: mulier
|
18
|
-
gen: mulieris
|
19
|
-
pl:
|
20
|
-
nom: mulieres
|
21
|
-
gen: mulierum
|
22
|
-
Good:
|
23
|
-
sg:
|
24
|
-
nom:
|
25
|
-
masc: bonus
|
26
|
-
fem: bona
|
27
|
-
neut: bonum
|
28
|
-
gen:
|
29
|
-
masc: boni
|
30
|
-
fem: bonae
|
31
|
-
neut: boni
|
32
|
-
pl:
|
33
|
-
nom:
|
34
|
-
masc: boni
|
35
|
-
fem: bonae
|
36
|
-
neut: bona
|
37
|
-
gen:
|
38
|
-
masc: bonorum
|
39
|
-
fem: bonarum
|
40
|
-
neut: bonorum
|
41
|
-
Walk:
|
42
|
-
act:
|
43
|
-
ind:
|
44
|
-
pres:
|
45
|
-
sg:
|
46
|
-
1st: ambulo
|
47
|
-
2nd: ambulas
|
48
|
-
subj:
|
49
|
-
pres:
|
50
|
-
pl:
|
51
|
-
1st: ambulemus
|
52
|
-
2nd: ambuletis
|
53
|
-
|
data/spec/assets/zh-Hans.yaml
DELETED
data/spec/isodoc/base_spec.rb
DELETED
@@ -1,158 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
RSpec.describe IsoDoc::I18n do
|
4
|
-
it "has a version number" do
|
5
|
-
expect(IsoDoc::I18n::VERSION).not_to be nil
|
6
|
-
end
|
7
|
-
|
8
|
-
it "loads language files" do
|
9
|
-
c = IsoDoc::I18n.new("en", "Latn")
|
10
|
-
expect(c.text).to eq "text"
|
11
|
-
expect(c.at).to eq "at"
|
12
|
-
expect(c.language).to eq "en"
|
13
|
-
expect(c.script).to eq "Latn"
|
14
|
-
end
|
15
|
-
|
16
|
-
it "manipulates i18n class" do
|
17
|
-
c = IsoDoc::I18n.new("en", "Latn")
|
18
|
-
expect(c.get["text"]).to eq "text"
|
19
|
-
expect(c.get["fred"]).to be_nil
|
20
|
-
c.set("fred", "frederic")
|
21
|
-
expect(c.get["fred"]).to eq "frederic"
|
22
|
-
end
|
23
|
-
|
24
|
-
it "loads default for missing language files" do
|
25
|
-
c = IsoDoc::I18n.new("tlh", "Klin")
|
26
|
-
expect(c.text).to eq "text"
|
27
|
-
expect(c.at).to eq "at"
|
28
|
-
expect(c.language).to eq "tlh"
|
29
|
-
expect(c.script).to eq "Klin"
|
30
|
-
end
|
31
|
-
|
32
|
-
it "loads language file overrides" do
|
33
|
-
c = IsoDoc::I18n.new("en", "Latn", i18nyaml: "spec/assets/new.yaml")
|
34
|
-
expect(c.text).to eq "text2"
|
35
|
-
expect(c.at).to eq "at"
|
36
|
-
expect(c.hash.to_s).to be_equivalent_to '{"key1"=>"val1", "key2"=>"val2"}'
|
37
|
-
expect(c.arr.to_s).to eq '["arr1", "arr2"]'
|
38
|
-
end
|
39
|
-
|
40
|
-
it "loads language hash overrides" do
|
41
|
-
c = IsoDoc::I18n.new("en", "Latn",
|
42
|
-
i18nhash: YAML.load_file("spec/assets/new.yaml"))
|
43
|
-
expect(c.text).to eq "text2"
|
44
|
-
expect(c.at).to eq "at"
|
45
|
-
expect(c.hash.to_s).to be_equivalent_to '{"key1"=>"val1", "key2"=>"val2"}'
|
46
|
-
expect(c.arr.to_s).to eq '["arr1", "arr2"]'
|
47
|
-
end
|
48
|
-
|
49
|
-
it "does English localisation" do
|
50
|
-
c = IsoDoc::I18n.new("en", "Latn")
|
51
|
-
expect(c.l10n("Code (hello, world.)"))
|
52
|
-
.to be_equivalent_to "Code (hello, world.)"
|
53
|
-
expect(c.l10n("<a>Code (he<b>l</b>lo, world.)</a>"))
|
54
|
-
.to be_equivalent_to "<a>Code (he<b>l</b>lo, world.)</a>"
|
55
|
-
end
|
56
|
-
|
57
|
-
it "does Chinese localisation" do
|
58
|
-
c = IsoDoc::I18n.new("zh", "Hans")
|
59
|
-
expect(c.l10n("Code (hello, world.)"))
|
60
|
-
.to be_equivalent_to "Code (hello, world.)"
|
61
|
-
expect(c.l10n("计算机代码 (你好, 世界.)"))
|
62
|
-
.to be_equivalent_to " 计算机代码(你好,世界。)"
|
63
|
-
expect(c.l10n("<a>计算机代码</a> (<b>你好,</b> 世界.)"))
|
64
|
-
.to be_equivalent_to "<a>计算机代码</a> (你好, 世界。)"
|
65
|
-
end
|
66
|
-
|
67
|
-
it "does Hebrew RTL localisation" do
|
68
|
-
c = IsoDoc::I18n.new("en", "Hebr")
|
69
|
-
expect(c.l10n("Code (hello, world.)"))
|
70
|
-
.to be_equivalent_to "Code (hello, world.)"
|
71
|
-
expect(c.l10n("Code (hello, world.)", "en", "Latn"))
|
72
|
-
.to be_equivalent_to "‎Code (hello, world.)‎"
|
73
|
-
c = IsoDoc::I18n.new("en", "Latn")
|
74
|
-
expect(c.l10n("Code (hello, world.)", "en", "Hebr"))
|
75
|
-
.to be_equivalent_to "‏Code (hello, world.)‏"
|
76
|
-
end
|
77
|
-
|
78
|
-
it "does Arabic RTL localisation" do
|
79
|
-
c = IsoDoc::I18n.new("en", "Arab")
|
80
|
-
expect(c.l10n("Code (hello, world.)"))
|
81
|
-
.to be_equivalent_to "Code (hello, world.)"
|
82
|
-
expect(c.l10n("Code (hello, world.)", "en", "Latn"))
|
83
|
-
.to be_equivalent_to "‎Code (hello, world.)‎"
|
84
|
-
c = IsoDoc::I18n.new("en", "Latn")
|
85
|
-
expect(c.l10n("Code (hello, world.)", "en", "Arab"))
|
86
|
-
.to be_equivalent_to "؜Code (hello, world.)؜"
|
87
|
-
end
|
88
|
-
|
89
|
-
it "does French localisation" do
|
90
|
-
e = HTMLEntities.new
|
91
|
-
c = IsoDoc::I18n.new("fr", "Latn")
|
92
|
-
expect(e.encode(c.l10n("Code; «code» and: code!"), :hexadecimal))
|
93
|
-
.to be_equivalent_to "Code ; « code » " \
|
94
|
-
"and : code !"
|
95
|
-
expect(e.encode(c.l10n("Code; «code» and: code!"), :hexadecimal))
|
96
|
-
.to be_equivalent_to "Code ; « code » " \
|
97
|
-
"and : code !"
|
98
|
-
c = IsoDoc::I18n.new("fr", "Latn", locale: "FR")
|
99
|
-
expect(e.encode(c.l10n("Code; «code» and: code!"), :hexadecimal))
|
100
|
-
.to be_equivalent_to "Code ; « code » " \
|
101
|
-
"and : code !"
|
102
|
-
c = IsoDoc::I18n.new("fr", "Latn", locale: "CH")
|
103
|
-
expect(e.encode(c.l10n("Code; «code» and: code!"), :hexadecimal))
|
104
|
-
.to be_equivalent_to "Code ; « code » " \
|
105
|
-
"and : code !"
|
106
|
-
expect(e.encode(c.l10n("http://xyz a;b"), :hexadecimal))
|
107
|
-
.to be_equivalent_to "http://xyz a;b"
|
108
|
-
end
|
109
|
-
|
110
|
-
it "does boolean conjunctions" do
|
111
|
-
c = IsoDoc::I18n.new("en", "Latn")
|
112
|
-
expect(c.boolean_conj([], "and")).to eq ""
|
113
|
-
expect(c.boolean_conj(%w(a), "and")).to eq "a"
|
114
|
-
expect(c.boolean_conj(%w(a b), "and")).to eq "a and b"
|
115
|
-
expect(c.boolean_conj(%w(a b c), "and")).to eq "a, b, and c"
|
116
|
-
expect(c.boolean_conj(%w(a b c d), "and")).to eq "a, b, c, and d"
|
117
|
-
end
|
118
|
-
|
119
|
-
it "does German ordinals" do
|
120
|
-
c = IsoDoc::I18n.new("de", "Latn", i18nyaml: "spec/assets/de.yaml")
|
121
|
-
term = c.inflection[c.edition]
|
122
|
-
expect(c.inflect_ordinal(5, term, "SpelloutRules"))
|
123
|
-
.to eq "fünfte"
|
124
|
-
end
|
125
|
-
|
126
|
-
it "does Chinese ordinals" do
|
127
|
-
c = IsoDoc::I18n.new("zh", "Hans", i18nyaml: "spec/assets/zh-Hans.yaml")
|
128
|
-
term = c.inflection[c.edition]
|
129
|
-
expect(c.inflect_ordinal(5, term, "SpelloutRules"))
|
130
|
-
.to eq "第五"
|
131
|
-
end
|
132
|
-
|
133
|
-
it "does Klingon ordinals" do
|
134
|
-
c = IsoDoc::I18n.new("tlh", "Hans", i18nyaml: "spec/assets/zh-Hans.yaml")
|
135
|
-
term = c.inflection[c.edition]
|
136
|
-
expect(c.inflect_ordinal(5, term, "SpelloutRules"))
|
137
|
-
.to eq "fifth"
|
138
|
-
end
|
139
|
-
|
140
|
-
it "does inflections" do
|
141
|
-
c = IsoDoc::I18n.new("en", "Latn", i18nyaml: "spec/assets/new.yaml")
|
142
|
-
expect(c.inflect("John", number: "sg")).to eq "John"
|
143
|
-
expect(c.inflect("Fred", number: "sg")).to eq "Fred"
|
144
|
-
expect(c.inflect("Fred", number: "pl")).to eq "Freds"
|
145
|
-
expect(c.inflect("Fred", number: "du")).to eq "Fred"
|
146
|
-
expect(c.inflect("Fred", tense: "pres")).to eq "Fred"
|
147
|
-
expect(c.inflect("Man", case: "dat")).to eq "viri"
|
148
|
-
expect(c.inflect("Man", number: "sg", case: "dat")).to eq "viri"
|
149
|
-
expect(c.inflect("Man", number: "pl", case: "acc")).to eq "virem"
|
150
|
-
expect(c.inflect("Woman", number: "pl", case: "gen")).to eq "mulierum"
|
151
|
-
expect(c.inflect("Good", number: "pl", case: "gen")).to eq "bonorum"
|
152
|
-
expect(c.inflect("Good", number: "pl", case: "gen", gender: "fem"))
|
153
|
-
.to eq "bonarum"
|
154
|
-
expect(c.inflect("Walk", person: "2nd")).to eq "ambulas"
|
155
|
-
expect(c.inflect("Walk", person: "2nd", number: "pl", mood: "subj"))
|
156
|
-
.to eq "ambuletis"
|
157
|
-
end
|
158
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
require "simplecov"
|
2
|
-
SimpleCov.start do
|
3
|
-
add_filter "/spec/"
|
4
|
-
end
|
5
|
-
|
6
|
-
require "bundler/setup"
|
7
|
-
require "isodoc-i18n"
|
8
|
-
require "rspec/matchers"
|
9
|
-
require "equivalent-xml"
|
10
|
-
require "rexml/document"
|
11
|
-
|
12
|
-
RSpec.configure do |config|
|
13
|
-
# Enable flags like --only-failures and --next-failure
|
14
|
-
config.example_status_persistence_file_path = ".rspec_status"
|
15
|
-
|
16
|
-
# Disable RSpec exposing methods globally on `Module` and `main`
|
17
|
-
config.disable_monkey_patching!
|
18
|
-
|
19
|
-
config.expect_with :rspec do |c|
|
20
|
-
c.syntax = :expect
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def xmlpp(xml)
|
25
|
-
s = ""
|
26
|
-
f = REXML::Formatters::Pretty.new(2)
|
27
|
-
f.compact = true
|
28
|
-
f.write(REXML::Document.new(xml), s)
|
29
|
-
s
|
30
|
-
end
|
31
|
-
|
32
|
-
def metadata(hash)
|
33
|
-
hash.sort.to_h.delete_if do |_k, v|
|
34
|
-
v.nil? || (v.respond_to?(:empty?) && v.empty?)
|
35
|
-
end
|
36
|
-
end
|