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
         
     |