pubid-iec 1.15.2 → 1.15.3
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/lib/pubid/iec/identifier/base.rb +11 -7
- data/lib/pubid/iec/identifier/component_specification.rb +2 -2
- data/lib/pubid/iec/identifier/conformity_assessment.rb +2 -2
- data/lib/pubid/iec/identifier/guide.rb +2 -2
- data/lib/pubid/iec/identifier/operational_document.rb +2 -2
- data/lib/pubid/iec/identifier/publicly_available_specification.rb +2 -2
- data/lib/pubid/iec/identifier/societal_technology_trend_report.rb +2 -2
- data/lib/pubid/iec/identifier/supplement.rb +4 -0
- data/lib/pubid/iec/identifier/systems_reference_document.rb +2 -2
- data/lib/pubid/iec/identifier/technical_report.rb +2 -2
- data/lib/pubid/iec/identifier/technical_specification.rb +1 -1
- data/lib/pubid/iec/identifier/technology_and_market_outlook_paper.rb +15 -0
- data/lib/pubid/iec/identifier/technology_report.rb +2 -2
- data/lib/pubid/iec/identifier/white_paper.rb +2 -2
- data/lib/pubid/iec/parser.rb +9 -6
- data/lib/pubid/iec/renderer/pubid.rb +24 -11
- data/lib/pubid/iec/renderer/urn.rb +5 -1
- data/lib/pubid/iec/version.rb +1 -1
- data/lib/pubid/iec.rb +2 -0
- data/update_codes.yaml +5 -1
- metadata +5 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: aa29819fc4a1cad852d67cca964e337d037c62e97a892d7f6c8014ee1b4d8c32
|
|
4
|
+
data.tar.gz: ba87e4f5864db19984ee047c383fc6a95853125ea969fb3469e271efcd1e808c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1aa588350ceac542006896b4dd6828f9030394665e2b7dfc0db13057c2388a6f9837196178c2256264137f11b8463d4d1a6bb50b66b2c73038896cc88520858d
|
|
7
|
+
data.tar.gz: 45bd6a9d164e7a958a974e994891c2df91bb6ddcde3bdb76e82933c5983c6b9f643fc9b99206d9ad3cc3af7d6f37c644f9b0c2b8c569cbabc24132efdc97bd75
|
|
@@ -19,22 +19,22 @@ module Pubid::Iec
|
|
|
19
19
|
edition: nil, type: nil, month: nil, day: nil,
|
|
20
20
|
language: nil, stage: nil, sheet: nil, **args)
|
|
21
21
|
|
|
22
|
-
@vap = vap.to_s if vap
|
|
22
|
+
@vap = Array(vap).map(&:to_s) if vap
|
|
23
23
|
@database = database if database
|
|
24
|
-
@fragment = fragment if fragment
|
|
24
|
+
@fragment = fragment.to_s if fragment
|
|
25
25
|
@version = version if version
|
|
26
26
|
@decision_sheet = decision_sheet if decision_sheet
|
|
27
|
-
@conjuction_part = conjuction_part if conjuction_part
|
|
27
|
+
@conjuction_part = Array(conjuction_part).map(&:to_s) if conjuction_part
|
|
28
28
|
@part_version = part_version if part_version
|
|
29
29
|
@trf_publisher = trf_publisher.to_s if trf_publisher
|
|
30
30
|
@trf_series = trf_series if trf_series
|
|
31
31
|
@trf_version = trf_version.to_s if trf_version
|
|
32
32
|
@test_type = test_type if test_type
|
|
33
33
|
@edition = edition.to_s if edition
|
|
34
|
-
@month = month if month
|
|
35
|
-
@day = day if day
|
|
36
|
-
@language = language if language
|
|
37
|
-
@sheet = sheet if sheet
|
|
34
|
+
@month = month.to_s if month
|
|
35
|
+
@day = day.to_s if day
|
|
36
|
+
@language = Array(language).map(&:to_s) if language
|
|
37
|
+
@sheet = sheet.transform_values(&:to_s) if sheet
|
|
38
38
|
|
|
39
39
|
if stage
|
|
40
40
|
@stage = self.class.has_project_stage?(stage) ? self.class.resolve_project_stage(stage) : resolve_stage(stage)
|
|
@@ -72,6 +72,10 @@ module Pubid::Iec
|
|
|
72
72
|
self.class.get_renderer_class.new(renderer_data).render(with_edition_month_date: with_edition_month_date)
|
|
73
73
|
end
|
|
74
74
|
|
|
75
|
+
def to_yaml
|
|
76
|
+
to_h(deep: true).to_yaml
|
|
77
|
+
end
|
|
78
|
+
|
|
75
79
|
class << self
|
|
76
80
|
def has_project_stage?(project_stage)
|
|
77
81
|
self::PROJECT_STAGES.any? { |k, v| v[:abbr] == project_stage }
|
|
@@ -8,8 +8,8 @@ module Pubid::Iec
|
|
|
8
8
|
{ key: :sttr, title: "Societal and Technology Trend Report", short: "Trend Report" }
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
-
def to_h(deep:
|
|
12
|
-
super.merge(type: "Trend Report")
|
|
11
|
+
def to_h(deep: true)
|
|
12
|
+
super(deep: deep).merge(type: "Trend Report")
|
|
13
13
|
end
|
|
14
14
|
end
|
|
15
15
|
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module Pubid::Iec
|
|
2
|
+
module Identifier
|
|
3
|
+
class TechnologyAndMarketOutlookPaper < Base
|
|
4
|
+
def_delegators 'Pubid::Iec::Identifier::TechnologyAndMarketOutlookPaper', :type
|
|
5
|
+
|
|
6
|
+
def self.type
|
|
7
|
+
{ key: :tmop, title: "Technology and Market Outlook Paper", short: "Technology and Market Outlook Paper" }
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def to_h(deep: true)
|
|
11
|
+
super(deep: deep).merge(type: "Technology and Market Outlook Paper")
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -7,8 +7,8 @@ module Pubid::Iec
|
|
|
7
7
|
{ key: :tec, title: "Technology Report", short: "Technology Report" }
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
-
def to_h(deep:
|
|
11
|
-
super.merge(type: "Technology Report")
|
|
10
|
+
def to_h(deep: true)
|
|
11
|
+
super(deep: deep).merge(type: "Technology Report")
|
|
12
12
|
end
|
|
13
13
|
end
|
|
14
14
|
end
|
data/lib/pubid/iec/parser.rb
CHANGED
|
@@ -17,7 +17,7 @@ module Pubid::Iec
|
|
|
17
17
|
|
|
18
18
|
rule(:part) do
|
|
19
19
|
(str("-") | str("/")) >> space? >>
|
|
20
|
-
(str("Amd") | str("Cor")).absent? >> (match['[\dA-Za-z]'] | str("-")).repeat(1).as(:part)
|
|
20
|
+
(str("Amd") | str("AMD") | str("Cor") | str("COR") | str("FRAG")).absent? >> (match['[\dA-Za-z]'] | str("-")).repeat(1).as(:part)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
rule(:version) { digits >> (dot >> digits).maybe }
|
|
@@ -63,7 +63,7 @@ module Pubid::Iec
|
|
|
63
63
|
|
|
64
64
|
rule(:number) do
|
|
65
65
|
(digits | str("SYMBOL") | str("SYCSMARTENERGY") | str("SyCLVDC") |
|
|
66
|
-
str("SYCLVDC") | str("SyCCOMM") | str("SyCAAL") | str("VIM") | match("[A-Za-z0-9 ]").repeat) >>
|
|
66
|
+
str("SYCLVDC") | str("SyCCOMM") | str("SyCAAL") | str("VIM") | match("[A-Za-z0-9 \\-]").repeat) >>
|
|
67
67
|
((str(":") >> match("[A-Z]").repeat(1)) | match("[a-zA-Z]")).maybe
|
|
68
68
|
end
|
|
69
69
|
|
|
@@ -74,14 +74,17 @@ module Pubid::Iec
|
|
|
74
74
|
part.maybe >>
|
|
75
75
|
conjuction_part.maybe >>
|
|
76
76
|
(space? >> str(":") >> year >> (str("-") >> month_digits.as(:month) >>
|
|
77
|
-
(str("-") >> day_digits.as(:day)).maybe).maybe).maybe >> sheet.maybe >>
|
|
77
|
+
(str("-") >> day_digits.as(:day)).maybe).maybe).maybe >> str("-").maybe >> sheet.maybe >>
|
|
78
78
|
((amendment >> vap.maybe >> corrigendum.maybe) | corrigendum).repeat >>
|
|
79
79
|
interpretation_sheet.maybe >> fragment.maybe
|
|
80
80
|
end
|
|
81
81
|
|
|
82
|
+
rule(:vap_code) do
|
|
83
|
+
str("CSV") | str("SER") | str("RLV") | str("CMV") | str("EXV") | str("PAC") | str("PRV")
|
|
84
|
+
end
|
|
85
|
+
|
|
82
86
|
rule(:vap) do
|
|
83
|
-
space >> (
|
|
84
|
-
str("PAC") | str("PRV")).as(:vap)
|
|
87
|
+
space >> vap_code.as(:vap) >> (str("-") >> vap_code.as(:vap)).repeat
|
|
85
88
|
end
|
|
86
89
|
|
|
87
90
|
rule(:database) do
|
|
@@ -97,7 +100,7 @@ module Pubid::Iec
|
|
|
97
100
|
rule(:identifier) do
|
|
98
101
|
(originator.maybe >> (space.maybe >> stage.as(:stage)).maybe >>
|
|
99
102
|
std_document_body >>
|
|
100
|
-
vap.maybe >> database.maybe >>
|
|
103
|
+
vap.maybe >> corrigendum.maybe >> database.maybe >>
|
|
101
104
|
edition.maybe >>
|
|
102
105
|
(str(":") >> year).maybe >>
|
|
103
106
|
language.maybe)
|
|
@@ -1,14 +1,26 @@
|
|
|
1
1
|
module Pubid::Iec::Renderer
|
|
2
2
|
class Pubid < Pubid::Core::Renderer::Base
|
|
3
3
|
def render_identifier(params)
|
|
4
|
-
|
|
5
|
-
"
|
|
6
|
-
"%{
|
|
4
|
+
# VAP (CSV, CMV, RLV, EXV) always comes before corrigendums
|
|
5
|
+
# e.g., "IEC 60529:1989+AMD1:1999 CSV/COR2:2007"
|
|
6
|
+
format_string = "%{publisher}%{copublisher}%{type}%{typed_stage}%{stage} %{number}%{part}%{conjuction_part}"\
|
|
7
|
+
"%{part_version}%{version}%{iteration}"\
|
|
8
|
+
"%{year}%{month}%{day}%{sheet}%{amendments}%{vap}%{corrigendums}"\
|
|
9
|
+
"%{fragment}%{edition}%{database}"
|
|
10
|
+
format_string % params
|
|
7
11
|
end
|
|
8
12
|
def render_typed_stage(typed_stage, _opts, _params)
|
|
9
13
|
" #{typed_stage}"
|
|
10
14
|
end
|
|
11
15
|
|
|
16
|
+
def render_publisher(publisher, _opts, _params)
|
|
17
|
+
publisher
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def render_copublisher(copublisher, _opts, _params)
|
|
21
|
+
"/" + Array(copublisher).join("/")
|
|
22
|
+
end
|
|
23
|
+
|
|
12
24
|
def render_type(type, _opts, params)
|
|
13
25
|
return if params[:stage].is_a?(::Pubid::Core::TypedStage)
|
|
14
26
|
|
|
@@ -16,7 +28,7 @@ module Pubid::Iec::Renderer
|
|
|
16
28
|
end
|
|
17
29
|
|
|
18
30
|
def render_vap(vap, _opts, _params)
|
|
19
|
-
" #{vap}"
|
|
31
|
+
" #{vap.join('-')}"
|
|
20
32
|
end
|
|
21
33
|
|
|
22
34
|
def render_stage(stage, _opts, params)
|
|
@@ -29,8 +41,9 @@ module Pubid::Iec::Renderer
|
|
|
29
41
|
"/FRAG#{fragment}"
|
|
30
42
|
end
|
|
31
43
|
|
|
32
|
-
def render_sheet(sheet, _opts,
|
|
33
|
-
|
|
44
|
+
def render_sheet(sheet, _opts, params)
|
|
45
|
+
prefix = params[:part] ? "" : "-"
|
|
46
|
+
"#{prefix}/#{sheet[:number]}" + (sheet[:year] ? ":#{sheet[:year]}" : "")
|
|
34
47
|
end
|
|
35
48
|
|
|
36
49
|
def render_database(database, _opts, _params)
|
|
@@ -38,15 +51,15 @@ module Pubid::Iec::Renderer
|
|
|
38
51
|
end
|
|
39
52
|
|
|
40
53
|
def supplement_prefix(params)
|
|
41
|
-
params[:vap]
|
|
54
|
+
params[:vap]&.include?("CSV") ? "+" : "/"
|
|
42
55
|
end
|
|
43
56
|
|
|
44
|
-
def render_amendments(amendments, _opts,
|
|
57
|
+
def render_amendments(amendments, _opts, params)
|
|
45
58
|
supplement_prefix(params) + amendments.sort.map(&:to_s).join("+")
|
|
46
59
|
end
|
|
47
60
|
|
|
48
61
|
def render_corrigendums(corrigendums, _opts, _params)
|
|
49
|
-
|
|
62
|
+
"/" + corrigendums.sort.map(&:to_s).join("+")
|
|
50
63
|
end
|
|
51
64
|
|
|
52
65
|
def render_version(version, _opts, params)
|
|
@@ -57,8 +70,8 @@ module Pubid::Iec::Renderer
|
|
|
57
70
|
" ED#{edition}" unless params[:version]
|
|
58
71
|
end
|
|
59
72
|
|
|
60
|
-
def render_conjuction_part(conjuction_parts, _opts,
|
|
61
|
-
conjunction_symbol = case
|
|
73
|
+
def render_conjuction_part(conjuction_parts, _opts, params)
|
|
74
|
+
conjunction_symbol = case params[:publisher]
|
|
62
75
|
when "IECEE"
|
|
63
76
|
# IECEE TRFs use '&' as parts separator (IECEE OD-2020)
|
|
64
77
|
"&"
|
|
@@ -64,7 +64,7 @@ module Pubid::Iec::Renderer
|
|
|
64
64
|
end
|
|
65
65
|
|
|
66
66
|
def render_vap(vap, _opts, _params)
|
|
67
|
-
":#{vap.downcase}"
|
|
67
|
+
":#{vap.map(&:downcase).join('-')}"
|
|
68
68
|
end
|
|
69
69
|
|
|
70
70
|
def render_fragment(fragment, _opts, _params)
|
|
@@ -107,5 +107,9 @@ module Pubid::Iec::Renderer
|
|
|
107
107
|
":" + (language.is_a?(Array) ? language.join("-") : language)
|
|
108
108
|
end
|
|
109
109
|
|
|
110
|
+
def render_copublisher(copublisher, _opts, _params)
|
|
111
|
+
"-" + Array(copublisher).map { |c| c.to_s.downcase }.join("-")
|
|
112
|
+
end
|
|
113
|
+
|
|
110
114
|
end
|
|
111
115
|
end
|
data/lib/pubid/iec/version.rb
CHANGED
data/lib/pubid/iec.rb
CHANGED
|
@@ -37,6 +37,7 @@ require_relative "iec/identifier/amendment"
|
|
|
37
37
|
require_relative "iec/identifier/corrigendum"
|
|
38
38
|
require_relative "iec/identifier/white_paper"
|
|
39
39
|
require_relative "iec/identifier/technology_report"
|
|
40
|
+
require_relative "iec/identifier/technology_and_market_outlook_paper"
|
|
40
41
|
require_relative "iec/identifier/societal_technology_trend_report"
|
|
41
42
|
require_relative "iec/identifier/interpretation_sheet"
|
|
42
43
|
require_relative "iec/working_document_parser"
|
|
@@ -62,6 +63,7 @@ config.types = [Pubid::Iec::Identifier::InternationalStandard,
|
|
|
62
63
|
Pubid::Iec::Identifier::TestReportForm,
|
|
63
64
|
Pubid::Iec::Identifier::WritePaper,
|
|
64
65
|
Pubid::Iec::Identifier::TechnologyReport,
|
|
66
|
+
Pubid::Iec::Identifier::TechnologyAndMarketOutlookPaper,
|
|
65
67
|
Pubid::Iec::Identifier::SocietalTechnologyTrendReport,
|
|
66
68
|
Pubid::Iec::Identifier::InterpretationSheet]
|
|
67
69
|
|
data/update_codes.yaml
CHANGED
|
@@ -60,4 +60,8 @@ IECEE TRF 60601-1-2CEMC:2011: IECEE TRF 60601-1-2C_EMC:2011
|
|
|
60
60
|
"CISPR 14-2:2015/AMD1/FRAG3:": CISPR 14-2:2015/AMD1/FRAG3 ED2
|
|
61
61
|
"IEC 60309-3:1994/FRAG1:": IEC 60309-3:1994/FRAG1 ED1
|
|
62
62
|
"CISPR 14-1:2016/AMD1/FRAG5:": CISPR 14-1:2016/AMD1/FRAG5 ED5
|
|
63
|
-
"IEC
|
|
63
|
+
"IEC 61360-C00168:": IEC 61360-C00168
|
|
64
|
+
"IEC 61360-C00169:": IEC 61360-C00169
|
|
65
|
+
"IEC 61360-C00172:": IEC 61360-C00172
|
|
66
|
+
"IEC 61360-C00174:": IEC 61360-C00174
|
|
67
|
+
"IEC 61360-C00178:": IEC 61360-C00178
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pubid-iec
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.15.
|
|
4
|
+
version: 1.15.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-02-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: parslet
|
|
@@ -30,14 +30,14 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - '='
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 1.15.
|
|
33
|
+
version: 1.15.3
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - '='
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 1.15.
|
|
40
|
+
version: 1.15.3
|
|
41
41
|
description: Library to generate, parse and manipulate IEC PubID.
|
|
42
42
|
email:
|
|
43
43
|
- open.source@ribose.com
|
|
@@ -69,6 +69,7 @@ files:
|
|
|
69
69
|
- lib/pubid/iec/identifier/systems_reference_document.rb
|
|
70
70
|
- lib/pubid/iec/identifier/technical_report.rb
|
|
71
71
|
- lib/pubid/iec/identifier/technical_specification.rb
|
|
72
|
+
- lib/pubid/iec/identifier/technology_and_market_outlook_paper.rb
|
|
72
73
|
- lib/pubid/iec/identifier/technology_report.rb
|
|
73
74
|
- lib/pubid/iec/identifier/test_report_form.rb
|
|
74
75
|
- lib/pubid/iec/identifier/white_paper.rb
|