pubid 2.0.0.pre.alpha.2 → 2.0.0.pre.alpha.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/README.adoc +5 -1
- data/data/nist/update_codes.yaml +25 -0
- data/lib/pubid/amca/builder.rb +2 -2
- data/lib/pubid/amca/identifier.rb +7 -39
- data/lib/pubid/amca/identifiers/base.rb +0 -26
- data/lib/pubid/amca/identifiers/interpretation.rb +0 -17
- data/lib/pubid/amca/identifiers/publication.rb +0 -13
- data/lib/pubid/amca/renderer.rb +82 -0
- data/lib/pubid/amca/single_identifier.rb +0 -23
- data/lib/pubid/amca/urn_parser.rb +28 -0
- data/lib/pubid/amca.rb +42 -1
- data/lib/pubid/ansi/builder.rb +5 -3
- data/lib/pubid/ansi/identifier.rb +1 -43
- data/lib/pubid/ansi/identifiers/american_national_standard.rb +2 -1
- data/lib/pubid/ansi/identifiers/standard.rb +2 -3
- data/lib/pubid/ansi/renderer.rb +53 -0
- data/lib/pubid/ansi/single_identifier.rb +2 -31
- data/lib/pubid/ansi/urn_generator.rb +3 -38
- data/lib/pubid/ansi/urn_parser.rb +23 -0
- data/lib/pubid/ansi.rb +38 -3
- data/lib/pubid/api/builder.rb +29 -74
- data/lib/pubid/api/identifier.rb +0 -51
- data/lib/pubid/api/identifiers/base.rb +0 -2
- data/lib/pubid/api/identifiers/bulletin.rb +0 -2
- data/lib/pubid/api/identifiers/continuous_operations_standard.rb +0 -2
- data/lib/pubid/api/identifiers/mpms.rb +1 -17
- data/lib/pubid/api/identifiers/publication.rb +0 -2
- data/lib/pubid/api/identifiers/recommended_practice.rb +0 -2
- data/lib/pubid/api/identifiers/specification.rb +0 -2
- data/lib/pubid/api/identifiers/standard.rb +0 -2
- data/lib/pubid/api/identifiers/technical_report.rb +0 -2
- data/lib/pubid/api/identifiers/typeless_standard.rb +1 -14
- data/lib/pubid/api/identifiers.rb +18 -0
- data/lib/pubid/api/renderer.rb +89 -0
- data/lib/pubid/api/single_identifier.rb +1 -13
- data/lib/pubid/api/urn_generator.rb +0 -18
- data/lib/pubid/api/urn_parser.rb +35 -0
- data/lib/pubid/api.rb +51 -5
- data/lib/pubid/ashrae/builder.rb +3 -3
- data/lib/pubid/ashrae/identifier.rb +6 -39
- data/lib/pubid/ashrae/identifiers/addenda_package.rb +0 -10
- data/lib/pubid/ashrae/identifiers/addendum.rb +0 -19
- data/lib/pubid/ashrae/identifiers/base.rb +3 -0
- data/lib/pubid/ashrae/identifiers/combined_addenda.rb +0 -15
- data/lib/pubid/ashrae/identifiers/errata.rb +0 -10
- data/lib/pubid/ashrae/identifiers/interpretation.rb +0 -10
- data/lib/pubid/ashrae/renderer.rb +117 -0
- data/lib/pubid/ashrae/single_identifier.rb +0 -13
- data/lib/pubid/ashrae/urn_generator.rb +0 -8
- data/lib/pubid/ashrae/urn_parser.rb +27 -0
- data/lib/pubid/ashrae.rb +42 -1
- data/lib/pubid/asme/components/code.rb +10 -2
- data/lib/pubid/asme/identifier.rb +0 -46
- data/lib/pubid/asme/identifiers/base.rb +0 -60
- data/lib/pubid/asme/renderer.rb +66 -0
- data/lib/pubid/asme/urn_parser.rb +31 -0
- data/lib/pubid/asme.rb +42 -1
- data/lib/pubid/astm/components/code.rb +9 -0
- data/lib/pubid/{jis → astm}/components.rb +1 -1
- data/lib/pubid/astm/identifier.rb +0 -77
- data/lib/pubid/astm/identifiers/adjunct.rb +0 -8
- data/lib/pubid/astm/identifiers/data_series.rb +0 -14
- data/lib/pubid/astm/identifiers/iso_dual_published.rb +9 -34
- data/lib/pubid/astm/identifiers/manual.rb +0 -27
- data/lib/pubid/astm/identifiers/monograph.rb +0 -14
- data/lib/pubid/astm/identifiers/research_report.rb +0 -7
- data/lib/pubid/astm/identifiers/standard.rb +0 -39
- data/lib/pubid/astm/identifiers/technical_report.rb +0 -13
- data/lib/pubid/astm/identifiers/work_in_progress.rb +0 -11
- data/lib/pubid/astm/identifiers.rb +18 -0
- data/lib/pubid/astm/renderer.rb +172 -0
- data/lib/pubid/astm/single_identifier.rb +0 -10
- data/lib/pubid/astm/urn_parser.rb +30 -0
- data/lib/pubid/astm.rb +39 -27
- data/lib/pubid/bsi/builder.rb +21 -12
- data/lib/pubid/bsi/identifier.rb +8 -62
- data/lib/pubid/bsi/identifiers/addendum_document.rb +3 -33
- data/lib/pubid/bsi/identifiers/adopted_european_norm.rb +11 -47
- data/lib/pubid/bsi/identifiers/adopted_international_standard.rb +11 -38
- data/lib/pubid/bsi/identifiers/aerospace_standard.rb +3 -53
- data/lib/pubid/bsi/identifiers/amendment.rb +3 -19
- data/lib/pubid/bsi/identifiers/british_industrial_practice.rb +2 -4
- data/lib/pubid/bsi/identifiers/british_standard.rb +2 -1
- data/lib/pubid/bsi/identifiers/bundled_identifier.rb +3 -84
- data/lib/pubid/bsi/identifiers/committee_document.rb +1 -14
- data/lib/pubid/bsi/identifiers/consolidated_identifier.rb +3 -84
- data/lib/pubid/bsi/identifiers/corrigendum.rb +3 -7
- data/lib/pubid/bsi/identifiers/detailed_specification.rb +1 -34
- data/lib/pubid/bsi/identifiers/disc.rb +1 -27
- data/lib/pubid/bsi/identifiers/draft_document.rb +3 -44
- data/lib/pubid/bsi/identifiers/electronic_book.rb +3 -36
- data/lib/pubid/bsi/identifiers/expert_commentary.rb +3 -15
- data/lib/pubid/bsi/identifiers/explanatory_supplement.rb +1 -45
- data/lib/pubid/bsi/identifiers/flex.rb +1 -33
- data/lib/pubid/bsi/identifiers/handbook.rb +2 -13
- data/lib/pubid/bsi/identifiers/index.rb +1 -30
- data/lib/pubid/bsi/identifiers/method.rb +1 -39
- data/lib/pubid/bsi/identifiers/national_annex.rb +5 -27
- data/lib/pubid/bsi/identifiers/practice_guide.rb +2 -4
- data/lib/pubid/bsi/identifiers/publicly_available_specification.rb +3 -52
- data/lib/pubid/bsi/identifiers/published_document.rb +3 -52
- data/lib/pubid/bsi/identifiers/section.rb +1 -28
- data/lib/pubid/bsi/identifiers/set.rb +3 -17
- data/lib/pubid/bsi/identifiers/standalone_amendment.rb +1 -7
- data/lib/pubid/bsi/identifiers/supplement_document.rb +3 -21
- data/lib/pubid/bsi/identifiers/supplementary_index.rb +1 -44
- data/lib/pubid/bsi/identifiers/technical_specification.rb +3 -45
- data/lib/pubid/bsi/identifiers/test_method.rb +1 -30
- data/lib/pubid/bsi/identifiers/value_added_publication.rb +3 -14
- data/lib/pubid/bsi/identifiers.rb +0 -1
- data/lib/pubid/bsi/renderer.rb +1050 -0
- data/lib/pubid/bsi/single_identifier.rb +6 -70
- data/lib/pubid/bsi/urn_generator.rb +2 -3
- data/lib/pubid/bsi/urn_parser.rb +52 -0
- data/lib/pubid/bsi.rb +224 -1
- data/lib/pubid/builder/base.rb +57 -10
- data/lib/pubid/bundled_identifier.rb +0 -1
- data/lib/pubid/ccsds/builder.rb +4 -3
- data/lib/pubid/ccsds/identifier.rb +63 -66
- data/lib/pubid/ccsds/identifiers/base.rb +11 -61
- data/lib/pubid/ccsds/identifiers/corrigendum.rb +7 -6
- data/lib/pubid/ccsds/parser.rb +4 -2
- data/lib/pubid/ccsds/supplement_identifier.rb +15 -11
- data/lib/pubid/ccsds/urn_generator.rb +3 -3
- data/lib/pubid/ccsds/urn_parser.rb +20 -0
- data/lib/pubid/ccsds.rb +39 -1
- data/lib/pubid/cen_cenelec/builder.rb +12 -14
- data/lib/pubid/cen_cenelec/identifier.rb +7 -38
- data/lib/pubid/cen_cenelec/identifiers/adopted_european_norm.rb +13 -4
- data/lib/pubid/cen_cenelec/identifiers/amendment.rb +2 -8
- data/lib/pubid/cen_cenelec/identifiers/base.rb +5 -41
- data/lib/pubid/cen_cenelec/identifiers/cen_report.rb +2 -1
- data/lib/pubid/cen_cenelec/identifiers/cen_workshop_agreement.rb +2 -1
- data/lib/pubid/cen_cenelec/identifiers/consolidated_identifier.rb +2 -25
- data/lib/pubid/cen_cenelec/identifiers/corrigendum.rb +2 -13
- data/lib/pubid/cen_cenelec/identifiers/european_norm.rb +2 -1
- data/lib/pubid/cen_cenelec/identifiers/european_prestandard.rb +4 -7
- data/lib/pubid/cen_cenelec/identifiers/european_specification.rb +2 -1
- data/lib/pubid/cen_cenelec/identifiers/fragment.rb +2 -2
- data/lib/pubid/cen_cenelec/identifiers/harmonization_document.rb +2 -1
- data/lib/pubid/cen_cenelec/identifiers/technical_report.rb +2 -1
- data/lib/pubid/cen_cenelec/identifiers/technical_specification.rb +2 -1
- data/lib/pubid/cen_cenelec/renderer.rb +261 -0
- data/lib/pubid/cen_cenelec/single_identifier.rb +11 -89
- data/lib/pubid/cen_cenelec/urn_generator.rb +6 -6
- data/lib/pubid/cen_cenelec/urn_parser.rb +28 -0
- data/lib/pubid/cen_cenelec.rb +168 -1
- data/lib/pubid/cie/components/code.rb +8 -0
- data/lib/pubid/cie/identifier.rb +6 -57
- data/lib/pubid/cie/urn_parser.rb +28 -0
- data/lib/pubid/cie.rb +43 -1
- data/lib/pubid/components/adoption.rb +104 -0
- data/lib/pubid/components/code.rb +22 -8
- data/lib/pubid/components/date.rb +23 -16
- data/lib/pubid/components/edition.rb +9 -6
- data/lib/pubid/components/iteration.rb +32 -0
- data/lib/pubid/components/language.rb +6 -4
- data/lib/pubid/components/locality.rb +10 -1
- data/lib/pubid/components/publisher.rb +9 -6
- data/lib/pubid/components/relationship.rb +151 -0
- data/lib/pubid/components/stage.rb +5 -14
- data/lib/pubid/components/supplement.rb +184 -0
- data/lib/pubid/components/type.rb +5 -15
- data/lib/pubid/components/typed_stage.rb +10 -11
- data/lib/pubid/components.rb +4 -1
- data/lib/pubid/core/update_codes.rb +28 -7
- data/lib/pubid/csa/identifier.rb +0 -59
- data/lib/pubid/csa/identifiers/base.rb +2 -122
- data/lib/pubid/csa/identifiers/cec.rb +2 -101
- data/lib/pubid/csa/identifiers/series.rb +2 -102
- data/lib/pubid/csa/renderer.rb +292 -0
- data/lib/pubid/csa/urn_generator.rb +1 -1
- data/lib/pubid/csa/urn_parser.rb +33 -0
- data/lib/pubid/csa.rb +42 -1
- data/lib/pubid/etsi/components/code.rb +9 -2
- data/lib/pubid/etsi/identifier.rb +0 -43
- data/lib/pubid/etsi/identifiers/base.rb +1 -4
- data/lib/pubid/etsi/identifiers/supplement_identifier.rb +2 -9
- data/lib/pubid/etsi/renderer.rb +42 -0
- data/lib/pubid/etsi/urn_parser.rb +34 -0
- data/lib/pubid/etsi.rb +42 -1
- data/lib/pubid/export/exporter.rb +4 -46
- data/lib/pubid/export/flavor_exporter.rb +111 -278
- data/lib/pubid/export.rb +0 -6
- data/lib/pubid/identifier.rb +2 -17
- data/lib/pubid/identifier_facade.rb +114 -0
- data/lib/pubid/identifier_metadata.rb +1 -1
- data/lib/pubid/idf/builder.rb +3 -3
- data/lib/pubid/idf/identifier.rb +3 -66
- data/lib/pubid/idf/identifiers/amendment.rb +2 -1
- data/lib/pubid/idf/identifiers/corrigendum.rb +2 -1
- data/lib/pubid/idf/identifiers/international_standard.rb +2 -1
- data/lib/pubid/idf/identifiers/reviewed_method.rb +2 -1
- data/lib/pubid/idf/parser.rb +3 -2
- data/lib/pubid/idf/renderer.rb +84 -0
- data/lib/pubid/idf/supplement_identifier.rb +2 -10
- data/lib/pubid/idf/urn_generator.rb +4 -39
- data/lib/pubid/idf/urn_parser.rb +25 -0
- data/lib/pubid/idf.rb +51 -1
- data/lib/pubid/iec/builder.rb +46 -64
- data/lib/pubid/iec/components/code.rb +8 -32
- data/lib/pubid/iec/components/publisher.rb +0 -1
- data/lib/pubid/iec/components.rb +14 -0
- data/lib/pubid/iec/identifier.rb +251 -213
- data/lib/pubid/iec/identifiers/amendment.rb +2 -3
- data/lib/pubid/iec/identifiers/base.rb +8 -32
- data/lib/pubid/iec/identifiers/component_specification.rb +3 -3
- data/lib/pubid/iec/identifiers/conformity_assessment.rb +1 -2
- data/lib/pubid/iec/identifiers/consolidated_identifier.rb +27 -26
- data/lib/pubid/iec/identifiers/corrigendum.rb +2 -3
- data/lib/pubid/iec/identifiers/fragment_identifier.rb +37 -22
- data/lib/pubid/iec/identifiers/guide.rb +0 -2
- data/lib/pubid/iec/identifiers/international_standard.rb +2 -3
- data/lib/pubid/iec/identifiers/interpretation_sheet.rb +2 -3
- data/lib/pubid/iec/identifiers/operational_document.rb +3 -3
- data/lib/pubid/iec/identifiers/publicly_available_specification.rb +2 -3
- data/lib/pubid/iec/identifiers/sheet_identifier.rb +21 -11
- data/lib/pubid/iec/identifiers/societal_technology_trend_report.rb +3 -3
- data/lib/pubid/iec/identifiers/systems_reference_document.rb +2 -3
- data/lib/pubid/iec/identifiers/technical_report.rb +2 -3
- data/lib/pubid/iec/identifiers/technical_specification.rb +2 -3
- data/lib/pubid/iec/identifiers/technology_report.rb +1 -2
- data/lib/pubid/iec/identifiers/test_report_form.rb +5 -34
- data/lib/pubid/iec/identifiers/vap_identifier.rb +26 -19
- data/lib/pubid/iec/identifiers/white_paper.rb +3 -3
- data/lib/pubid/iec/identifiers/working_document.rb +4 -48
- data/lib/pubid/iec/identifiers.rb +30 -0
- data/lib/pubid/iec/parser.rb +13 -12
- data/lib/pubid/iec/renderer.rb +254 -0
- data/lib/pubid/iec/single_identifier.rb +6 -12
- data/lib/pubid/iec/supplement_identifier.rb +58 -54
- data/lib/pubid/iec/urn_generator.rb +3 -3
- data/lib/pubid/iec/urn_parser.rb +3 -3
- data/lib/pubid/iec.rb +40 -68
- data/lib/pubid/ieee/builder.rb +12 -12
- data/lib/pubid/ieee/components/code.rb +8 -0
- data/lib/pubid/ieee/components/draft.rb +14 -0
- data/lib/pubid/ieee/components/relationship.rb +5 -149
- data/lib/pubid/ieee/identifier.rb +6 -41
- data/lib/pubid/ieee/identifiers/adopted_standard.rb +1 -6
- data/lib/pubid/ieee/identifiers/base.rb +101 -458
- data/lib/pubid/ieee/identifiers/conformance_identifier.rb +1 -7
- data/lib/pubid/ieee/identifiers/corrigendum.rb +1 -9
- data/lib/pubid/ieee/identifiers/csa_dual_published.rb +1 -7
- data/lib/pubid/ieee/identifiers/dual_identifier.rb +1 -1
- data/lib/pubid/ieee/identifiers/dual_published.rb +1 -1
- data/lib/pubid/ieee/identifiers/iec_ieee_copublished.rb +1 -6
- data/lib/pubid/ieee/identifiers/interpretation_identifier.rb +1 -7
- data/lib/pubid/ieee/identifiers/joint_development.rb +2 -0
- data/lib/pubid/ieee/identifiers/multi_numbered_identifier.rb +1 -15
- data/lib/pubid/ieee/identifiers/parenthetical_identifier.rb +1 -3
- data/lib/pubid/ieee/identifiers/project_draft_identifier.rb +15 -0
- data/lib/pubid/ieee/identifiers/redlined_standard.rb +1 -4
- data/lib/pubid/ieee/identifiers/si_standard.rb +1 -35
- data/lib/pubid/ieee/identifiers/standard.rb +1 -1
- data/lib/pubid/ieee/pre_parser.rb +301 -0
- data/lib/pubid/ieee/renderer.rb +307 -0
- data/lib/pubid/ieee/urn_parser.rb +34 -0
- data/lib/pubid/ieee.rb +62 -1
- data/lib/pubid/ieee_debug.rb +0 -1
- data/lib/pubid/iho/builder.rb +2 -2
- data/lib/pubid/iho/identifier.rb +8 -42
- data/lib/pubid/iho/identifiers/base.rb +49 -10
- data/lib/pubid/iho/parser.rb +3 -3
- data/lib/pubid/iho/renderer.rb +30 -0
- data/lib/pubid/iho/urn_generator.rb +2 -2
- data/lib/pubid/iho/urn_parser.rb +58 -0
- data/lib/pubid/iho.rb +50 -1
- data/lib/pubid/iso/builder.rb +55 -53
- data/lib/pubid/iso/bundled_identifier.rb +51 -0
- data/lib/pubid/iso/components/code.rb +7 -19
- data/lib/pubid/iso/components/publisher.rb +10 -8
- data/lib/pubid/iso/components.rb +2 -4
- data/lib/pubid/iso/identifier.rb +218 -252
- data/lib/pubid/iso/identifiers/addendum.rb +9 -6
- data/lib/pubid/iso/identifiers/amendment.rb +8 -4
- data/lib/pubid/iso/identifiers/corrigendum.rb +4 -4
- data/lib/pubid/iso/identifiers/data.rb +0 -1
- data/lib/pubid/iso/identifiers/directives.rb +8 -2
- data/lib/pubid/iso/identifiers/directives_supplement.rb +43 -14
- data/lib/pubid/iso/identifiers/extract.rb +2 -2
- data/lib/pubid/iso/identifiers/guide.rb +0 -1
- data/lib/pubid/iso/identifiers/international_standard.rb +4 -4
- data/lib/pubid/iso/identifiers/international_standardized_profile.rb +4 -4
- data/lib/pubid/iso/identifiers/international_workshop_agreement.rb +10 -4
- data/lib/pubid/iso/identifiers/pas.rb +2 -2
- data/lib/pubid/iso/identifiers/recommendation.rb +2 -2
- data/lib/pubid/iso/identifiers/supplement.rb +11 -3
- data/lib/pubid/iso/identifiers/tc_document.rb +44 -15
- data/lib/pubid/iso/identifiers/technical_report.rb +4 -4
- data/lib/pubid/iso/identifiers/technical_specification.rb +2 -2
- data/lib/pubid/iso/identifiers/technology_trends_assessments.rb +2 -2
- data/lib/pubid/iso/identifiers.rb +0 -1
- data/lib/pubid/iso/normalizer.rb +89 -0
- data/lib/pubid/iso/parser.rb +22 -4
- data/lib/pubid/iso/supplement_identifier.rb +15 -2
- data/lib/pubid/iso/urn_generator.rb +66 -182
- data/lib/pubid/iso/urn_parser.rb +12 -7
- data/lib/pubid/iso.rb +173 -2
- data/lib/pubid/itu/builder.rb +0 -12
- data/lib/pubid/itu/components/code.rb +8 -0
- data/lib/pubid/itu/components.rb +11 -0
- data/lib/pubid/itu/identifier.rb +6 -104
- data/lib/pubid/itu/identifiers/amendment.rb +0 -2
- data/lib/pubid/itu/identifiers/annex.rb +0 -2
- data/lib/pubid/itu/identifiers/base.rb +0 -6
- data/lib/pubid/itu/identifiers/combined_identifier.rb +0 -2
- data/lib/pubid/itu/identifiers/corrigendum.rb +0 -2
- data/lib/pubid/itu/identifiers/recommendation.rb +0 -2
- data/lib/pubid/itu/identifiers/special_publication.rb +0 -2
- data/lib/pubid/itu/identifiers/supplement.rb +0 -2
- data/lib/pubid/itu/urn_parser.rb +23 -0
- data/lib/pubid/itu.rb +42 -1
- data/lib/pubid/jcgm/builder.rb +16 -8
- data/lib/pubid/jcgm/identifier.rb +0 -43
- data/lib/pubid/jcgm/identifiers/amendment.rb +2 -7
- data/lib/pubid/jcgm/identifiers/gum_guide.rb +2 -10
- data/lib/pubid/jcgm/renderer.rb +68 -0
- data/lib/pubid/jcgm/single_identifier.rb +1 -5
- data/lib/pubid/jcgm/urn_generator.rb +4 -6
- data/lib/pubid/jcgm/urn_parser.rb +23 -0
- data/lib/pubid/jcgm.rb +43 -2
- data/lib/pubid/jis/builder.rb +44 -52
- data/lib/pubid/jis/identifier.rb +132 -46
- data/lib/pubid/jis/identifiers/amendment.rb +1 -1
- data/lib/pubid/jis/identifiers/corrigendum.rb +16 -0
- data/lib/pubid/jis/identifiers/standard.rb +2 -1
- data/lib/pubid/jis/identifiers/technical_report.rb +2 -1
- data/lib/pubid/jis/identifiers/technical_specification.rb +2 -1
- data/lib/pubid/jis/identifiers.rb +1 -1
- data/lib/pubid/jis/parser.rb +31 -5
- data/lib/pubid/jis/renderer.rb +69 -0
- data/lib/pubid/jis/single_identifier.rb +6 -12
- data/lib/pubid/jis/supplement_identifier.rb +17 -14
- data/lib/pubid/jis/urn_parser.rb +23 -0
- data/lib/pubid/jis.rb +42 -2
- data/lib/pubid/nist/builder.rb +63 -1871
- data/lib/pubid/nist/caster.rb +1272 -0
- data/lib/pubid/nist/circular_supplement_builder.rb +291 -0
- data/lib/pubid/nist/components/code.rb +9 -20
- data/lib/pubid/nist/components/supplement.rb +2 -2
- data/lib/pubid/nist/components.rb +0 -1
- data/lib/pubid/nist/identifier.rb +11 -48
- data/lib/pubid/nist/identifiers/base.rb +110 -47
- data/lib/pubid/nist/identifiers/circular.rb +7 -2
- data/lib/pubid/nist/identifiers/circular_supplement.rb +2 -1
- data/lib/pubid/nist/identifiers/commercial_standard.rb +2 -1
- data/lib/pubid/nist/identifiers/commercial_standard_emergency.rb +6 -4
- data/lib/pubid/nist/identifiers/commercial_standards_monthly.rb +10 -3
- data/lib/pubid/nist/identifiers/crpl_report.rb +8 -8
- data/lib/pubid/nist/identifiers/dated_document.rb +49 -0
- data/lib/pubid/nist/identifiers/federal_information_processing_standards.rb +15 -24
- data/lib/pubid/nist/identifiers/grant_contractor_report.rb +2 -1
- data/lib/pubid/nist/identifiers/handbook.rb +2 -1
- data/lib/pubid/nist/identifiers/internal_report.rb +2 -1
- data/lib/pubid/nist/identifiers/letter_circular.rb +2 -1
- data/lib/pubid/nist/identifiers/miscellaneous_publication.rb +5 -4
- data/lib/pubid/nist/identifiers/monograph.rb +7 -3
- data/lib/pubid/nist/identifiers/report.rb +4 -2
- data/lib/pubid/nist/identifiers/special_publication.rb +2 -1
- data/lib/pubid/nist/identifiers/technical_note.rb +3 -2
- data/lib/pubid/nist/identifiers.rb +1 -0
- data/lib/pubid/nist/parser.rb +62 -452
- data/lib/pubid/nist/parser_output_normalizer.rb +233 -0
- data/lib/pubid/nist/preprocessor.rb +416 -0
- data/lib/pubid/nist/renderer.rb +43 -0
- data/lib/pubid/nist/router.rb +148 -0
- data/lib/pubid/nist/series/base.rb +58 -0
- data/lib/pubid/nist/series/crpl.rb +13 -0
- data/lib/pubid/nist/series/fips.rb +14 -0
- data/lib/pubid/nist/series/ir.rb +60 -0
- data/lib/pubid/nist/series/letter_preserving.rb +15 -0
- data/lib/pubid/nist/series/mono.rb +19 -0
- data/lib/pubid/nist/series/ncstar.rb +20 -0
- data/lib/pubid/nist/series.rb +49 -0
- data/lib/pubid/nist/supplement_identifier.rb +3 -1
- data/lib/pubid/nist/urn_parser.rb +67 -0
- data/lib/pubid/nist.rb +82 -4
- data/lib/pubid/oiml/components/code.rb +10 -0
- data/lib/pubid/oiml/identifier.rb +0 -50
- data/lib/pubid/oiml/identifiers/annex.rb +3 -45
- data/lib/pubid/oiml/identifiers/base.rb +2 -17
- data/lib/pubid/oiml/renderer.rb +161 -0
- data/lib/pubid/oiml/single_identifier.rb +6 -45
- data/lib/pubid/oiml/supplement_identifier.rb +4 -19
- data/lib/pubid/oiml/urn_generator.rb +0 -8
- data/lib/pubid/oiml/urn_parser.rb +22 -0
- data/lib/pubid/oiml.rb +42 -1
- data/lib/pubid/plateau/identifier.rb +7 -41
- data/lib/pubid/plateau/identifiers/handbook.rb +1 -3
- data/lib/pubid/plateau/identifiers/technical_report.rb +1 -1
- data/lib/pubid/plateau/renderer.rb +51 -0
- data/lib/pubid/plateau/supplement_identifier.rb +1 -1
- data/lib/pubid/plateau/urn_parser.rb +43 -0
- data/lib/pubid/plateau.rb +43 -1
- data/lib/pubid/renderers/directives_renderer.rb +22 -8
- data/lib/pubid/renderers/guide_renderer.rb +4 -2
- data/lib/pubid/renderers/human_readable.rb +18 -7
- data/lib/pubid/rendering/context.rb +28 -19
- data/lib/pubid/rendering.rb +0 -3
- data/lib/pubid/sae/components/date.rb +8 -0
- data/lib/pubid/sae/components/type.rb +5 -1
- data/lib/pubid/sae/identifier.rb +0 -23
- data/lib/pubid/sae/identifiers/base.rb +2 -16
- data/lib/pubid/sae/renderer.rb +36 -0
- data/lib/pubid/sae/urn_generator.rb +2 -10
- data/lib/pubid/sae/urn_parser.rb +36 -0
- data/lib/pubid/sae.rb +42 -1
- data/lib/pubid/urn_generator/base.rb +12 -12
- data/lib/pubid/urn_parser/base.rb +81 -0
- data/lib/pubid/urn_parser/errors.rb +9 -0
- data/lib/pubid/urn_parser.rb +14 -0
- data/lib/pubid/version.rb +1 -1
- data/lib/pubid.rb +29 -7
- data/lib/tasks/website-data.json +1940 -1882
- metadata +75 -44
- data/lib/pubid/amca/scheme.rb +0 -16
- data/lib/pubid/ansi/scheme.rb +0 -15
- data/lib/pubid/api/scheme.rb +0 -66
- data/lib/pubid/ashrae/scheme.rb +0 -53
- data/lib/pubid/asme/scheme.rb +0 -37
- data/lib/pubid/astm/scheme.rb +0 -55
- data/lib/pubid/bsi/identifiers/base.rb +0 -11
- data/lib/pubid/bsi/scheme.rb +0 -243
- data/lib/pubid/ccsds/scheme.rb +0 -57
- data/lib/pubid/cen_cenelec/scheme.rb +0 -164
- data/lib/pubid/cie/scheme.rb +0 -64
- data/lib/pubid/components/factory.rb +0 -50
- data/lib/pubid/csa/scheme.rb +0 -44
- data/lib/pubid/etsi/scheme.rb +0 -42
- data/lib/pubid/export/data_class_exporter.rb +0 -59
- data/lib/pubid/export/ieee_exporter.rb +0 -78
- data/lib/pubid/export/itu_exporter.rb +0 -66
- data/lib/pubid/export/nist_exporter.rb +0 -64
- data/lib/pubid/export/registry_exporter.rb +0 -90
- data/lib/pubid/export/scheme_exporter.rb +0 -70
- data/lib/pubid/identifier_registry.rb +0 -198
- data/lib/pubid/idf/scheme.rb +0 -61
- data/lib/pubid/iec/scheme.rb +0 -71
- data/lib/pubid/ieee/scheme.rb +0 -90
- data/lib/pubid/iho/scheme.rb +0 -29
- data/lib/pubid/iso/identifiers/base.rb +0 -115
- data/lib/pubid/iso/scheme.rb +0 -193
- data/lib/pubid/itu/scheme.rb +0 -174
- data/lib/pubid/jcgm/scheme.rb +0 -60
- data/lib/pubid/jis/components/code.rb +0 -59
- data/lib/pubid/jis/identifiers/base.rb +0 -72
- data/lib/pubid/jis/scheme.rb +0 -49
- data/lib/pubid/nist/components/publisher.rb +0 -24
- data/lib/pubid/nist/scheme.rb +0 -199
- data/lib/pubid/oiml/scheme.rb +0 -46
- data/lib/pubid/plateau/scheme.rb +0 -45
- data/lib/pubid/rendering/base.rb +0 -73
- data/lib/pubid/rendering/common.rb +0 -211
- data/lib/pubid/rendering/format.rb +0 -25
- data/lib/pubid/sae/scheme.rb +0 -47
- data/lib/pubid/scheme.rb +0 -219
data/lib/pubid/bsi/scheme.rb
DELETED
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Bsi
|
|
5
|
-
class Scheme < Pubid::Scheme
|
|
6
|
-
# TYPED_STAGES_REGISTRY for native BSI types
|
|
7
|
-
TYPED_STAGES_REGISTRY = [
|
|
8
|
-
# British Standard (BS)
|
|
9
|
-
Pubid::Components::TypedStage.new(
|
|
10
|
-
code: :pubbs,
|
|
11
|
-
stage_code: :published,
|
|
12
|
-
type_code: :bs,
|
|
13
|
-
abbr: ["BS"],
|
|
14
|
-
name: "British Standard",
|
|
15
|
-
harmonized_stages: %w[60.00 60.60],
|
|
16
|
-
),
|
|
17
|
-
Pubid::Components::TypedStage.new(
|
|
18
|
-
code: :drbs,
|
|
19
|
-
stage_code: :draft,
|
|
20
|
-
type_code: :bs,
|
|
21
|
-
abbr: ["Draft BS", "DBS"],
|
|
22
|
-
name: "Draft British Standard",
|
|
23
|
-
harmonized_stages: %w[30.00 30.20 30.60 40.00 40.20 40.60],
|
|
24
|
-
),
|
|
25
|
-
|
|
26
|
-
# Published Document (PD)
|
|
27
|
-
Pubid::Components::TypedStage.new(
|
|
28
|
-
code: :pubpd,
|
|
29
|
-
stage_code: :published,
|
|
30
|
-
type_code: :pd,
|
|
31
|
-
abbr: ["PD"],
|
|
32
|
-
name: "Published Document",
|
|
33
|
-
harmonized_stages: %w[60.00 60.60],
|
|
34
|
-
),
|
|
35
|
-
|
|
36
|
-
# Publicly Available Specification (PAS)
|
|
37
|
-
Pubid::Components::TypedStage.new(
|
|
38
|
-
code: :pubpas,
|
|
39
|
-
stage_code: :published,
|
|
40
|
-
type_code: :pas,
|
|
41
|
-
abbr: ["PAS"],
|
|
42
|
-
name: "Publicly Available Specification",
|
|
43
|
-
harmonized_stages: %w[60.00 60.60],
|
|
44
|
-
),
|
|
45
|
-
|
|
46
|
-
# National Annex (NA)
|
|
47
|
-
Pubid::Components::TypedStage.new(
|
|
48
|
-
code: :pubna,
|
|
49
|
-
stage_code: :published,
|
|
50
|
-
type_code: :na,
|
|
51
|
-
abbr: ["NA"],
|
|
52
|
-
name: "National Annex",
|
|
53
|
-
harmonized_stages: %w[60.00 60.60],
|
|
54
|
-
),
|
|
55
|
-
|
|
56
|
-
# Draft Document (DD)
|
|
57
|
-
Pubid::Components::TypedStage.new(
|
|
58
|
-
code: :pubdd,
|
|
59
|
-
stage_code: :published,
|
|
60
|
-
type_code: :dd,
|
|
61
|
-
abbr: ["DD"],
|
|
62
|
-
name: "Draft Document",
|
|
63
|
-
harmonized_stages: %w[60.00 60.60],
|
|
64
|
-
),
|
|
65
|
-
|
|
66
|
-
# Flex Document
|
|
67
|
-
Pubid::Components::TypedStage.new(
|
|
68
|
-
code: :pubflex,
|
|
69
|
-
stage_code: :published,
|
|
70
|
-
type_code: :flex,
|
|
71
|
-
abbr: ["Flex", "BSI Flex"],
|
|
72
|
-
name: "BSI Flex",
|
|
73
|
-
harmonized_stages: %w[60.00 60.60],
|
|
74
|
-
),
|
|
75
|
-
|
|
76
|
-
# Handbook
|
|
77
|
-
Pubid::Components::TypedStage.new(
|
|
78
|
-
code: :pubhandbook,
|
|
79
|
-
stage_code: :published,
|
|
80
|
-
type_code: :handbook,
|
|
81
|
-
abbr: ["Handbook", "HB"],
|
|
82
|
-
name: "BSI Handbook",
|
|
83
|
-
harmonized_stages: %w[60.00 60.60],
|
|
84
|
-
),
|
|
85
|
-
|
|
86
|
-
# Practice Guide (PP)
|
|
87
|
-
Pubid::Components::TypedStage.new(
|
|
88
|
-
code: :pubpp,
|
|
89
|
-
stage_code: :published,
|
|
90
|
-
type_code: :pp,
|
|
91
|
-
abbr: ["PP"],
|
|
92
|
-
name: "Published Practice",
|
|
93
|
-
harmonized_stages: %w[60.00 60.60],
|
|
94
|
-
),
|
|
95
|
-
|
|
96
|
-
# British Industrial Practice (BIP)
|
|
97
|
-
Pubid::Components::TypedStage.new(
|
|
98
|
-
code: :pubbip,
|
|
99
|
-
stage_code: :published,
|
|
100
|
-
type_code: :bip,
|
|
101
|
-
abbr: ["BIP"],
|
|
102
|
-
name: "British Industrial Practice",
|
|
103
|
-
harmonized_stages: %w[60.00 60.60],
|
|
104
|
-
),
|
|
105
|
-
|
|
106
|
-
# Aerospace/Specialized British Standard (with letter prefix)
|
|
107
|
-
Pubid::Components::TypedStage.new(
|
|
108
|
-
code: :pubaerospace,
|
|
109
|
-
stage_code: :published,
|
|
110
|
-
type_code: :aerospace,
|
|
111
|
-
abbr: ["BS A", "BS AU", "BS C", "BS M", "BS S", "BS L", "BS TA",
|
|
112
|
-
"BS MA", "BS PL", "BS QC", "BS G", "BS HC", "BS F", "BS X", "BS B"],
|
|
113
|
-
name: "Aerospace/Specialized British Standard",
|
|
114
|
-
harmonized_stages: %w[60.00 60.60],
|
|
115
|
-
),
|
|
116
|
-
|
|
117
|
-
# Index
|
|
118
|
-
Pubid::Components::TypedStage.new(
|
|
119
|
-
code: :pubindex,
|
|
120
|
-
stage_code: :published,
|
|
121
|
-
type_code: :index,
|
|
122
|
-
abbr: ["Index"],
|
|
123
|
-
name: "BSI Index",
|
|
124
|
-
harmonized_stages: %w[60.00 60.60],
|
|
125
|
-
),
|
|
126
|
-
|
|
127
|
-
# Method
|
|
128
|
-
Pubid::Components::TypedStage.new(
|
|
129
|
-
code: :pubmethod,
|
|
130
|
-
stage_code: :published,
|
|
131
|
-
type_code: :method,
|
|
132
|
-
abbr: ["Method", "Methods"],
|
|
133
|
-
name: "BSI Method",
|
|
134
|
-
harmonized_stages: %w[60.00 60.60],
|
|
135
|
-
),
|
|
136
|
-
|
|
137
|
-
# Section
|
|
138
|
-
Pubid::Components::TypedStage.new(
|
|
139
|
-
code: :pubsection,
|
|
140
|
-
stage_code: :published,
|
|
141
|
-
type_code: :section,
|
|
142
|
-
abbr: ["Section"],
|
|
143
|
-
name: "BSI Section",
|
|
144
|
-
harmonized_stages: %w[60.00 60.60],
|
|
145
|
-
),
|
|
146
|
-
|
|
147
|
-
# DISC (Delivering Information Solutions to Customers)
|
|
148
|
-
Pubid::Components::TypedStage.new(
|
|
149
|
-
code: :pubdisc,
|
|
150
|
-
stage_code: :published,
|
|
151
|
-
type_code: :disc,
|
|
152
|
-
abbr: ["DISC"],
|
|
153
|
-
name: "DISC",
|
|
154
|
-
harmonized_stages: %w[60.00 60.60],
|
|
155
|
-
),
|
|
156
|
-
|
|
157
|
-
# Detailed Specification (with N or C notation)
|
|
158
|
-
Pubid::Components::TypedStage.new(
|
|
159
|
-
code: :pubdetailed_spec,
|
|
160
|
-
stage_code: :published,
|
|
161
|
-
type_code: :detailed_specification,
|
|
162
|
-
abbr: ["DETAILED SPEC"],
|
|
163
|
-
name: "Detailed Specification",
|
|
164
|
-
harmonized_stages: %w[60.00 60.60],
|
|
165
|
-
),
|
|
166
|
-
|
|
167
|
-
# Standalone Amendment
|
|
168
|
-
Pubid::Components::TypedStage.new(
|
|
169
|
-
code: :standalone_amendment,
|
|
170
|
-
stage_code: :published,
|
|
171
|
-
type_code: :amendment,
|
|
172
|
-
abbr: ["AMD"],
|
|
173
|
-
name: "Amendment",
|
|
174
|
-
harmonized_stages: %w[60.00 60.60],
|
|
175
|
-
),
|
|
176
|
-
|
|
177
|
-
# Technical Specification
|
|
178
|
-
Pubid::Components::TypedStage.new(
|
|
179
|
-
code: :pubts,
|
|
180
|
-
stage_code: :published,
|
|
181
|
-
type_code: :ts,
|
|
182
|
-
abbr: ["TS"],
|
|
183
|
-
name: "Technical Specification",
|
|
184
|
-
harmonized_stages: %w[60.00 60.60],
|
|
185
|
-
),
|
|
186
|
-
].freeze
|
|
187
|
-
|
|
188
|
-
# Map type codes to identifier classes
|
|
189
|
-
IDENTIFIER_CLASS_MAP = {
|
|
190
|
-
bs: "Identifiers::BritishStandard",
|
|
191
|
-
pd: "Identifiers::PublishedDocument",
|
|
192
|
-
pas: "Identifiers::PubliclyAvailableSpecification",
|
|
193
|
-
na: "Identifiers::NationalAnnex",
|
|
194
|
-
dd: "Identifiers::DraftDocument",
|
|
195
|
-
flex: "Identifiers::Flex",
|
|
196
|
-
handbook: "Identifiers::Handbook",
|
|
197
|
-
pp: "Identifiers::PracticeGuide",
|
|
198
|
-
bip: "Identifiers::BritishIndustrialPractice",
|
|
199
|
-
aerospace: "Identifiers::AerospaceStandard",
|
|
200
|
-
index: "Identifiers::Index",
|
|
201
|
-
method: "Identifiers::Method",
|
|
202
|
-
section: "Identifiers::Section",
|
|
203
|
-
disc: "Identifiers::Disc",
|
|
204
|
-
bundled: "Identifiers::BundledIdentifier",
|
|
205
|
-
detailed_specification: "Identifiers::DetailedSpecification",
|
|
206
|
-
standalone_amendment: "Identifiers::StandaloneAmendment",
|
|
207
|
-
ts: "Identifiers::TechnicalSpecification",
|
|
208
|
-
committee_document: "Identifiers::CommitteeDocument",
|
|
209
|
-
explanatory_supplement: "Identifiers::ExplanatorySupplement",
|
|
210
|
-
supplementary_index: "Identifiers::SupplementaryIndex",
|
|
211
|
-
test_method: "Identifiers::TestMethod",
|
|
212
|
-
set: "Identifiers::Set",
|
|
213
|
-
}.freeze
|
|
214
|
-
|
|
215
|
-
# Default typed stage for when no match is found
|
|
216
|
-
DEFAULT_TYPED_STAGE = Pubid::Components::TypedStage.new(
|
|
217
|
-
code: :pubbs,
|
|
218
|
-
stage_code: :published,
|
|
219
|
-
type_code: :bs,
|
|
220
|
-
abbr: ["BS"],
|
|
221
|
-
name: "British Standard",
|
|
222
|
-
harmonized_stages: %w[60.00 60.60],
|
|
223
|
-
).freeze
|
|
224
|
-
|
|
225
|
-
def locate_typed_stage_by_abbr(abbr)
|
|
226
|
-
abbr_str = abbr.to_s.strip
|
|
227
|
-
TYPED_STAGES_REGISTRY.find do |ts|
|
|
228
|
-
ts.abbr.include?(abbr_str)
|
|
229
|
-
end || DEFAULT_TYPED_STAGE
|
|
230
|
-
end
|
|
231
|
-
|
|
232
|
-
def locate_identifier_klass_by_type_code(type_code)
|
|
233
|
-
class_name = IDENTIFIER_CLASS_MAP[type_code.to_sym]
|
|
234
|
-
return Identifiers::BritishStandard unless class_name
|
|
235
|
-
|
|
236
|
-
# Convert string to actual class
|
|
237
|
-
class_name.split("::").reduce(Pubid::Bsi) do |mod, name|
|
|
238
|
-
mod.const_get(name)
|
|
239
|
-
end
|
|
240
|
-
end
|
|
241
|
-
end
|
|
242
|
-
end
|
|
243
|
-
end
|
data/lib/pubid/ccsds/scheme.rb
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Ccsds
|
|
5
|
-
class Scheme < Pubid::Scheme
|
|
6
|
-
class << self
|
|
7
|
-
def identifiers
|
|
8
|
-
[
|
|
9
|
-
Identifiers::Base,
|
|
10
|
-
]
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def supplement_identifiers
|
|
14
|
-
[
|
|
15
|
-
Identifiers::Corrigendum,
|
|
16
|
-
]
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def typed_stages
|
|
20
|
-
identifiers.flat_map { |klass| klass::TYPED_STAGES }
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def supplement_typed_stages
|
|
24
|
-
supplement_identifiers.flat_map { |klass| klass::TYPED_STAGES }
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def locate_typed_stage_by_abbr(abbr)
|
|
28
|
-
abbr = "" if abbr.nil?
|
|
29
|
-
|
|
30
|
-
typed_stage = (typed_stages + supplement_typed_stages).detect do |ts|
|
|
31
|
-
ts.abbr.include?(abbr)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
unless typed_stage
|
|
35
|
-
raise ArgumentError,
|
|
36
|
-
"Unknown type abbreviation: '#{abbr}'"
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
typed_stage
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def locate_identifier_klass_by_type_code(type_code)
|
|
43
|
-
identifier_klass = (identifiers + supplement_identifiers).detect do |klass|
|
|
44
|
-
klass.type[:key].to_s == type_code.to_s
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
unless identifier_klass
|
|
48
|
-
raise ArgumentError,
|
|
49
|
-
"Unknown type code: #{type_code}"
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
identifier_klass
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module CenCenelec
|
|
5
|
-
class Scheme < Pubid::Scheme
|
|
6
|
-
# TYPED_STAGES_REGISTRY for native CEN types
|
|
7
|
-
TYPED_STAGES_REGISTRY = [
|
|
8
|
-
# European Norm (EN)
|
|
9
|
-
Pubid::Components::TypedStage.new(
|
|
10
|
-
code: :puben,
|
|
11
|
-
stage_code: :published,
|
|
12
|
-
type_code: :en,
|
|
13
|
-
abbr: ["EN"],
|
|
14
|
-
name: "European Norm",
|
|
15
|
-
harmonized_stages: %w[60.00 60.60],
|
|
16
|
-
),
|
|
17
|
-
Pubid::Components::TypedStage.new(
|
|
18
|
-
code: :pren,
|
|
19
|
-
stage_code: :proposal,
|
|
20
|
-
type_code: :en,
|
|
21
|
-
abbr: ["prEN"],
|
|
22
|
-
name: "Proposal European Norm",
|
|
23
|
-
harmonized_stages: %w[30.00 30.20 30.60 30.92 30.98 30.99],
|
|
24
|
-
),
|
|
25
|
-
Pubid::Components::TypedStage.new(
|
|
26
|
-
code: :fpren,
|
|
27
|
-
stage_code: :final_proposal,
|
|
28
|
-
type_code: :en,
|
|
29
|
-
abbr: ["FprEN"],
|
|
30
|
-
name: "Final Proposal European Norm",
|
|
31
|
-
harmonized_stages: %w[40.00 40.20 40.60 40.92 40.98 40.99],
|
|
32
|
-
),
|
|
33
|
-
|
|
34
|
-
# Technical Specification (TS)
|
|
35
|
-
Pubid::Components::TypedStage.new(
|
|
36
|
-
code: :pubts,
|
|
37
|
-
stage_code: :published,
|
|
38
|
-
type_code: :ts,
|
|
39
|
-
abbr: ["TS"],
|
|
40
|
-
name: "Technical Specification",
|
|
41
|
-
harmonized_stages: %w[60.00 60.60],
|
|
42
|
-
),
|
|
43
|
-
Pubid::Components::TypedStage.new(
|
|
44
|
-
code: :prts,
|
|
45
|
-
stage_code: :proposal,
|
|
46
|
-
type_code: :ts,
|
|
47
|
-
abbr: ["prTS"],
|
|
48
|
-
name: "Proposal Technical Specification",
|
|
49
|
-
harmonized_stages: %w[30.00 30.20 30.60 30.92 30.98 30.99],
|
|
50
|
-
),
|
|
51
|
-
|
|
52
|
-
# Technical Report (TR)
|
|
53
|
-
Pubid::Components::TypedStage.new(
|
|
54
|
-
code: :pubtr,
|
|
55
|
-
stage_code: :published,
|
|
56
|
-
type_code: :tr,
|
|
57
|
-
abbr: ["TR"],
|
|
58
|
-
name: "Technical Report",
|
|
59
|
-
harmonized_stages: %w[60.00 60.60],
|
|
60
|
-
),
|
|
61
|
-
|
|
62
|
-
# CEN Workshop Agreement (CWA)
|
|
63
|
-
Pubid::Components::TypedStage.new(
|
|
64
|
-
code: :pubcwa,
|
|
65
|
-
stage_code: :published,
|
|
66
|
-
type_code: :cwa,
|
|
67
|
-
abbr: ["CWA"],
|
|
68
|
-
name: "CEN Workshop Agreement",
|
|
69
|
-
harmonized_stages: %w[60.00 60.60],
|
|
70
|
-
),
|
|
71
|
-
|
|
72
|
-
# Guide
|
|
73
|
-
Pubid::Components::TypedStage.new(
|
|
74
|
-
code: :pubguide,
|
|
75
|
-
stage_code: :published,
|
|
76
|
-
type_code: :guide,
|
|
77
|
-
abbr: ["Guide"],
|
|
78
|
-
name: "Guide",
|
|
79
|
-
harmonized_stages: %w[60.00 60.60],
|
|
80
|
-
),
|
|
81
|
-
|
|
82
|
-
# Harmonization Document (HD)
|
|
83
|
-
Pubid::Components::TypedStage.new(
|
|
84
|
-
code: :pubhd,
|
|
85
|
-
stage_code: :published,
|
|
86
|
-
type_code: :hd,
|
|
87
|
-
abbr: ["HD"],
|
|
88
|
-
name: "Harmonization Document",
|
|
89
|
-
harmonized_stages: %w[60.00 60.60],
|
|
90
|
-
),
|
|
91
|
-
|
|
92
|
-
# European Specification (ES)
|
|
93
|
-
Pubid::Components::TypedStage.new(
|
|
94
|
-
code: :pubes,
|
|
95
|
-
stage_code: :published,
|
|
96
|
-
type_code: :es,
|
|
97
|
-
abbr: ["ES"],
|
|
98
|
-
name: "European Specification",
|
|
99
|
-
harmonized_stages: %w[60.00 60.60],
|
|
100
|
-
),
|
|
101
|
-
|
|
102
|
-
# CEN Report (CR)
|
|
103
|
-
Pubid::Components::TypedStage.new(
|
|
104
|
-
code: :pubcr,
|
|
105
|
-
stage_code: :published,
|
|
106
|
-
type_code: :cr,
|
|
107
|
-
abbr: ["CR"],
|
|
108
|
-
name: "CEN Report",
|
|
109
|
-
harmonized_stages: %w[60.00 60.60],
|
|
110
|
-
),
|
|
111
|
-
|
|
112
|
-
# European Prestandard (ENV)
|
|
113
|
-
Pubid::Components::TypedStage.new(
|
|
114
|
-
code: :pubenv,
|
|
115
|
-
stage_code: :published,
|
|
116
|
-
type_code: :env,
|
|
117
|
-
abbr: ["ENV"],
|
|
118
|
-
name: "European Prestandard",
|
|
119
|
-
harmonized_stages: %w[60.00 60.60],
|
|
120
|
-
),
|
|
121
|
-
].freeze
|
|
122
|
-
|
|
123
|
-
# Map type codes to identifier classes
|
|
124
|
-
IDENTIFIER_CLASS_MAP = {
|
|
125
|
-
en: "Identifiers::EuropeanNorm",
|
|
126
|
-
ts: "Identifiers::TechnicalSpecification",
|
|
127
|
-
tr: "Identifiers::TechnicalReport",
|
|
128
|
-
cwa: "Identifiers::CenWorkshopAgreement",
|
|
129
|
-
guide: "Identifiers::Guide",
|
|
130
|
-
hd: "Identifiers::HarmonizationDocument",
|
|
131
|
-
es: "Identifiers::EuropeanSpecification",
|
|
132
|
-
cr: "Identifiers::CenReport",
|
|
133
|
-
env: "Identifiers::EuropeanPrestandard",
|
|
134
|
-
}.freeze
|
|
135
|
-
|
|
136
|
-
# Default typed stage for when no match is found
|
|
137
|
-
DEFAULT_TYPED_STAGE = Pubid::Components::TypedStage.new(
|
|
138
|
-
code: :puben,
|
|
139
|
-
stage_code: :published,
|
|
140
|
-
type_code: :en,
|
|
141
|
-
abbr: ["EN"],
|
|
142
|
-
name: "European Norm",
|
|
143
|
-
harmonized_stages: %w[60.00 60.60],
|
|
144
|
-
).freeze
|
|
145
|
-
|
|
146
|
-
def locate_typed_stage_by_abbr(abbr)
|
|
147
|
-
abbr_str = abbr.to_s.strip
|
|
148
|
-
TYPED_STAGES_REGISTRY.find do |ts|
|
|
149
|
-
ts.abbr.include?(abbr_str)
|
|
150
|
-
end || DEFAULT_TYPED_STAGE
|
|
151
|
-
end
|
|
152
|
-
|
|
153
|
-
def locate_identifier_klass_by_type_code(type_code)
|
|
154
|
-
class_name = IDENTIFIER_CLASS_MAP[type_code.to_sym]
|
|
155
|
-
return Identifiers::EuropeanNorm unless class_name
|
|
156
|
-
|
|
157
|
-
# Convert string to actual class
|
|
158
|
-
class_name.split("::").reduce(Pubid::CenCenelec) do |mod, name|
|
|
159
|
-
mod.const_get(name)
|
|
160
|
-
end
|
|
161
|
-
end
|
|
162
|
-
end
|
|
163
|
-
end
|
|
164
|
-
end
|
data/lib/pubid/cie/scheme.rb
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Cie
|
|
5
|
-
class Scheme < Pubid::Scheme
|
|
6
|
-
class << self
|
|
7
|
-
def identifiers
|
|
8
|
-
[
|
|
9
|
-
Identifiers::Standard,
|
|
10
|
-
Identifiers::Conference,
|
|
11
|
-
Identifiers::Bundle,
|
|
12
|
-
Identifiers::DualPublished,
|
|
13
|
-
Identifiers::Identical,
|
|
14
|
-
Identifiers::JointPublished,
|
|
15
|
-
Identifiers::Supplement,
|
|
16
|
-
Identifiers::TutorialBundle,
|
|
17
|
-
]
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def supplement_identifiers
|
|
21
|
-
[
|
|
22
|
-
Identifiers::Corrigendum,
|
|
23
|
-
]
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def typed_stages
|
|
27
|
-
identifiers.flat_map { |klass| klass::TYPED_STAGES }
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def supplement_typed_stages
|
|
31
|
-
supplement_identifiers.flat_map { |klass| klass::TYPED_STAGES }
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def locate_typed_stage_by_abbr(abbr)
|
|
35
|
-
abbr = "" if abbr.nil?
|
|
36
|
-
|
|
37
|
-
typed_stage = (typed_stages + supplement_typed_stages).detect do |ts|
|
|
38
|
-
ts.abbr.include?(abbr)
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
unless typed_stage
|
|
42
|
-
raise ArgumentError,
|
|
43
|
-
"Unknown type abbreviation: '#{abbr}'"
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
typed_stage
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def locate_identifier_klass_by_type_code(type_code)
|
|
50
|
-
identifier_klass = (identifiers + supplement_identifiers).detect do |klass|
|
|
51
|
-
klass.type[:key].to_s == type_code.to_s
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
unless identifier_klass
|
|
55
|
-
raise ArgumentError,
|
|
56
|
-
"Unknown type code: #{type_code}"
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
identifier_klass
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
end
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative "code"
|
|
4
|
-
require_relative "date"
|
|
5
|
-
require_relative "edition"
|
|
6
|
-
require_relative "language"
|
|
7
|
-
require_relative "publisher"
|
|
8
|
-
|
|
9
|
-
module Pubid
|
|
10
|
-
module Components
|
|
11
|
-
# Coerces loose primitive kwargs (matching pubid 1.x's `Identifier.create`
|
|
12
|
-
# signature) into the structured Component objects pubid 2.x expects.
|
|
13
|
-
#
|
|
14
|
-
# Used by per-flavor `.create` factories.
|
|
15
|
-
module Factory
|
|
16
|
-
# Per-kwarg coercer. Returns a Component, or an Array<Component> for
|
|
17
|
-
# collection attributes such as `languages`.
|
|
18
|
-
COERCERS = {
|
|
19
|
-
publisher: ->(v) { Publisher.new(body: v.to_s) },
|
|
20
|
-
number: ->(v) { Code.new(value: v.to_s) },
|
|
21
|
-
part: ->(v) { Code.new(value: v.to_s) },
|
|
22
|
-
subpart: ->(v) { Code.new(value: v.to_s) },
|
|
23
|
-
year: ->(v) { Date.new(year: v.to_s) },
|
|
24
|
-
edition: ->(v) { Edition.new(number: v) },
|
|
25
|
-
language: ->(v) { [Language.new(code: v.to_s)] },
|
|
26
|
-
}.freeze
|
|
27
|
-
|
|
28
|
-
# 1.x kwarg name → 2.x attribute name.
|
|
29
|
-
# Applied after coercion.
|
|
30
|
-
KEY_RENAMES = {
|
|
31
|
-
year: :date,
|
|
32
|
-
language: :languages,
|
|
33
|
-
}.freeze
|
|
34
|
-
|
|
35
|
-
# Convert a hash of 1.x-style primitive kwargs into a hash of 2.x-style
|
|
36
|
-
# Component-valued attributes ready for `<IdentifierClass>.new(...)`.
|
|
37
|
-
#
|
|
38
|
-
# Unknown keys pass through unchanged; nil values are dropped.
|
|
39
|
-
def self.from_hash(opts)
|
|
40
|
-
opts.each_with_object({}) do |(k, v), out|
|
|
41
|
-
next if v.nil?
|
|
42
|
-
|
|
43
|
-
target = KEY_RENAMES.fetch(k, k)
|
|
44
|
-
coercer = COERCERS[k]
|
|
45
|
-
out[target] = coercer ? coercer.call(v) : v
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
data/lib/pubid/csa/scheme.rb
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Csa
|
|
5
|
-
class Scheme < Pubid::Scheme
|
|
6
|
-
class << self
|
|
7
|
-
def identifiers
|
|
8
|
-
@identifiers ||= [
|
|
9
|
-
Identifiers::Standard,
|
|
10
|
-
Identifiers::Bundled,
|
|
11
|
-
Identifiers::CanadianAdopted,
|
|
12
|
-
Identifiers::CsaAdopted,
|
|
13
|
-
Identifiers::Package,
|
|
14
|
-
Identifiers::Series,
|
|
15
|
-
Identifiers::Cec,
|
|
16
|
-
Identifiers::Combined,
|
|
17
|
-
].freeze
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def supplement_identifiers
|
|
21
|
-
@supplement_identifiers ||= [].freeze
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def typed_stages
|
|
25
|
-
@typed_stages ||= [].freeze
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def supplement_typed_stages
|
|
29
|
-
@supplement_typed_stages ||= [].freeze
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def locate_typed_stage_by_abbr(_abbr)
|
|
33
|
-
raise ArgumentError,
|
|
34
|
-
"CSA identifiers do not use typed stages"
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def locate_identifier_klass_by_type_code(_type_code)
|
|
38
|
-
raise ArgumentError,
|
|
39
|
-
"CSA identifiers do not use type codes"
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
data/lib/pubid/etsi/scheme.rb
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
require "lutaml/model"
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
module Pubid
|
|
5
|
-
module Etsi
|
|
6
|
-
class Scheme < Lutaml::Model::Serializable
|
|
7
|
-
attribute :type, :string
|
|
8
|
-
attribute :number, :string
|
|
9
|
-
attribute :part, :string, collection: true, default: -> { [] }
|
|
10
|
-
attribute :version, :string, default: -> {}
|
|
11
|
-
attribute :edition, :string, default: -> {}
|
|
12
|
-
attribute :date, :string
|
|
13
|
-
attribute :amendment, :string, default: -> {}
|
|
14
|
-
attribute :corrigendum, :string, default: -> {}
|
|
15
|
-
|
|
16
|
-
def to_s
|
|
17
|
-
result = "ETSI #{type} #{number}"
|
|
18
|
-
|
|
19
|
-
# Add parts
|
|
20
|
-
part.each do |p|
|
|
21
|
-
result += "-#{p}"
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
# Add amendment or corrigendum
|
|
25
|
-
result += "/A#{amendment}" if amendment
|
|
26
|
-
result += "/C#{corrigendum}" if corrigendum
|
|
27
|
-
|
|
28
|
-
# Add version or edition
|
|
29
|
-
if version
|
|
30
|
-
result += " V#{version}"
|
|
31
|
-
elsif edition
|
|
32
|
-
result += " ed.#{edition}"
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
# Add date (only if present)
|
|
36
|
-
result += " (#{date})" if date
|
|
37
|
-
|
|
38
|
-
result
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|