pubid-iec 0.2.2 → 0.2.5
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/amendment.rb +22 -0
- data/lib/pubid/iec/identifier/base.rb +59 -3
- data/lib/pubid/iec/identifier/component_specification.rb +15 -0
- data/lib/pubid/iec/identifier/conformity_assessment.rb +15 -0
- data/lib/pubid/iec/identifier/corrigendum.rb +22 -0
- data/lib/pubid/iec/identifier/guide.rb +15 -0
- data/lib/pubid/iec/identifier/international_standard.rb +69 -0
- data/lib/pubid/iec/identifier/interpretation_sheet.rb +48 -0
- data/lib/pubid/iec/identifier/operational_document.rb +15 -0
- data/lib/pubid/iec/identifier/publicly_available_specification.rb +28 -0
- data/lib/pubid/iec/identifier/societal_technology_trend_report.rb +16 -0
- data/lib/pubid/iec/identifier/supplement.rb +18 -0
- data/lib/pubid/iec/identifier/systems_reference_document.rb +15 -0
- data/lib/pubid/iec/identifier/technical_report.rb +48 -0
- data/lib/pubid/iec/identifier/technical_specification.rb +48 -0
- data/lib/pubid/iec/identifier/technology_report.rb +15 -0
- data/lib/pubid/iec/identifier/test_report_form.rb +40 -0
- data/lib/pubid/iec/identifier/white_paper.rb +15 -0
- data/lib/pubid/iec/identifier/working_document.rb +39 -0
- data/lib/pubid/iec/parser.rb +27 -16
- data/lib/pubid/iec/renderer/amendment.rb +7 -0
- data/lib/pubid/iec/renderer/corrigendum.rb +7 -0
- data/lib/pubid/iec/renderer/interpretation_sheet.rb +17 -0
- data/lib/pubid/iec/renderer/pubid.rb +30 -7
- data/lib/pubid/iec/renderer/urn.rb +15 -2
- data/lib/pubid/iec/renderer/urn_amendment.rb +10 -0
- data/lib/pubid/iec/renderer/urn_corrigendum.rb +9 -0
- data/lib/pubid/iec/renderer/urn_supplement.rb +11 -0
- data/lib/pubid/iec/renderer/working_document.rb +11 -0
- data/lib/pubid/iec/renderer/working_document_urn.rb +16 -0
- data/lib/pubid/iec/transformer.rb +2 -2
- data/lib/pubid/iec/version.rb +1 -1
- data/lib/pubid/iec/working_document.rb +11 -0
- data/lib/pubid/iec/working_document_parser.rb +24 -0
- data/lib/pubid/iec.rb +38 -49
- data/stages.yaml +0 -29
- metadata +33 -8
- data/lib/pubid/iec/amendment.rb +0 -11
- data/lib/pubid/iec/corrigendum.rb +0 -11
- data/lib/pubid/iec/type.rb +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1873b70daa92fcd0ca9a5a4db60a23bf2e7ec228f2036f1a81a06a589f3e5c67
|
4
|
+
data.tar.gz: b01fc14aeed19ecae83b61a7ad57c9899c584ca88a4d5144dc4db0a39a6abbc8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a84aede1cc1d76a1fe2e59d7d944e05e9ea087d3687616b9331be21625b103fb1be16645fcada73869b197b2e8b27b5ddd843546fbc819508a9e08185881625b
|
7
|
+
data.tar.gz: 9c397e13902622f6bcbd4b18984c74d814f10005269e32938838580ec1774ed8088ce9b54622d25c497091789702d46c614634dc09662c3a85e77083806a5576
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require_relative "../renderer/amendment"
|
2
|
+
require_relative "../renderer/urn_amendment"
|
3
|
+
|
4
|
+
module Pubid::Iec
|
5
|
+
module Identifier
|
6
|
+
class Amendment < Supplement
|
7
|
+
def_delegators 'Pubid::Iec::Identifier::Amendment', :type
|
8
|
+
|
9
|
+
def self.type
|
10
|
+
{ key: :amd, title: "Amendment" }
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.get_renderer_class
|
14
|
+
Renderer::Amendment
|
15
|
+
end
|
16
|
+
|
17
|
+
def urn
|
18
|
+
Renderer::UrnAmendment.new(get_params).render
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -1,25 +1,39 @@
|
|
1
|
+
require "forwardable"
|
2
|
+
|
1
3
|
module Pubid::Iec
|
2
4
|
class Base < Pubid::Core::Identifier::Base
|
3
5
|
|
4
6
|
attr_accessor :vap, :database, :fragment, :version, :decision_sheet,
|
5
7
|
:conjuction_part, :part_version, :trf_publisher,
|
6
|
-
:trf_series, :trf_version, :test_type
|
8
|
+
:trf_series, :trf_version, :test_type, :month, :day
|
9
|
+
|
10
|
+
extend Forwardable
|
7
11
|
|
8
12
|
# @param stage [String] stage eg. "PWI", "PNW"
|
9
13
|
def initialize(publisher: "IEC", stage: nil, vap: nil, database: nil,
|
10
14
|
fragment: nil, version: nil, decision_sheet: nil,
|
11
15
|
conjuction_part: nil, part_version: nil, trf_publisher: nil,
|
12
16
|
trf_series: nil, trf_version: nil, test_type: nil,
|
13
|
-
edition: nil, type: nil,
|
17
|
+
edition: nil, type: nil, month: nil, day: nil,
|
18
|
+
language: nil, **args)
|
14
19
|
# @stage = stage.to_s if stage
|
15
20
|
# @stage = Stage.parse(stage) if stage
|
16
21
|
|
17
22
|
if stage
|
18
23
|
if stage.is_a?(Stage)
|
19
24
|
@stage = stage
|
25
|
+
@typed_stage = resolve_typed_stage(@stage.harmonized_code) unless @stage.abbr
|
26
|
+
elsif self.class.has_typed_stage?(stage)
|
27
|
+
@typed_stage, @stage = self.class.find_typed_stage(stage)
|
20
28
|
else
|
21
29
|
@stage = Identifier.parse_stage(stage)
|
30
|
+
# resolve typed stage when harmonized code provided as stage
|
31
|
+
# or stage abbreviation was not resolved
|
32
|
+
if /\A[\d.]+\z/.match?(stage) || @stage.empty_abbr?(with_prf: true)
|
33
|
+
@typed_stage = self.class.resolve_typed_stage(@stage.harmonized_code)
|
34
|
+
end
|
22
35
|
end
|
36
|
+
@typed_stage = self.class::TYPED_STAGES[@typed_stage][:abbr] if @typed_stage
|
23
37
|
end
|
24
38
|
|
25
39
|
@vap = vap.to_s if vap
|
@@ -34,7 +48,9 @@ module Pubid::Iec
|
|
34
48
|
@trf_version = trf_version.to_s if trf_version
|
35
49
|
@test_type = test_type if test_type
|
36
50
|
@edition = edition.to_s if edition
|
37
|
-
@
|
51
|
+
@month = month if month
|
52
|
+
@day = day if day
|
53
|
+
@language = language if language
|
38
54
|
|
39
55
|
super(**args.merge(publisher: publisher))
|
40
56
|
end
|
@@ -43,7 +59,43 @@ module Pubid::Iec
|
|
43
59
|
Renderer::Urn.new(get_params).render
|
44
60
|
end
|
45
61
|
|
62
|
+
def to_s(with_edition_month_date: false)
|
63
|
+
self.class.get_renderer_class.new(get_params).render(with_edition_month_date: with_edition_month_date)
|
64
|
+
end
|
65
|
+
|
46
66
|
class << self
|
67
|
+
def has_type?(type)
|
68
|
+
return type == self.type[:key] if type.is_a?(Symbol)
|
69
|
+
|
70
|
+
if self.type.key?(:short)
|
71
|
+
self.type[:short].is_a?(Array) ? self.type[:short].include?(type) : self.type[:short] == type
|
72
|
+
else
|
73
|
+
type.to_s.downcase.to_sym == self.type[:key]
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def transform_hash(params)
|
78
|
+
params.map do |k, v|
|
79
|
+
get_transformer_class.new.apply(k => v.is_a?(Hash) ? transform_hash(v) : v)
|
80
|
+
end.inject({}, :merge)
|
81
|
+
end
|
82
|
+
|
83
|
+
def transform(params)
|
84
|
+
identifier_params = transform_hash(params)
|
85
|
+
|
86
|
+
if identifier_params[:interpretation_sheet]
|
87
|
+
return Identifier.create(
|
88
|
+
type: :ish,
|
89
|
+
base: Identifier.create(
|
90
|
+
**identifier_params.dup.tap { |h| h.delete(:interpretation_sheet) }),
|
91
|
+
number: identifier_params[:interpretation_sheet][:number],
|
92
|
+
year: identifier_params[:interpretation_sheet][:year]
|
93
|
+
)
|
94
|
+
end
|
95
|
+
|
96
|
+
Identifier.create(**identifier_params)
|
97
|
+
end
|
98
|
+
|
47
99
|
def get_amendment_class
|
48
100
|
Amendment
|
49
101
|
end
|
@@ -67,6 +119,10 @@ module Pubid::Iec
|
|
67
119
|
def get_update_codes
|
68
120
|
UPDATE_CODES
|
69
121
|
end
|
122
|
+
|
123
|
+
def get_identifier
|
124
|
+
Identifier
|
125
|
+
end
|
70
126
|
end
|
71
127
|
|
72
128
|
def database
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Pubid::Iec
|
2
|
+
module Identifier
|
3
|
+
class ComponentSpecification < Base
|
4
|
+
def_delegators 'Pubid::Iec::Identifier::ComponentSpecification', :type
|
5
|
+
|
6
|
+
def self.type
|
7
|
+
{ key: :cs, title: "Component Specification", short: "CS" }
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_params
|
11
|
+
super.merge(type: "CS")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Pubid::Iec
|
2
|
+
module Identifier
|
3
|
+
class ConformityAssessment < Base
|
4
|
+
def_delegators 'Pubid::Iec::Identifier::ConformityAssessment', :type
|
5
|
+
|
6
|
+
def self.type
|
7
|
+
{ key: :ca, title: "Conformity Assessment", short: "CA" }
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_params
|
11
|
+
super.merge(type: "CA")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require_relative "../renderer/corrigendum"
|
2
|
+
require_relative "../renderer/urn_corrigendum"
|
3
|
+
|
4
|
+
module Pubid::Iec
|
5
|
+
module Identifier
|
6
|
+
class Corrigendum < Supplement
|
7
|
+
def_delegators 'Pubid::Iec::Identifier::Corrigendum', :type
|
8
|
+
|
9
|
+
def self.type
|
10
|
+
{ key: :cor, title: "Corrigendum" }
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.get_renderer_class
|
14
|
+
Renderer::Corrigendum
|
15
|
+
end
|
16
|
+
|
17
|
+
def urn
|
18
|
+
Renderer::UrnCorrigendum.new(get_params).render
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Pubid::Iec
|
2
|
+
module Identifier
|
3
|
+
class Guide < Base
|
4
|
+
def_delegators 'Pubid::Iec::Identifier::Guide', :type
|
5
|
+
|
6
|
+
def self.type
|
7
|
+
{ key: :guide, title: "Guide", short: %w[Guide GUIDE] }
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_params
|
11
|
+
super.merge(type: "Guide")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
module Pubid::Iec
|
2
|
+
module Identifier
|
3
|
+
class InternationalStandard < Base
|
4
|
+
def_delegators 'Pubid::Iec::Identifier::InternationalStandard', :type
|
5
|
+
|
6
|
+
TYPED_STAGES = {
|
7
|
+
afdis: {
|
8
|
+
abbr: "AFDIS",
|
9
|
+
name: "Approved for FDIS",
|
10
|
+
harmonized_stages: %w[40.99],
|
11
|
+
},
|
12
|
+
ccdv: {
|
13
|
+
abbr: "CCDV",
|
14
|
+
name: "Draft circulated as CDV",
|
15
|
+
harmonized_stages: %w[40.20],
|
16
|
+
},
|
17
|
+
cdvm: {
|
18
|
+
abbr: "CDVM",
|
19
|
+
name: "Rejected CDV to be discussed at a meeting",
|
20
|
+
harmonized_stages: %w[40.91],
|
21
|
+
},
|
22
|
+
cfdis: {
|
23
|
+
abbr: "CFDIS",
|
24
|
+
name: "Draft circulated as FDIS",
|
25
|
+
harmonized_stages: %w[50.20],
|
26
|
+
},
|
27
|
+
decfdis: {
|
28
|
+
abbr: "DECFDIS",
|
29
|
+
name: "FDIS at editing check",
|
30
|
+
harmonized_stages: %w[50.00],
|
31
|
+
},
|
32
|
+
ncdv: {
|
33
|
+
abbr: "NCDV",
|
34
|
+
name: "CDV rejected",
|
35
|
+
harmonized_stages: %w[40.91],
|
36
|
+
},
|
37
|
+
nfdis: {
|
38
|
+
abbr: "NFDIS",
|
39
|
+
name: "FDIS rejected",
|
40
|
+
harmonized_stages: %w[50.92],
|
41
|
+
},
|
42
|
+
prvc: {
|
43
|
+
abbr: "PRVC",
|
44
|
+
name: "Preparation of RVC",
|
45
|
+
harmonized_stages: %w[40.60],
|
46
|
+
},
|
47
|
+
prvd: {
|
48
|
+
abbr: "PRVD",
|
49
|
+
name: "Preparation of RVD",
|
50
|
+
harmonized_stages: %w[50.60],
|
51
|
+
},
|
52
|
+
rfdis: {
|
53
|
+
abbr: "RFDIS",
|
54
|
+
name: "FDIS received and registered",
|
55
|
+
harmonized_stages: %w[50.00],
|
56
|
+
},
|
57
|
+
tcdv: {
|
58
|
+
abbr: "TCDV",
|
59
|
+
name: "Translation of CDV",
|
60
|
+
harmonized_stages: %w[40.00],
|
61
|
+
},
|
62
|
+
}.freeze
|
63
|
+
|
64
|
+
def self.type
|
65
|
+
{ key: :is, title: "International Standard", short: "IS" }
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Pubid::Iec
|
2
|
+
module Identifier
|
3
|
+
class InterpretationSheet < Base
|
4
|
+
def_delegators 'Pubid::Iec::Identifier::InterpretationSheet', :type
|
5
|
+
|
6
|
+
TYPED_STAGES = {
|
7
|
+
cdish: {
|
8
|
+
abbr: "CDISH",
|
9
|
+
name: "Draft circulated as DISH",
|
10
|
+
harmonized_stages: %w[50.20],
|
11
|
+
},
|
12
|
+
decdish: {
|
13
|
+
abbr: "DECDISH",
|
14
|
+
name: "DISH at editing check",
|
15
|
+
harmonized_stages: %w[50.00],
|
16
|
+
},
|
17
|
+
prvdish: {
|
18
|
+
abbr: "PRVDISH",
|
19
|
+
name: "Preparation of RVDISH",
|
20
|
+
harmonized_stages: %w[50.60],
|
21
|
+
},
|
22
|
+
rdish: {
|
23
|
+
abbr: "RDISH",
|
24
|
+
name: "DISH received and registered",
|
25
|
+
harmonized_stages: %w[50.00],
|
26
|
+
},
|
27
|
+
tdish: {
|
28
|
+
abbr: "TDISH",
|
29
|
+
name: "Translation of DISH",
|
30
|
+
harmonized_stages: %w[50.00],
|
31
|
+
},
|
32
|
+
}.freeze
|
33
|
+
|
34
|
+
def initialize(base: nil, **opts)
|
35
|
+
super(**opts)
|
36
|
+
@base = base
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.type
|
40
|
+
{ key: :ish, title: "InterpretationSheet", short: "ISH" }
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.get_renderer_class
|
44
|
+
Renderer::InterpretationSheet
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Pubid::Iec
|
2
|
+
module Identifier
|
3
|
+
class OperationalDocument < Base
|
4
|
+
def_delegators 'Pubid::Iec::Identifier::OperationalDocument', :type
|
5
|
+
|
6
|
+
def self.type
|
7
|
+
{ key: :od, title: "Operational Document", short: "OD" }
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_params
|
11
|
+
super.merge(type: "OD")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Pubid::Iec
|
2
|
+
module Identifier
|
3
|
+
class PubliclyAvailableSpecification < Base
|
4
|
+
def_delegators 'Pubid::Iec::Identifier::PubliclyAvailableSpecification', :type
|
5
|
+
|
6
|
+
TYPED_STAGES = {
|
7
|
+
cdpas: {
|
8
|
+
abbr: "CDPAS",
|
9
|
+
name: "Draft circulated as DPAS",
|
10
|
+
harmonized_stages: %w[50.20],
|
11
|
+
},
|
12
|
+
PRVDPAS: {
|
13
|
+
abbr: "PRVDPAS",
|
14
|
+
name: "Preparation of RVDPAS",
|
15
|
+
harmonized_stages: %w[50.60],
|
16
|
+
}
|
17
|
+
}.freeze
|
18
|
+
|
19
|
+
def self.type
|
20
|
+
{ key: :pas, title: "Publicly Available Specification", short: "PAS" }
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_params
|
24
|
+
super.merge(type: "PAS")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Pubid::Iec
|
3
|
+
module Identifier
|
4
|
+
class SocietalTechnologyTrendReport < Base
|
5
|
+
def_delegators 'Pubid::Iec::Identifier::SocietalTechnologyTrendReport', :type
|
6
|
+
|
7
|
+
def self.type
|
8
|
+
{ key: :sttr, title: "Societal and Technology Trend Report", short: "Trend Report" }
|
9
|
+
end
|
10
|
+
|
11
|
+
def get_params
|
12
|
+
super.merge(type: "Trend Report")
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Pubid::Iec
|
2
|
+
module Identifier
|
3
|
+
class Supplement < Base
|
4
|
+
def initialize(number:, year: nil)
|
5
|
+
@number = number ? number.to_i : 1
|
6
|
+
@year = year&.to_i
|
7
|
+
end
|
8
|
+
|
9
|
+
def <=>(other)
|
10
|
+
return 0 if year.nil? && other.year
|
11
|
+
|
12
|
+
return year <=> other.year if number == other.number
|
13
|
+
|
14
|
+
(number <=> other.number) || year <=> other.year
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Pubid::Iec
|
2
|
+
module Identifier
|
3
|
+
class SystemsReferenceDocument < Base
|
4
|
+
def_delegators 'Pubid::Iec::Identifier::SystemsReferenceDocument', :type
|
5
|
+
|
6
|
+
def self.type
|
7
|
+
{ key: :srd, title: "Systems Reference Document", short: "SRD" }
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_params
|
11
|
+
super.merge(type: "SRD")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Pubid::Iec
|
2
|
+
module Identifier
|
3
|
+
class TechnicalReport < Base
|
4
|
+
def_delegators 'Pubid::Iec::Identifier::TechnicalReport', :type
|
5
|
+
|
6
|
+
TYPED_STAGES = {
|
7
|
+
adtr: {
|
8
|
+
abbr: "ADTR",
|
9
|
+
name: "Approved for DTR",
|
10
|
+
harmonized_stages: %w[40.99],
|
11
|
+
},
|
12
|
+
cdtr: {
|
13
|
+
abbr: "CDTR",
|
14
|
+
name: "Draft circulated as DTR",
|
15
|
+
harmonized_stages: %w[50.20],
|
16
|
+
},
|
17
|
+
dtrm: {
|
18
|
+
abbr: "DTRM",
|
19
|
+
name: "Rejected DTR to be discussed at meeting",
|
20
|
+
harmonized_stages: %w[50.92],
|
21
|
+
},
|
22
|
+
ndtr: {
|
23
|
+
abbr: "NDTR",
|
24
|
+
name: "DTR rejected",
|
25
|
+
harmonized_stages: %w[50.92],
|
26
|
+
},
|
27
|
+
prvdtr: {
|
28
|
+
abbr: "PRVDTR",
|
29
|
+
name: "Preparation of RVDTR",
|
30
|
+
harmonized_stages: %w[50.60]
|
31
|
+
},
|
32
|
+
tdtr: {
|
33
|
+
abbr: "TDTR",
|
34
|
+
name: "Translation of DTR",
|
35
|
+
harmonized_stages: %w[50.00]
|
36
|
+
}
|
37
|
+
}.freeze
|
38
|
+
|
39
|
+
def self.type
|
40
|
+
{ key: :tr, title: "Technical Report", short: "TR" }
|
41
|
+
end
|
42
|
+
|
43
|
+
def get_params
|
44
|
+
super.merge(type: "TR")
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Pubid::Iec
|
2
|
+
module Identifier
|
3
|
+
class TechnicalSpecification < Base
|
4
|
+
TYPED_STAGES = {
|
5
|
+
adts: {
|
6
|
+
abbr: "ADTS",
|
7
|
+
name: "Approved for DTS",
|
8
|
+
harmonized_stages: %w[40.99],
|
9
|
+
},
|
10
|
+
cdts: {
|
11
|
+
abbr: "CDTS",
|
12
|
+
name: "Draft circulated as DTS",
|
13
|
+
harmonized_stages: %w[50.20],
|
14
|
+
},
|
15
|
+
dtsm: {
|
16
|
+
abbr: "DTSM",
|
17
|
+
name: "Rejected DTS to be discussed at meeting",
|
18
|
+
harmonized_stages: %w[50.92],
|
19
|
+
},
|
20
|
+
ndts: {
|
21
|
+
abbr: "NDTS",
|
22
|
+
name: "DTS rejected",
|
23
|
+
harmonized_stages: %w[50.92],
|
24
|
+
},
|
25
|
+
prvdts: {
|
26
|
+
abbr: "PRVDTS",
|
27
|
+
name: "Preparation of RVDTS",
|
28
|
+
harmonized_stages: %w[50.60],
|
29
|
+
},
|
30
|
+
tdts: {
|
31
|
+
abbr: "TDTS",
|
32
|
+
name: "Translation of DTS",
|
33
|
+
harmonized_stages: %w[50.00],
|
34
|
+
},
|
35
|
+
}.freeze
|
36
|
+
|
37
|
+
def_delegators 'Pubid::Iec::Identifier::TechnicalSpecification', :type
|
38
|
+
|
39
|
+
def self.type
|
40
|
+
{ key: :ts, title: "Technical Specification", short: "TS" }
|
41
|
+
end
|
42
|
+
|
43
|
+
def get_params
|
44
|
+
super.merge(type: "TS")
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Pubid::Iec
|
2
|
+
module Identifier
|
3
|
+
class TechnologyReport < Base
|
4
|
+
def_delegators 'Pubid::Iec::Identifier::TechnologyReport', :type
|
5
|
+
|
6
|
+
def self.type
|
7
|
+
{ key: :tec, title: "Technology Report", short: "Technology Report" }
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_params
|
11
|
+
super.merge(type: "Technology Report")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Pubid::Iec
|
2
|
+
module Identifier
|
3
|
+
class TestReportForm < Base
|
4
|
+
|
5
|
+
attr_accessor :version, :decision_sheet,
|
6
|
+
:conjuction_part, :part_version, :trf_publisher,
|
7
|
+
:trf_series, :trf_version, :test_type
|
8
|
+
|
9
|
+
def initialize(publisher: "IEC", decision_sheet: nil, trf_publisher: nil,
|
10
|
+
trf_series: nil, trf_version: nil, test_type: nil,
|
11
|
+
**args)
|
12
|
+
@decision_sheet = decision_sheet if decision_sheet
|
13
|
+
@trf_publisher = trf_publisher.to_s if trf_publisher
|
14
|
+
@trf_series = trf_series if trf_series
|
15
|
+
@trf_version = trf_version.to_s if trf_version
|
16
|
+
@test_type = test_type if test_type
|
17
|
+
|
18
|
+
super(**args.merge(publisher: publisher))
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.type
|
22
|
+
{ key: :trf, title: "Test Report Form", short: "TRF" }
|
23
|
+
end
|
24
|
+
|
25
|
+
def urn
|
26
|
+
Renderer::TrfUrn.new(get_params).render
|
27
|
+
end
|
28
|
+
|
29
|
+
class << self
|
30
|
+
def get_parser_class
|
31
|
+
TrfParser
|
32
|
+
end
|
33
|
+
|
34
|
+
def get_renderer_class
|
35
|
+
Renderer::TrfPubid
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Pubid::Iec
|
2
|
+
module Identifier
|
3
|
+
class WritePaper < Base
|
4
|
+
def_delegators 'Pubid::Iec::Identifier::WritePaper', :type
|
5
|
+
|
6
|
+
def self.type
|
7
|
+
{ key: :wp, title: "Write Paper", short: "White Paper" }
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_params
|
11
|
+
super.merge(type: "White Paper")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require "forwardable"
|
2
|
+
|
3
|
+
module Pubid::Iec
|
4
|
+
module Identifier
|
5
|
+
class WorkingDocument < Pubid::Core::Identifier::Base
|
6
|
+
STAGES = %w[ACDV ACD ADTR ADTS AFDIS APUB BPUB CAN CDM CCDV CDISH CDVM
|
7
|
+
CFDIS CDPAS CDTR CDTS DTRM DTSM DECDISH DECFDIS DECPUB
|
8
|
+
DELPUB DEL NCDV NDTR NDTS NFDIS PCC PNW PPUB PRVC PRVDISH
|
9
|
+
PRVDPAS PRVDTR PRVDTS PRVD PRVN PWI RDISH RFDIS RPUB TCDV TDISH
|
10
|
+
TDTR TDTS TPUB WPUB AC CC CDV CD DA DV DC DISH DL DPAS DTR
|
11
|
+
DTS FDIS INF MTG NP QP Q RM RQ RR RVC RVDISH RVDTR RVDTS RVD
|
12
|
+
RVN RV R SBP].freeze
|
13
|
+
|
14
|
+
extend Forwardable
|
15
|
+
|
16
|
+
attr_accessor :technical_committee
|
17
|
+
|
18
|
+
def initialize(publisher: "IEC", technical_committee: nil, **args)
|
19
|
+
super(**args.merge(publisher: publisher))
|
20
|
+
|
21
|
+
@technical_committee = technical_committee
|
22
|
+
end
|
23
|
+
|
24
|
+
def urn
|
25
|
+
Renderer::WorkingDocumentUrn.new(get_params).render
|
26
|
+
end
|
27
|
+
|
28
|
+
class << self
|
29
|
+
def get_parser_class
|
30
|
+
WorkingDocumentParser
|
31
|
+
end
|
32
|
+
|
33
|
+
def get_renderer_class
|
34
|
+
Renderer::WorkingDocument
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|