pubid-itu 0.1.2 → 1.15.0
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.
- checksums.yaml +4 -4
- data/i18n.yaml +13 -0
- data/lib/pubid/itu/identifier/annex.rb +7 -0
- data/lib/pubid/itu/identifier/base.rb +13 -6
- data/lib/pubid/itu/identifier/contribution.rb +15 -0
- data/lib/pubid/itu/identifier/question.rb +1 -1
- data/lib/pubid/itu/identifier/resolution.rb +1 -1
- data/lib/pubid/itu/identifier.rb +1 -1
- data/lib/pubid/itu/parser.rb +5 -1
- data/lib/pubid/itu/renderer/base.rb +41 -7
- data/lib/pubid/itu/renderer/contribution.rb +15 -0
- data/lib/pubid/itu/renderer/implementers_guide.rb +1 -1
- data/lib/pubid/itu/version.rb +1 -1
- data/lib/pubid/itu.rb +6 -1
- metadata +13 -38
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd6fb5c62affc462cb749e627b0f57d5bcc7cd1a4b79f17880633d1646bf813c
|
4
|
+
data.tar.gz: 043e5a4076a4a9bdd4a3d1443a0718cccb662dae40f9ee4cbd15424e95893b98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c119314e38f732ec94237214bf4f2c3315cf00552331037ad559ffd0a82ed3768b993b55ad162ab021c8cc134cdc319ef9027dc317d72d33ec0098b89d089b2
|
7
|
+
data.tar.gz: 1a3165167893ead8f406238d7d736100c4eb474d67c5df5c9d23511e19c963cdc41052c1a8c2ceb032eeed946ba9e7ec79dc7573ecb1a8a628373e3fe0c81a5a
|
data/i18n.yaml
ADDED
@@ -3,6 +3,13 @@ module Pubid::Itu
|
|
3
3
|
class Annex < Supplement
|
4
4
|
def_delegators 'Pubid::Itu::Identifier::Annex', :type
|
5
5
|
|
6
|
+
attr_accessor :base
|
7
|
+
|
8
|
+
def initialize(base: nil, **opts)
|
9
|
+
super(**opts)
|
10
|
+
@base = base
|
11
|
+
end
|
12
|
+
|
6
13
|
def self.type
|
7
14
|
{ key: :annex, title: "Annex" }
|
8
15
|
end
|
@@ -47,12 +47,19 @@ module Pubid::Itu
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def transform_supplements(type, identifier_params)
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
50
|
+
if identifier_params[type].is_a?(Hash)
|
51
|
+
Identifier.create(
|
52
|
+
type: type,
|
53
|
+
base: transform(
|
54
|
+
**identifier_params.dup.tap { |h| h.delete(type) }),
|
55
|
+
**identifier_params[type],
|
56
|
+
)
|
57
|
+
else
|
58
|
+
Identifier.create(
|
59
|
+
type: type,
|
60
|
+
base: transform(**identifier_params.dup.tap { |h| h.delete(type) })
|
61
|
+
)
|
62
|
+
end
|
56
63
|
end
|
57
64
|
|
58
65
|
# Use Identifier#create to resolve identifier's type class
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Pubid::Itu
|
2
|
+
module Identifier
|
3
|
+
class Contribution < Base
|
4
|
+
def_delegators 'Pubid::Itu::Identifier::Contribution', :type
|
5
|
+
|
6
|
+
def self.type
|
7
|
+
{ key: :contribution, title: "Contribution" }
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.get_renderer_class
|
11
|
+
Renderer::Contribution
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/pubid/itu/identifier.rb
CHANGED
@@ -9,7 +9,7 @@ module Pubid::Itu
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def resolve_identifier(parameters = {})
|
12
|
-
return Question.new(**parameters) if parameters[:series].to_s.match?(/^SG/)
|
12
|
+
return Question.new(**parameters) if parameters[:series].to_s.match?(/^SG/) && !parameters[:type]
|
13
13
|
|
14
14
|
return Resolution.new(**parameters) if parameters[:series].to_s == "R"
|
15
15
|
|
data/lib/pubid/itu/parser.rb
CHANGED
@@ -88,6 +88,10 @@ module Pubid::Itu
|
|
88
88
|
space >> str("Annex") >> space >> (match["A-Z"] >> digits.maybe >> str("+").maybe).as(:number).as(:annex)
|
89
89
|
end
|
90
90
|
|
91
|
+
rule(:annex_to) do
|
92
|
+
str("Annex to ").as(:annex)
|
93
|
+
end
|
94
|
+
|
91
95
|
rule(:corrigendum) do
|
92
96
|
(published >> space >> str("Cor.") >> space >>
|
93
97
|
digits.as(:number)).as(:corrigendum)
|
@@ -107,7 +111,7 @@ module Pubid::Itu
|
|
107
111
|
end
|
108
112
|
|
109
113
|
rule(:identifier) do
|
110
|
-
str("ITU") >> (dash | space) >> sector_series_number >> supplement.maybe >>
|
114
|
+
annex_to.maybe >> str("ITU") >> (dash | space) >> sector_series_number >> supplement.maybe >>
|
111
115
|
annex.maybe >> corrigendum.maybe >> addendum.maybe >> appendix.maybe >>
|
112
116
|
published.maybe >> amendment.maybe >> str("-I").maybe >> language.maybe
|
113
117
|
end
|
@@ -10,14 +10,48 @@ module Pubid::Itu::Renderer
|
|
10
10
|
"%{type}%{series}" % params
|
11
11
|
end
|
12
12
|
|
13
|
-
def
|
14
|
-
|
13
|
+
def render_base_identifier(**args)
|
14
|
+
prerender(**args)
|
15
|
+
|
16
|
+
# pass args to render_identifier
|
17
|
+
render_identifier(@prerendered_params, args)
|
18
|
+
end
|
19
|
+
|
20
|
+
# can prepend entity, can postpend, can use item holder
|
21
|
+
|
22
|
+
def render_identifier(params, opts)
|
23
|
+
postfix = prefix = ""
|
24
|
+
if @params[:annex] && @params[:annex][:number].nil?
|
25
|
+
prefix += "Annex to "
|
26
|
+
elsif opts[:language] &&
|
27
|
+
(type_translation = Pubid::Itu::I18N["type"][@params[:type]]&.fetch(opts[:language].to_s, nil))
|
28
|
+
if opts[:language] == :cn
|
29
|
+
postfix =+ type_translation
|
30
|
+
elsif opts[:language] == :ar
|
31
|
+
postfix += " #{type_translation}"
|
32
|
+
else
|
33
|
+
prefix += "#{type_translation} "
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
"#{prefix}%{publisher}-%{sector} #{render_type_series(params)}%{number}%{subseries}"\
|
15
38
|
"%{part}%{second_number}%{range}%{annex}%{amendment}%{corrigendum}%{supplement}"\
|
16
|
-
"%{addendum}%{appendix}%{date}" % params
|
39
|
+
"%{addendum}%{appendix}%{date}#{postfix}" % params
|
40
|
+
end
|
41
|
+
|
42
|
+
def render_publisher(publisher, opts, params)
|
43
|
+
if opts[:language] &&
|
44
|
+
(publisher_translation = Pubid::Itu::I18N["publisher"][publisher]&.fetch(opts[:language].to_s, nil))
|
45
|
+
return super(publisher_translation, opts, params)
|
46
|
+
end
|
47
|
+
|
48
|
+
super
|
17
49
|
end
|
18
50
|
|
19
51
|
def render_number(number, _opts, params)
|
20
|
-
params[:series]
|
52
|
+
return " No. #{number}" if params[:series] == "OB"
|
53
|
+
|
54
|
+
number
|
21
55
|
end
|
22
56
|
|
23
57
|
def render_date(date, opts, _params)
|
@@ -38,8 +72,8 @@ module Pubid::Itu::Renderer
|
|
38
72
|
"-#{part}"
|
39
73
|
end
|
40
74
|
|
41
|
-
def render_series(series, _opts,
|
42
|
-
|
75
|
+
def render_series(series, _opts, params)
|
76
|
+
series + (params[:series] != "OB" && params[:number] ? "." : "")
|
43
77
|
end
|
44
78
|
|
45
79
|
def render_amendment(amendment, _opts, _params)
|
@@ -67,7 +101,7 @@ module Pubid::Itu::Renderer
|
|
67
101
|
end
|
68
102
|
|
69
103
|
def render_annex(annex, _opts, _params)
|
70
|
-
" Annex #{annex[:number]}"
|
104
|
+
" Annex #{annex[:number]}" if annex[:number]
|
71
105
|
end
|
72
106
|
|
73
107
|
def render_corrigendum(corrigendum, opts, params)
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Pubid::Itu::Renderer
|
2
|
+
class Contribution < Base
|
3
|
+
def render_identifier(params, _opts)
|
4
|
+
("%{series}-C%{number}" % params)
|
5
|
+
end
|
6
|
+
|
7
|
+
def render_series(series, _opts, _params)
|
8
|
+
series
|
9
|
+
end
|
10
|
+
|
11
|
+
def render_number(number, _opts, params)
|
12
|
+
number
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/pubid/itu/version.rb
CHANGED
data/lib/pubid/itu.rb
CHANGED
@@ -13,6 +13,8 @@ module Pubid
|
|
13
13
|
"es": "S",
|
14
14
|
"zh": "C",
|
15
15
|
}.freeze
|
16
|
+
|
17
|
+
I18N = YAML.load_file(File.join(File.dirname(__FILE__), "../../i18n.yaml"))
|
16
18
|
end
|
17
19
|
end
|
18
20
|
|
@@ -32,9 +34,11 @@ require_relative "itu/identifier/annex"
|
|
32
34
|
require_relative "itu/identifier/corrigendum"
|
33
35
|
require_relative "itu/identifier/addendum"
|
34
36
|
require_relative "itu/identifier/appendix"
|
37
|
+
require_relative "itu/identifier/contribution"
|
35
38
|
require_relative "itu/transformer"
|
36
39
|
require_relative "itu/renderer/base"
|
37
40
|
require_relative "itu/renderer/implementers_guide"
|
41
|
+
require_relative "itu/renderer/contribution"
|
38
42
|
require_relative "itu/parser"
|
39
43
|
require_relative "itu/identifier"
|
40
44
|
require_relative "itu/configuration"
|
@@ -53,7 +57,8 @@ config.types = [Pubid::Itu::Identifier::Base,
|
|
53
57
|
Pubid::Itu::Identifier::Supplement,
|
54
58
|
Pubid::Itu::Identifier::Annex,
|
55
59
|
Pubid::Itu::Identifier::Addendum,
|
56
|
-
Pubid::Itu::Identifier::Appendix
|
60
|
+
Pubid::Itu::Identifier::Appendix,
|
61
|
+
Pubid::Itu::Identifier::Contribution]
|
57
62
|
config.type_names = {}.freeze
|
58
63
|
config.series = YAML.load_file(File.join(File.dirname(__FILE__), "../../series.yaml"))
|
59
64
|
Pubid::Itu::Identifier.set_config(config)
|
metadata
CHANGED
@@ -1,43 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pubid-itu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-06-04 00:00:00.000000000 Z
|
12
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: '13.0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '13.0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rspec
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '3.0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '3.0'
|
41
13
|
- !ruby/object:Gem::Dependency
|
42
14
|
name: parslet
|
43
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,16 +28,16 @@ dependencies:
|
|
56
28
|
name: pubid-core
|
57
29
|
requirement: !ruby/object:Gem::Requirement
|
58
30
|
requirements:
|
59
|
-
- -
|
31
|
+
- - '='
|
60
32
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.
|
33
|
+
version: 1.15.0
|
62
34
|
type: :runtime
|
63
35
|
prerelease: false
|
64
36
|
version_requirements: !ruby/object:Gem::Requirement
|
65
37
|
requirements:
|
66
|
-
- -
|
38
|
+
- - '='
|
67
39
|
- !ruby/object:Gem::Version
|
68
|
-
version: 1.
|
40
|
+
version: 1.15.0
|
69
41
|
description: Library to generate, parse and manipulate ITU PubID.
|
70
42
|
email:
|
71
43
|
- open.source@ribose.com
|
@@ -77,6 +49,7 @@ extra_rdoc_files:
|
|
77
49
|
files:
|
78
50
|
- LICENSE.txt
|
79
51
|
- README.adoc
|
52
|
+
- i18n.yaml
|
80
53
|
- lib/pubid-itu.rb
|
81
54
|
- lib/pubid/itu.rb
|
82
55
|
- lib/pubid/itu/configuration.rb
|
@@ -87,6 +60,7 @@ files:
|
|
87
60
|
- lib/pubid/itu/identifier/annex.rb
|
88
61
|
- lib/pubid/itu/identifier/appendix.rb
|
89
62
|
- lib/pubid/itu/identifier/base.rb
|
63
|
+
- lib/pubid/itu/identifier/contribution.rb
|
90
64
|
- lib/pubid/itu/identifier/corrigendum.rb
|
91
65
|
- lib/pubid/itu/identifier/implementers_guide.rb
|
92
66
|
- lib/pubid/itu/identifier/question.rb
|
@@ -97,6 +71,7 @@ files:
|
|
97
71
|
- lib/pubid/itu/identifier/supplement.rb
|
98
72
|
- lib/pubid/itu/parser.rb
|
99
73
|
- lib/pubid/itu/renderer/base.rb
|
74
|
+
- lib/pubid/itu/renderer/contribution.rb
|
100
75
|
- lib/pubid/itu/renderer/implementers_guide.rb
|
101
76
|
- lib/pubid/itu/transformer.rb
|
102
77
|
- lib/pubid/itu/version.rb
|
@@ -105,7 +80,7 @@ homepage: https://github.com/metanorma/pubid-itu
|
|
105
80
|
licenses:
|
106
81
|
- BSD-2-Clause
|
107
82
|
metadata: {}
|
108
|
-
post_install_message:
|
83
|
+
post_install_message:
|
109
84
|
rdoc_options: []
|
110
85
|
require_paths:
|
111
86
|
- lib
|
@@ -120,8 +95,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
95
|
- !ruby/object:Gem::Version
|
121
96
|
version: '0'
|
122
97
|
requirements: []
|
123
|
-
rubygems_version: 3.
|
124
|
-
signing_key:
|
98
|
+
rubygems_version: 3.5.22
|
99
|
+
signing_key:
|
125
100
|
specification_version: 4
|
126
101
|
summary: Library to generate, parse and manipulate ITU PubID.
|
127
102
|
test_files: []
|