pubid 2.0.0.alpha.10 → 2.0.0.pre.alpha.1
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 +51 -54
- data/data/iec/update_codes.yaml +0 -3
- data/data/ieee/update_codes.yaml +1 -107
- data/data/nist/update_codes.yaml +0 -35
- data/lib/pubid/amca/builder.rb +6 -6
- data/lib/pubid/amca/identifier.rb +16 -2
- data/lib/pubid/amca/identifiers/base.rb +46 -74
- data/lib/pubid/amca/identifiers/interpretation.rb +30 -17
- data/lib/pubid/amca/identifiers/publication.rb +27 -14
- data/lib/pubid/amca/identifiers/standard.rb +5 -3
- data/lib/pubid/amca/identifiers.rb +1 -0
- data/lib/pubid/amca/parser.rb +1 -1
- data/lib/pubid/amca/scheme.rb +16 -0
- data/lib/pubid/amca/single_identifier.rb +24 -1
- data/lib/pubid/amca/urn_generator.rb +3 -4
- data/lib/pubid/amca.rb +3 -50
- data/lib/pubid/ansi/builder.rb +5 -7
- data/lib/pubid/ansi/identifier.rb +1 -19
- data/lib/pubid/ansi/identifiers/american_national_standard.rb +1 -2
- data/lib/pubid/ansi/identifiers/standard.rb +3 -2
- data/lib/pubid/ansi/parser.rb +1 -1
- data/lib/pubid/ansi/scheme.rb +15 -0
- data/lib/pubid/ansi/single_identifier.rb +31 -2
- data/lib/pubid/ansi/urn_generator.rb +38 -3
- data/lib/pubid/ansi.rb +6 -47
- data/lib/pubid/api/builder.rb +72 -45
- data/lib/pubid/api/identifier.rb +9 -30
- data/lib/pubid/api/identifiers/base.rb +14 -2
- data/lib/pubid/api/identifiers/bulletin.rb +2 -0
- data/lib/pubid/api/identifiers/continuous_operations_standard.rb +2 -0
- data/lib/pubid/api/identifiers/mpms.rb +28 -10
- data/lib/pubid/api/identifiers/publication.rb +2 -0
- data/lib/pubid/api/identifiers/recommended_practice.rb +2 -0
- data/lib/pubid/api/identifiers/specification.rb +2 -0
- data/lib/pubid/api/identifiers/standard.rb +2 -0
- data/lib/pubid/api/identifiers/technical_report.rb +2 -0
- data/lib/pubid/api/identifiers/typeless_standard.rb +16 -0
- data/lib/pubid/api/parser.rb +1 -1
- data/lib/pubid/api/scheme.rb +66 -0
- data/lib/pubid/api/single_identifier.rb +32 -10
- data/lib/pubid/api/urn_generator.rb +18 -0
- data/lib/pubid/api.rb +5 -56
- data/lib/pubid/ashrae/builder.rb +35 -56
- data/lib/pubid/ashrae/identifier.rb +16 -6
- data/lib/pubid/ashrae/identifiers/addenda_package.rb +11 -7
- data/lib/pubid/ashrae/identifiers/addendum.rb +20 -9
- data/lib/pubid/ashrae/identifiers/base.rb +15 -111
- data/lib/pubid/ashrae/identifiers/combined_addenda.rb +16 -8
- data/lib/pubid/ashrae/identifiers/errata.rb +10 -9
- data/lib/pubid/ashrae/identifiers/guideline.rb +0 -3
- data/lib/pubid/ashrae/identifiers/interpretation.rb +10 -16
- data/lib/pubid/ashrae/identifiers/standard.rb +0 -3
- data/lib/pubid/ashrae/identifiers.rb +1 -0
- data/lib/pubid/ashrae/parser.rb +16 -40
- data/lib/pubid/ashrae/scheme.rb +53 -0
- data/lib/pubid/ashrae/single_identifier.rb +14 -1
- data/lib/pubid/ashrae/supplement_identifier.rb +6 -21
- data/lib/pubid/ashrae/urn_generator.rb +10 -8
- data/lib/pubid/ashrae.rb +2 -58
- data/lib/pubid/asme/builder.rb +2 -11
- data/lib/pubid/asme/components/code.rb +2 -10
- data/lib/pubid/asme/identifier.rb +0 -9
- data/lib/pubid/asme/identifiers/base.rb +60 -0
- data/lib/pubid/asme/identifiers/standard.rb +2 -86
- data/lib/pubid/asme/parser.rb +1 -1
- data/lib/pubid/asme/scheme.rb +37 -0
- data/lib/pubid/asme/single_identifier.rb +2 -11
- data/lib/pubid/asme/urn_generator.rb +2 -2
- data/lib/pubid/asme.rb +1 -47
- data/lib/pubid/astm/builder.rb +3 -10
- data/lib/pubid/astm/components/code.rb +0 -9
- data/lib/pubid/astm/identifier.rb +0 -9
- data/lib/pubid/astm/identifiers/adjunct.rb +9 -16
- data/lib/pubid/astm/identifiers/data_series.rb +14 -2
- data/lib/pubid/astm/identifiers/iso_dual_published.rb +34 -25
- data/lib/pubid/astm/identifiers/manual.rb +25 -8
- data/lib/pubid/astm/identifiers/monograph.rb +14 -2
- data/lib/pubid/astm/identifiers/research_report.rb +5 -8
- data/lib/pubid/astm/identifiers/standard.rb +37 -8
- data/lib/pubid/astm/identifiers/technical_report.rb +13 -2
- data/lib/pubid/astm/identifiers/work_in_progress.rb +10 -1
- data/lib/pubid/astm/parser.rb +1 -1
- data/lib/pubid/astm/scheme.rb +55 -0
- data/lib/pubid/astm/single_identifier.rb +10 -32
- data/lib/pubid/astm/urn_generator.rb +5 -7
- data/lib/pubid/astm.rb +27 -44
- data/lib/pubid/bsi/builder.rb +107 -119
- data/lib/pubid/bsi/identifier.rb +25 -4
- data/lib/pubid/bsi/identifiers/addendum_document.rb +37 -3
- data/lib/pubid/bsi/identifiers/adopted_european_norm.rb +47 -19
- data/lib/pubid/bsi/identifiers/adopted_international_standard.rb +39 -8
- data/lib/pubid/bsi/identifiers/aerospace_standard.rb +55 -2
- data/lib/pubid/bsi/identifiers/amendment.rb +22 -30
- data/lib/pubid/bsi/identifiers/base.rb +11 -0
- data/lib/pubid/bsi/identifiers/british_industrial_practice.rb +7 -1
- data/lib/pubid/bsi/identifiers/british_standard.rb +1 -2
- data/lib/pubid/bsi/identifiers/bundled_identifier.rb +87 -13
- data/lib/pubid/bsi/identifiers/committee_document.rb +17 -10
- data/lib/pubid/bsi/identifiers/consolidated_identifier.rb +87 -19
- data/lib/pubid/bsi/identifiers/corrigendum.rb +10 -26
- data/lib/pubid/bsi/identifiers/detailed_specification.rb +36 -0
- data/lib/pubid/bsi/identifiers/disc.rb +29 -0
- data/lib/pubid/bsi/identifiers/draft_document.rb +46 -2
- data/lib/pubid/bsi/identifiers/electronic_book.rb +38 -2
- data/lib/pubid/bsi/identifiers/expert_commentary.rb +21 -10
- data/lib/pubid/bsi/identifiers/explanatory_supplement.rb +47 -0
- data/lib/pubid/bsi/identifiers/flex.rb +34 -3
- data/lib/pubid/bsi/identifiers/handbook.rb +17 -1
- data/lib/pubid/bsi/identifiers/index.rb +32 -0
- data/lib/pubid/bsi/identifiers/method.rb +41 -0
- data/lib/pubid/bsi/identifiers/national_annex.rb +29 -4
- data/lib/pubid/bsi/identifiers/practice_guide.rb +7 -1
- data/lib/pubid/bsi/identifiers/publicly_available_specification.rb +54 -2
- data/lib/pubid/bsi/identifiers/published_document.rb +54 -2
- data/lib/pubid/bsi/identifiers/section.rb +30 -0
- data/lib/pubid/bsi/identifiers/set.rb +20 -14
- data/lib/pubid/bsi/identifiers/standalone_amendment.rb +10 -10
- data/lib/pubid/bsi/identifiers/supplement_document.rb +25 -3
- data/lib/pubid/bsi/identifiers/supplementary_index.rb +46 -0
- data/lib/pubid/bsi/identifiers/technical_specification.rb +47 -2
- data/lib/pubid/bsi/identifiers/test_method.rb +32 -0
- data/lib/pubid/bsi/identifiers/value_added_publication.rb +22 -7
- data/lib/pubid/bsi/identifiers.rb +1 -0
- data/lib/pubid/bsi/parser.rb +6 -20
- data/lib/pubid/bsi/scheme.rb +243 -0
- data/lib/pubid/bsi/single_identifier.rb +82 -94
- data/lib/pubid/bsi/urn_generator.rb +5 -13
- data/lib/pubid/bsi.rb +2 -252
- data/lib/pubid/builder/base.rb +13 -62
- data/lib/pubid/bundled_identifier.rb +10 -18
- data/lib/pubid/ccsds/builder.rb +4 -5
- data/lib/pubid/ccsds/identifier.rb +3 -63
- data/lib/pubid/ccsds/identifiers/base.rb +51 -14
- data/lib/pubid/ccsds/identifiers/corrigendum.rb +8 -9
- data/lib/pubid/ccsds/parser.rb +3 -5
- data/lib/pubid/ccsds/scheme.rb +57 -0
- data/lib/pubid/ccsds/single_identifier.rb +3 -6
- data/lib/pubid/ccsds/supplement_identifier.rb +13 -17
- data/lib/pubid/ccsds/urn_generator.rb +6 -6
- data/lib/pubid/ccsds.rb +1 -44
- data/lib/pubid/cen_cenelec/builder.rb +29 -61
- data/lib/pubid/cen_cenelec/identifier.rb +5 -28
- data/lib/pubid/cen_cenelec/identifiers/adopted_european_norm.rb +4 -9
- data/lib/pubid/cen_cenelec/identifiers/amendment.rb +12 -2
- data/lib/pubid/cen_cenelec/identifiers/base.rb +46 -5
- data/lib/pubid/cen_cenelec/identifiers/cen_report.rb +1 -2
- data/lib/pubid/cen_cenelec/identifiers/cen_workshop_agreement.rb +1 -2
- data/lib/pubid/cen_cenelec/identifiers/consolidated_identifier.rb +27 -6
- data/lib/pubid/cen_cenelec/identifiers/corrigendum.rb +17 -2
- data/lib/pubid/cen_cenelec/identifiers/european_norm.rb +4 -62
- data/lib/pubid/cen_cenelec/identifiers/european_prestandard.rb +7 -20
- data/lib/pubid/cen_cenelec/identifiers/european_specification.rb +1 -2
- data/lib/pubid/cen_cenelec/identifiers/fragment.rb +6 -2
- data/lib/pubid/cen_cenelec/identifiers/harmonization_document.rb +1 -2
- data/lib/pubid/cen_cenelec/identifiers/technical_report.rb +1 -2
- data/lib/pubid/cen_cenelec/identifiers/technical_specification.rb +1 -2
- data/lib/pubid/cen_cenelec/parser.rb +1 -1
- data/lib/pubid/cen_cenelec/scheme.rb +164 -0
- data/lib/pubid/cen_cenelec/single_identifier.rb +91 -10
- data/lib/pubid/cen_cenelec/supplement_identifier.rb +7 -6
- data/lib/pubid/cen_cenelec/urn_generator.rb +7 -7
- data/lib/pubid/cen_cenelec.rb +1 -188
- data/lib/pubid/cie/builder.rb +24 -149
- data/lib/pubid/cie/components/code.rb +72 -0
- data/lib/pubid/cie/identifier.rb +5 -20
- data/lib/pubid/cie/identifiers/bundle.rb +5 -35
- data/lib/pubid/cie/identifiers/conference.rb +6 -11
- data/lib/pubid/cie/identifiers/corrigendum.rb +23 -17
- data/lib/pubid/cie/identifiers/dual_published.rb +6 -6
- data/lib/pubid/cie/identifiers/identical.rb +9 -9
- data/lib/pubid/cie/identifiers/joint_published.rb +10 -10
- data/lib/pubid/cie/identifiers/standard.rb +8 -43
- data/lib/pubid/cie/identifiers/supplement.rb +25 -27
- data/lib/pubid/cie/identifiers/tutorial_bundle.rb +3 -7
- data/lib/pubid/cie/identifiers.rb +0 -2
- data/lib/pubid/cie/parser.rb +6 -55
- data/lib/pubid/cie/scheme.rb +64 -0
- data/lib/pubid/cie/single_identifier.rb +5 -44
- data/lib/pubid/cie/supplement_identifier.rb +16 -29
- data/lib/pubid/cie/urn_generator.rb +8 -11
- data/lib/pubid/cie.rb +2 -57
- data/lib/pubid/components/code.rb +8 -22
- data/lib/pubid/components/date.rb +18 -41
- data/lib/pubid/components/edition.rb +6 -9
- data/lib/pubid/components/language.rb +4 -6
- data/lib/pubid/components/locality.rb +1 -10
- data/lib/pubid/components/publisher.rb +6 -9
- data/lib/pubid/components/stage.rb +14 -5
- data/lib/pubid/components/type.rb +15 -5
- data/lib/pubid/components/typed_stage.rb +8 -11
- data/lib/pubid/components.rb +0 -4
- data/lib/pubid/core/update_codes.rb +7 -28
- data/lib/pubid/csa/builder.rb +48 -48
- data/lib/pubid/csa/composite_identifier.rb +7 -18
- data/lib/pubid/csa/identifier.rb +78 -191
- data/lib/pubid/csa/identifiers/base.rb +123 -0
- data/lib/pubid/csa/identifiers/bundled.rb +9 -25
- data/lib/pubid/csa/identifiers/canadian_adopted.rb +13 -13
- data/lib/pubid/csa/identifiers/cec.rb +103 -40
- data/lib/pubid/csa/identifiers/combined.rb +69 -97
- data/lib/pubid/csa/identifiers/csa_adopted.rb +4 -4
- data/lib/pubid/csa/identifiers/package.rb +4 -4
- data/lib/pubid/csa/identifiers/series.rb +104 -0
- data/lib/pubid/csa/parser.rb +8 -12
- data/lib/pubid/csa/scheme.rb +44 -0
- data/lib/pubid/csa/single_identifier.rb +5 -94
- data/lib/pubid/csa/urn_generator.rb +2 -9
- data/lib/pubid/csa/wrapper_identifier.rb +10 -43
- data/lib/pubid/csa.rb +1 -56
- data/lib/pubid/etsi/builder.rb +4 -13
- data/lib/pubid/etsi/components/code.rb +9 -10
- data/lib/pubid/etsi/components/version.rb +5 -0
- data/lib/pubid/etsi/identifier.rb +12 -2
- data/lib/pubid/etsi/identifiers/base.rb +24 -60
- data/lib/pubid/etsi/identifiers/etsi_standard.rb +4 -207
- data/lib/pubid/etsi/identifiers/supplement_identifier.rb +14 -46
- data/lib/pubid/etsi/identifiers.rb +1 -0
- data/lib/pubid/etsi/parser.rb +3 -9
- data/lib/pubid/etsi/scheme.rb +42 -0
- data/lib/pubid/etsi.rb +2 -52
- data/lib/pubid/export/data_class_exporter.rb +59 -0
- data/lib/pubid/export/exporter.rb +47 -6
- data/lib/pubid/export/flavor_exporter.rb +276 -124
- data/lib/pubid/export/ieee_exporter.rb +78 -0
- data/lib/pubid/export/itu_exporter.rb +66 -0
- data/lib/pubid/export/nist_exporter.rb +64 -0
- data/lib/pubid/export/registry_exporter.rb +90 -0
- data/lib/pubid/export/scheme_exporter.rb +70 -0
- data/lib/pubid/export.rb +6 -0
- data/lib/pubid/identifier.rb +37 -920
- data/lib/pubid/identifier_metadata.rb +1 -1
- data/lib/pubid/identifier_registry.rb +198 -0
- data/lib/pubid/idf/builder.rb +7 -7
- data/lib/pubid/idf/identifier.rb +13 -23
- data/lib/pubid/idf/identifiers/amendment.rb +1 -2
- data/lib/pubid/idf/identifiers/corrigendum.rb +1 -2
- data/lib/pubid/idf/identifiers/international_standard.rb +1 -2
- data/lib/pubid/idf/identifiers/reviewed_method.rb +1 -2
- data/lib/pubid/idf/parser.rb +5 -6
- data/lib/pubid/idf/scheme.rb +61 -0
- data/lib/pubid/idf/supplement_identifier.rb +13 -5
- data/lib/pubid/idf/urn_generator.rb +39 -4
- data/lib/pubid/idf.rb +1 -65
- data/lib/pubid/iec/builder.rb +91 -92
- data/lib/pubid/iec/components/code.rb +32 -9
- data/lib/pubid/iec/components/publisher.rb +1 -1
- data/lib/pubid/iec/identifier.rb +8 -328
- data/lib/pubid/iec/identifiers/amendment.rb +5 -8
- data/lib/pubid/iec/identifiers/base.rb +31 -7
- data/lib/pubid/iec/identifiers/component_specification.rb +13 -3
- data/lib/pubid/iec/identifiers/conformity_assessment.rb +12 -1
- data/lib/pubid/iec/identifiers/consolidated_identifier.rb +30 -29
- data/lib/pubid/iec/identifiers/corrigendum.rb +5 -4
- data/lib/pubid/iec/identifiers/fragment_identifier.rb +36 -43
- data/lib/pubid/iec/identifiers/guide.rb +18 -0
- data/lib/pubid/iec/identifiers/international_standard.rb +9 -24
- data/lib/pubid/iec/identifiers/interpretation_sheet.rb +3 -2
- data/lib/pubid/iec/identifiers/operational_document.rb +13 -3
- data/lib/pubid/iec/identifiers/publicly_available_specification.rb +15 -2
- data/lib/pubid/iec/identifiers/sheet_identifier.rb +24 -26
- data/lib/pubid/iec/identifiers/societal_technology_trend_report.rb +13 -3
- data/lib/pubid/iec/identifiers/systems_reference_document.rb +13 -2
- data/lib/pubid/iec/identifiers/technical_report.rb +21 -3
- data/lib/pubid/iec/identifiers/technical_specification.rb +21 -3
- data/lib/pubid/iec/identifiers/technology_report.rb +12 -1
- data/lib/pubid/iec/identifiers/test_report_form.rb +46 -3
- data/lib/pubid/iec/identifiers/vap_identifier.rb +34 -33
- data/lib/pubid/iec/identifiers/white_paper.rb +13 -3
- data/lib/pubid/iec/identifiers/working_document.rb +60 -26
- data/lib/pubid/iec/parser.rb +42 -73
- data/lib/pubid/iec/scheme.rb +71 -0
- data/lib/pubid/iec/single_identifier.rb +23 -15
- data/lib/pubid/iec/supplement_identifier.rb +67 -84
- data/lib/pubid/iec/urn_generator.rb +143 -195
- data/lib/pubid/iec/urn_parser.rb +246 -85
- data/lib/pubid/iec.rb +66 -45
- data/lib/pubid/ieee/aiee/builder.rb +3 -17
- data/lib/pubid/ieee/aiee/identifier.rb +62 -46
- data/lib/pubid/ieee/aiee/parser.rb +1 -1
- data/lib/pubid/ieee/builder.rb +81 -398
- data/lib/pubid/ieee/components/code.rb +0 -8
- data/lib/pubid/ieee/components/draft.rb +0 -54
- data/lib/pubid/ieee/components/relationship.rb +149 -5
- data/lib/pubid/ieee/identifier.rb +11 -3
- data/lib/pubid/ieee/identifiers/adopted_standard.rb +14 -62
- data/lib/pubid/ieee/identifiers/base.rb +547 -340
- data/lib/pubid/ieee/identifiers/conformance_identifier.rb +12 -6
- data/lib/pubid/ieee/identifiers/corrigendum.rb +12 -15
- data/lib/pubid/ieee/identifiers/csa_dual_published.rb +13 -24
- data/lib/pubid/ieee/identifiers/dual_identifier.rb +7 -3
- data/lib/pubid/ieee/identifiers/dual_published.rb +7 -58
- data/lib/pubid/ieee/identifiers/iec_ieee_copublished.rb +11 -99
- data/lib/pubid/ieee/identifiers/interpretation_identifier.rb +11 -25
- data/lib/pubid/ieee/identifiers/joint_development.rb +15 -66
- data/lib/pubid/ieee/identifiers/multi_numbered_identifier.rb +24 -58
- data/lib/pubid/ieee/identifiers/nesc/base.rb +19 -90
- data/lib/pubid/ieee/identifiers/nesc/draft.rb +5 -20
- data/lib/pubid/ieee/identifiers/nesc/handbook.rb +5 -16
- data/lib/pubid/ieee/identifiers/nesc/redline.rb +2 -11
- data/lib/pubid/ieee/identifiers/nesc/standard.rb +3 -18
- data/lib/pubid/ieee/identifiers/nesc.rb +0 -1
- data/lib/pubid/ieee/identifiers/parenthetical_identifier.rb +9 -3
- data/lib/pubid/ieee/identifiers/project_draft_identifier.rb +6 -29
- data/lib/pubid/ieee/identifiers/redlined_standard.rb +11 -4
- data/lib/pubid/ieee/identifiers/si_standard.rb +39 -4
- data/lib/pubid/ieee/identifiers/standard.rb +2 -5
- data/lib/pubid/ieee/identifiers/supplement_identifier.rb +7 -26
- data/lib/pubid/ieee/identifiers.rb +1 -2
- data/lib/pubid/ieee/ire/builder.rb +6 -7
- data/lib/pubid/ieee/ire/identifier.rb +33 -48
- data/lib/pubid/ieee/ire/parser.rb +1 -1
- data/lib/pubid/ieee/nesc/builder.rb +20 -33
- data/lib/pubid/ieee/nesc/parser.rb +15 -16
- data/lib/pubid/ieee/parser.rb +44 -462
- data/lib/pubid/ieee/scheme.rb +90 -0
- data/lib/pubid/ieee/typed_stages.rb +1 -12
- data/lib/pubid/ieee/urn_generator.rb +8 -35
- data/lib/pubid/ieee.rb +2 -133
- data/lib/pubid/ieee_debug.rb +1 -0
- data/lib/pubid/iho/builder.rb +2 -2
- data/lib/pubid/iho/identifier.rb +17 -5
- data/lib/pubid/iho/identifiers/base.rb +30 -64
- data/lib/pubid/iho/identifiers/bibliographic.rb +5 -1
- data/lib/pubid/iho/identifiers/circular_letter.rb +5 -1
- data/lib/pubid/iho/identifiers/miscellaneous.rb +5 -1
- data/lib/pubid/iho/identifiers/publication.rb +5 -1
- data/lib/pubid/iho/identifiers/standard.rb +5 -1
- data/lib/pubid/iho/identifiers.rb +1 -0
- data/lib/pubid/iho/parser.rb +4 -4
- data/lib/pubid/iho/scheme.rb +29 -0
- data/lib/pubid/iho/urn_generator.rb +3 -3
- data/lib/pubid/iho.rb +3 -59
- data/lib/pubid/iso/builder.rb +57 -68
- data/lib/pubid/iso/bundled_identifier.rb +3 -56
- data/lib/pubid/iso/combined_identifier.rb +4 -6
- data/lib/pubid/iso/components/code.rb +19 -7
- data/lib/pubid/iso/components/publisher.rb +8 -10
- data/lib/pubid/iso/components.rb +4 -2
- data/lib/pubid/iso/identifier.rb +11 -260
- data/lib/pubid/iso/identifiers/addendum.rb +6 -9
- data/lib/pubid/iso/identifiers/amendment.rb +4 -8
- data/lib/pubid/iso/identifiers/base.rb +115 -0
- data/lib/pubid/iso/identifiers/corrigendum.rb +4 -4
- data/lib/pubid/iso/identifiers/data.rb +1 -0
- data/lib/pubid/iso/identifiers/directives.rb +2 -8
- data/lib/pubid/iso/identifiers/directives_supplement.rb +26 -55
- data/lib/pubid/iso/identifiers/extract.rb +2 -2
- data/lib/pubid/iso/identifiers/guide.rb +1 -0
- 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 +4 -10
- 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 +3 -11
- data/lib/pubid/iso/identifiers/tc_document.rb +15 -44
- 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 +1 -0
- data/lib/pubid/iso/parser.rb +19 -43
- data/lib/pubid/iso/scheme.rb +187 -0
- data/lib/pubid/iso/single_identifier.rb +7 -6
- data/lib/pubid/iso/supplement_identifier.rb +3 -29
- data/lib/pubid/iso/urn_generator.rb +177 -78
- data/lib/pubid/iso/urn_parser.rb +10 -29
- data/lib/pubid/iso.rb +2 -188
- data/lib/pubid/itu/builder.rb +41 -230
- data/lib/pubid/itu/components/code.rb +12 -57
- data/lib/pubid/itu/components/sector.rb +4 -15
- data/lib/pubid/itu/components/series.rb +4 -0
- data/lib/pubid/itu/identifier.rb +51 -2
- data/lib/pubid/itu/identifiers/amendment.rb +31 -7
- data/lib/pubid/itu/identifiers/annex.rb +4 -13
- data/lib/pubid/itu/identifiers/base.rb +128 -456
- data/lib/pubid/itu/identifiers/combined_identifier.rb +25 -99
- data/lib/pubid/itu/identifiers/corrigendum.rb +25 -16
- data/lib/pubid/itu/identifiers/recommendation.rb +4 -3
- data/lib/pubid/itu/identifiers/special_publication.rb +3 -3
- data/lib/pubid/itu/identifiers/supplement.rb +16 -119
- data/lib/pubid/itu/identifiers.rb +1 -10
- data/lib/pubid/itu/model.rb +1 -1
- data/lib/pubid/itu/parser.rb +27 -481
- data/lib/pubid/itu/scheme.rb +174 -0
- data/lib/pubid/itu/urn_generator.rb +6 -36
- data/lib/pubid/itu.rb +2 -58
- data/lib/pubid/jcgm/builder.rb +19 -37
- data/lib/pubid/jcgm/identifier.rb +0 -10
- data/lib/pubid/jcgm/identifiers/amendment.rb +11 -0
- data/lib/pubid/jcgm/identifiers/gum_guide.rb +15 -3
- data/lib/pubid/jcgm/identifiers.rb +0 -2
- data/lib/pubid/jcgm/parser.rb +7 -74
- data/lib/pubid/jcgm/scheme.rb +60 -0
- data/lib/pubid/jcgm/single_identifier.rb +14 -84
- data/lib/pubid/jcgm/supplement_identifier.rb +4 -39
- data/lib/pubid/jcgm/urn_generator.rb +19 -25
- data/lib/pubid/jcgm.rb +2 -57
- data/lib/pubid/jis/builder.rb +52 -44
- data/lib/pubid/jis/components/code.rb +59 -0
- data/lib/pubid/{astm → jis}/components.rb +1 -1
- data/lib/pubid/jis/identifier.rb +5 -181
- data/lib/pubid/jis/identifiers/amendment.rb +1 -1
- data/lib/pubid/jis/identifiers/base.rb +72 -0
- data/lib/pubid/jis/identifiers/standard.rb +1 -2
- data/lib/pubid/jis/identifiers/technical_report.rb +1 -2
- data/lib/pubid/jis/identifiers/technical_specification.rb +1 -2
- data/lib/pubid/jis/identifiers.rb +1 -1
- data/lib/pubid/jis/parser.rb +6 -32
- data/lib/pubid/jis/scheme.rb +49 -0
- data/lib/pubid/jis/single_identifier.rb +12 -6
- data/lib/pubid/jis/supplement_identifier.rb +14 -17
- data/lib/pubid/jis.rb +2 -48
- data/lib/pubid/nist/builder.rb +1765 -146
- data/lib/pubid/nist/components/code.rb +20 -9
- data/lib/pubid/nist/components/edition.rb +0 -16
- data/lib/pubid/nist/components/publisher.rb +24 -0
- data/lib/pubid/nist/components/supplement.rb +21 -91
- data/lib/pubid/nist/components.rb +1 -0
- data/lib/pubid/nist/configuration.rb +2 -12
- data/lib/pubid/nist/identifiers/base.rb +417 -662
- data/lib/pubid/nist/identifiers/circular.rb +5 -17
- data/lib/pubid/nist/identifiers/circular_supplement.rb +6 -16
- data/lib/pubid/nist/identifiers/commercial_standard.rb +2 -3
- data/lib/pubid/nist/identifiers/commercial_standard_emergency.rb +5 -7
- data/lib/pubid/nist/identifiers/commercial_standards_monthly.rb +5 -18
- data/lib/pubid/nist/identifiers/crpl_report.rb +13 -16
- data/lib/pubid/nist/identifiers/federal_information_processing_standards.rb +17 -18
- data/lib/pubid/nist/identifiers/grant_contractor_report.rb +2 -3
- data/lib/pubid/nist/identifiers/handbook.rb +4 -12
- data/lib/pubid/nist/identifiers/internal_report.rb +7 -15
- data/lib/pubid/nist/identifiers/letter_circular.rb +2 -3
- data/lib/pubid/nist/identifiers/miscellaneous_publication.rb +11 -20
- data/lib/pubid/nist/identifiers/monograph.rb +11 -22
- data/lib/pubid/nist/identifiers/ncstar.rb +2 -2
- data/lib/pubid/nist/identifiers/nsrds.rb +1 -1
- data/lib/pubid/nist/identifiers/owmwp.rb +1 -1
- data/lib/pubid/nist/identifiers/report.rb +10 -19
- data/lib/pubid/nist/identifiers/special_publication.rb +2 -12
- data/lib/pubid/nist/identifiers/technical_note.rb +3 -4
- data/lib/pubid/nist/identifiers.rb +1 -1
- data/lib/pubid/nist/parser.rb +429 -97
- data/lib/pubid/nist/scheme.rb +199 -0
- data/lib/pubid/nist/supplement_identifier.rb +34 -35
- data/lib/pubid/nist/urn_generator.rb +8 -14
- data/lib/pubid/nist.rb +5 -107
- data/lib/pubid/oiml/builder.rb +10 -91
- data/lib/pubid/oiml/components/code.rb +0 -17
- data/lib/pubid/oiml/identifier.rb +0 -53
- data/lib/pubid/oiml/identifiers/annex.rb +46 -13
- data/lib/pubid/oiml/identifiers/base.rb +36 -0
- data/lib/pubid/oiml/identifiers/basic_publication.rb +0 -2
- data/lib/pubid/oiml/identifiers/document.rb +0 -2
- data/lib/pubid/oiml/identifiers/expert_report.rb +0 -2
- data/lib/pubid/oiml/identifiers/guide.rb +0 -2
- data/lib/pubid/oiml/identifiers/recommendation.rb +0 -2
- data/lib/pubid/oiml/identifiers/seminar_report.rb +0 -2
- data/lib/pubid/oiml/identifiers/vocabulary.rb +0 -2
- data/lib/pubid/oiml/identifiers.rb +1 -3
- data/lib/pubid/oiml/parser.rb +17 -118
- data/lib/pubid/oiml/scheme.rb +46 -0
- data/lib/pubid/oiml/single_identifier.rb +43 -66
- data/lib/pubid/oiml/supplement_identifier.rb +17 -62
- data/lib/pubid/oiml/urn_generator.rb +8 -22
- data/lib/pubid/oiml.rb +1 -56
- data/lib/pubid/parser.rb +0 -1
- data/lib/pubid/parsers/mr_string.rb +7 -120
- data/lib/pubid/plateau/builder.rb +4 -8
- data/lib/pubid/plateau/identifiers/base.rb +36 -40
- data/lib/pubid/plateau/identifiers/handbook.rb +7 -1
- data/lib/pubid/plateau/identifiers/technical_report.rb +5 -1
- data/lib/pubid/plateau/identifiers.rb +1 -0
- data/lib/pubid/plateau/parser.rb +6 -16
- data/lib/pubid/plateau/scheme.rb +45 -0
- data/lib/pubid/plateau/supplement_identifier.rb +15 -11
- data/lib/pubid/plateau.rb +1 -58
- data/lib/pubid/renderers/base.rb +0 -47
- data/lib/pubid/renderers/directives_renderer.rb +14 -27
- data/lib/pubid/renderers/guide_renderer.rb +1 -7
- data/lib/pubid/renderers/human_readable.rb +9 -34
- data/lib/pubid/renderers/iwa_renderer.rb +1 -5
- data/lib/pubid/renderers/mr_string.rb +6 -54
- data/lib/pubid/renderers/supplement_renderer.rb +2 -5
- data/lib/pubid/renderers.rb +0 -1
- data/lib/pubid/rendering/base.rb +73 -0
- data/lib/pubid/rendering/common.rb +211 -0
- data/lib/pubid/rendering/context.rb +21 -33
- data/lib/pubid/rendering/format.rb +25 -0
- data/lib/pubid/rendering/numbering.rb +7 -25
- data/lib/pubid/rendering/supplement.rb +4 -4
- data/lib/pubid/rendering.rb +3 -0
- data/lib/pubid/sae/builder.rb +1 -1
- data/lib/pubid/sae/components/date.rb +0 -8
- data/lib/pubid/sae/components/type.rb +1 -5
- data/lib/pubid/sae/identifier.rb +12 -2
- data/lib/pubid/sae/identifiers/base.rb +28 -33
- data/lib/pubid/sae/identifiers.rb +1 -0
- data/lib/pubid/sae/parser.rb +1 -1
- data/lib/pubid/sae/scheme.rb +47 -0
- data/lib/pubid/sae/urn_generator.rb +10 -2
- data/lib/pubid/sae.rb +2 -49
- data/lib/pubid/scheme.rb +207 -0
- data/lib/pubid/urn_generator/base.rb +12 -12
- data/lib/pubid/version.rb +1 -1
- data/lib/pubid.rb +10 -424
- data/lib/tasks/export.rake +5 -6
- data/lib/tasks/website-data.json +1796 -1854
- metadata +45 -307
- data/data/bipm/update_codes.yaml +0 -9
- data/data/nist/series.yaml +0 -155
- data/lib/pubid/adobe/builder.rb +0 -52
- data/lib/pubid/adobe/identifier.rb +0 -47
- data/lib/pubid/adobe/identifiers/publication.rb +0 -31
- data/lib/pubid/adobe/identifiers/tech_note.rb +0 -32
- data/lib/pubid/adobe/identifiers.rb +0 -10
- data/lib/pubid/adobe/parser.rb +0 -136
- data/lib/pubid/adobe/renderer.rb +0 -39
- data/lib/pubid/adobe/urn_generator.rb +0 -42
- data/lib/pubid/adobe/urn_parser.rb +0 -69
- data/lib/pubid/adobe.rb +0 -60
- data/lib/pubid/amca/renderer.rb +0 -82
- data/lib/pubid/amca/urn_parser.rb +0 -28
- data/lib/pubid/ansi/renderer.rb +0 -53
- data/lib/pubid/ansi/urn_parser.rb +0 -23
- data/lib/pubid/api/identifiers.rb +0 -18
- data/lib/pubid/api/renderer.rb +0 -98
- data/lib/pubid/api/urn_parser.rb +0 -35
- data/lib/pubid/ashrae/renderer.rb +0 -117
- data/lib/pubid/ashrae/urn_parser.rb +0 -27
- data/lib/pubid/asme/renderer.rb +0 -66
- data/lib/pubid/asme/urn_parser.rb +0 -31
- data/lib/pubid/astm/identifiers/code_number.rb +0 -81
- data/lib/pubid/astm/identifiers.rb +0 -19
- data/lib/pubid/astm/renderer.rb +0 -172
- data/lib/pubid/astm/urn_parser.rb +0 -30
- data/lib/pubid/bipm/builder.rb +0 -163
- data/lib/pubid/bipm/identifier.rb +0 -285
- data/lib/pubid/bipm/identifiers/committee_document.rb +0 -36
- data/lib/pubid/bipm/identifiers/guide.rb +0 -35
- data/lib/pubid/bipm/identifiers/meeting.rb +0 -53
- data/lib/pubid/bipm/identifiers/mep.rb +0 -33
- data/lib/pubid/bipm/identifiers/metrologia_article.rb +0 -48
- data/lib/pubid/bipm/identifiers/si_brochure.rb +0 -33
- data/lib/pubid/bipm/identifiers.rb +0 -15
- data/lib/pubid/bipm/parser.rb +0 -237
- data/lib/pubid/bipm/renderer.rb +0 -118
- data/lib/pubid/bipm/urn_generator.rb +0 -58
- data/lib/pubid/bipm/urn_parser.rb +0 -60
- data/lib/pubid/bipm.rb +0 -91
- data/lib/pubid/bsi/renderer.rb +0 -1064
- data/lib/pubid/bsi/urn_parser.rb +0 -52
- data/lib/pubid/calconnect/builder.rb +0 -38
- data/lib/pubid/calconnect/identifier.rb +0 -121
- data/lib/pubid/calconnect/identifiers/standard.rb +0 -29
- data/lib/pubid/calconnect/identifiers.rb +0 -9
- data/lib/pubid/calconnect/parser.rb +0 -54
- data/lib/pubid/calconnect/renderer.rb +0 -36
- data/lib/pubid/calconnect/urn_generator.rb +0 -33
- data/lib/pubid/calconnect/urn_parser.rb +0 -34
- data/lib/pubid/calconnect.rb +0 -82
- data/lib/pubid/ccsds/urn_parser.rb +0 -20
- data/lib/pubid/cen_cenelec/renderer.rb +0 -261
- data/lib/pubid/cen_cenelec/urn_parser.rb +0 -28
- data/lib/pubid/cie/identifiers/code_attributes.rb +0 -52
- data/lib/pubid/cie/identifiers/proceedings.rb +0 -41
- data/lib/pubid/cie/urn_parser.rb +0 -28
- data/lib/pubid/components/adoption.rb +0 -104
- data/lib/pubid/components/iteration.rb +0 -32
- data/lib/pubid/components/relationship.rb +0 -151
- data/lib/pubid/components/supplement.rb +0 -184
- data/lib/pubid/csa/renderer.rb +0 -300
- data/lib/pubid/csa/urn_parser.rb +0 -33
- data/lib/pubid/doi/builder.rb +0 -18
- data/lib/pubid/doi/identifier.rb +0 -49
- data/lib/pubid/doi/identifiers/resource.rb +0 -30
- data/lib/pubid/doi/identifiers.rb +0 -9
- data/lib/pubid/doi/parser.rb +0 -52
- data/lib/pubid/doi/renderer.rb +0 -13
- data/lib/pubid/doi.rb +0 -55
- data/lib/pubid/easc/builder.rb +0 -55
- data/lib/pubid/easc/identifier.rb +0 -59
- data/lib/pubid/easc/identifiers/pmg.rb +0 -20
- data/lib/pubid/easc/identifiers/rmg.rb +0 -19
- data/lib/pubid/easc/identifiers.rb +0 -10
- data/lib/pubid/easc/parser.rb +0 -88
- data/lib/pubid/easc/renderer.rb +0 -48
- data/lib/pubid/easc/urn_generator.rb +0 -46
- data/lib/pubid/easc/urn_parser.rb +0 -57
- data/lib/pubid/easc.rb +0 -52
- data/lib/pubid/ecma/builder.rb +0 -45
- data/lib/pubid/ecma/identifier.rb +0 -147
- data/lib/pubid/ecma/identifiers/memento.rb +0 -30
- data/lib/pubid/ecma/identifiers/standard.rb +0 -31
- data/lib/pubid/ecma/identifiers/technical_report.rb +0 -31
- data/lib/pubid/ecma/identifiers.rb +0 -11
- data/lib/pubid/ecma/parser.rb +0 -76
- data/lib/pubid/ecma/renderer.rb +0 -67
- data/lib/pubid/ecma/urn_generator.rb +0 -46
- data/lib/pubid/ecma/urn_parser.rb +0 -51
- data/lib/pubid/ecma.rb +0 -67
- data/lib/pubid/errors.rb +0 -79
- data/lib/pubid/etsi/renderer.rb +0 -48
- data/lib/pubid/etsi/urn_parser.rb +0 -34
- data/lib/pubid/gb/builder.rb +0 -45
- data/lib/pubid/gb/identifier.rb +0 -67
- data/lib/pubid/gb/identifiers/standard.rb +0 -34
- data/lib/pubid/gb/identifiers.rb +0 -9
- data/lib/pubid/gb/parser.rb +0 -63
- data/lib/pubid/gb/renderer.rb +0 -35
- data/lib/pubid/gb.rb +0 -87
- data/lib/pubid/gost/builder.rb +0 -148
- data/lib/pubid/gost/identifier.rb +0 -47
- data/lib/pubid/gost/identifiers/foreign_reference.rb +0 -25
- data/lib/pubid/gost/identifiers/harmonized.rb +0 -39
- data/lib/pubid/gost/identifiers/identical_adoption.rb +0 -39
- data/lib/pubid/gost/identifiers/interstate_standard.rb +0 -20
- data/lib/pubid/gost/identifiers/national_standard.rb +0 -19
- data/lib/pubid/gost/identifiers.rb +0 -13
- data/lib/pubid/gost/parser.rb +0 -105
- data/lib/pubid/gost/renderer.rb +0 -48
- data/lib/pubid/gost/urn_generator.rb +0 -46
- data/lib/pubid/gost/urn_parser.rb +0 -52
- data/lib/pubid/gost.rb +0 -49
- data/lib/pubid/iala/builder.rb +0 -102
- data/lib/pubid/iala/identifier.rb +0 -90
- data/lib/pubid/iala/identifiers/advice.rb +0 -15
- data/lib/pubid/iala/identifiers/annex.rb +0 -57
- data/lib/pubid/iala/identifiers/general_assembly.rb +0 -19
- data/lib/pubid/iala/identifiers/guideline.rb +0 -17
- data/lib/pubid/iala/identifiers/letter.rb +0 -16
- data/lib/pubid/iala/identifiers/manual.rb +0 -18
- data/lib/pubid/iala/identifiers/model_course.rb +0 -17
- data/lib/pubid/iala/identifiers/recommendation.rb +0 -17
- data/lib/pubid/iala/identifiers/report.rb +0 -16
- data/lib/pubid/iala/identifiers/resolution.rb +0 -16
- data/lib/pubid/iala/identifiers/standard.rb +0 -17
- data/lib/pubid/iala/identifiers.rb +0 -19
- data/lib/pubid/iala/parser.rb +0 -138
- data/lib/pubid/iala/renderer.rb +0 -36
- data/lib/pubid/iala/urn_generator.rb +0 -49
- data/lib/pubid/iala/urn_parser.rb +0 -67
- data/lib/pubid/iala.rb +0 -71
- data/lib/pubid/iana/builder.rb +0 -22
- data/lib/pubid/iana/identifier.rb +0 -140
- data/lib/pubid/iana/identifiers/registry.rb +0 -69
- data/lib/pubid/iana/identifiers.rb +0 -9
- data/lib/pubid/iana/parser.rb +0 -38
- data/lib/pubid/iana/renderer.rb +0 -32
- data/lib/pubid/iana/urn_generator.rb +0 -19
- data/lib/pubid/iana/urn_parser.rb +0 -24
- data/lib/pubid/iana.rb +0 -69
- data/lib/pubid/idf/renderer.rb +0 -84
- data/lib/pubid/idf/urn_parser.rb +0 -25
- data/lib/pubid/iec/components.rb +0 -14
- data/lib/pubid/iec/identifiers/technical_group.rb +0 -30
- data/lib/pubid/iec/identifiers.rb +0 -31
- data/lib/pubid/iec/renderer.rb +0 -267
- data/lib/pubid/ieee/compaction.rb +0 -121
- data/lib/pubid/ieee/identifiers/amendment.rb +0 -40
- data/lib/pubid/ieee/identifiers/code_number.rb +0 -82
- data/lib/pubid/ieee/identifiers/nesc/edition.rb +0 -32
- data/lib/pubid/ieee/pre_parser.rb +0 -301
- data/lib/pubid/ieee/renderer.rb +0 -408
- data/lib/pubid/ieee/urn_parser.rb +0 -34
- data/lib/pubid/ietf/builder.rb +0 -78
- data/lib/pubid/ietf/identifier.rb +0 -5
- data/lib/pubid/ietf/identifiers/base.rb +0 -72
- data/lib/pubid/ietf/identifiers/bcp.rb +0 -36
- data/lib/pubid/ietf/identifiers/fyi.rb +0 -36
- data/lib/pubid/ietf/identifiers/internet_draft.rb +0 -45
- data/lib/pubid/ietf/identifiers/rfc.rb +0 -27
- data/lib/pubid/ietf/identifiers/serialization.rb +0 -51
- data/lib/pubid/ietf/identifiers/std.rb +0 -36
- data/lib/pubid/ietf/identifiers.rb +0 -14
- data/lib/pubid/ietf/parser.rb +0 -61
- data/lib/pubid/ietf/renderer.rb +0 -64
- data/lib/pubid/ietf/urn_generator.rb +0 -37
- data/lib/pubid/ietf/urn_parser.rb +0 -43
- data/lib/pubid/ietf.rb +0 -85
- data/lib/pubid/iho/renderer.rb +0 -30
- data/lib/pubid/iho/urn_parser.rb +0 -58
- data/lib/pubid/isbn/builder.rb +0 -44
- data/lib/pubid/isbn/check_digit.rb +0 -53
- data/lib/pubid/isbn/identifier.rb +0 -81
- data/lib/pubid/isbn/identifiers/book.rb +0 -30
- data/lib/pubid/isbn/identifiers.rb +0 -9
- data/lib/pubid/isbn/parser.rb +0 -45
- data/lib/pubid/isbn/renderer.rb +0 -16
- data/lib/pubid/isbn.rb +0 -52
- data/lib/pubid/iso/normalizer.rb +0 -89
- data/lib/pubid/itu/components/designation.rb +0 -35
- data/lib/pubid/itu/components.rb +0 -12
- data/lib/pubid/itu/identifiers/addendum.rb +0 -15
- data/lib/pubid/itu/identifiers/annex_of_recommendation.rb +0 -87
- data/lib/pubid/itu/identifiers/appendix_of_recommendation.rb +0 -92
- data/lib/pubid/itu/identifiers/errata.rb +0 -15
- data/lib/pubid/itu/identifiers/handbook.rb +0 -38
- data/lib/pubid/itu/identifiers/question.rb +0 -63
- data/lib/pubid/itu/identifiers/report.rb +0 -39
- data/lib/pubid/itu/identifiers/standard_serialization.rb +0 -58
- data/lib/pubid/itu/urn_parser.rb +0 -31
- data/lib/pubid/jcgm/identifiers/corrigendum.rb +0 -34
- data/lib/pubid/jcgm/identifiers/meeting.rb +0 -47
- data/lib/pubid/jcgm/renderer.rb +0 -89
- data/lib/pubid/jcgm/urn_parser.rb +0 -177
- data/lib/pubid/jis/identifiers/corrigendum.rb +0 -16
- data/lib/pubid/jis/renderer.rb +0 -69
- data/lib/pubid/jis/urn_parser.rb +0 -23
- data/lib/pubid/nist/caster.rb +0 -1234
- data/lib/pubid/nist/circular_supplement_builder.rb +0 -293
- data/lib/pubid/nist/identifier.rb +0 -8
- data/lib/pubid/nist/identifiers/dated_document.rb +0 -49
- data/lib/pubid/nist/parser_output_normalizer.rb +0 -233
- data/lib/pubid/nist/preprocessor.rb +0 -443
- data/lib/pubid/nist/renderer.rb +0 -43
- data/lib/pubid/nist/router.rb +0 -149
- data/lib/pubid/nist/series/base.rb +0 -58
- data/lib/pubid/nist/series/crpl.rb +0 -13
- data/lib/pubid/nist/series/fips.rb +0 -14
- data/lib/pubid/nist/series/ir.rb +0 -57
- data/lib/pubid/nist/series/letter_preserving.rb +0 -15
- data/lib/pubid/nist/series/mono.rb +0 -19
- data/lib/pubid/nist/series/ncstar.rb +0 -20
- data/lib/pubid/nist/series.rb +0 -49
- data/lib/pubid/nist/urn_parser.rb +0 -67
- data/lib/pubid/oasis/builder.rb +0 -79
- data/lib/pubid/oasis/identifier.rb +0 -160
- data/lib/pubid/oasis/identifiers/standard.rb +0 -29
- data/lib/pubid/oasis/identifiers.rb +0 -9
- data/lib/pubid/oasis/parser.rb +0 -34
- data/lib/pubid/oasis/renderer.rb +0 -29
- data/lib/pubid/oasis/urn_generator.rb +0 -25
- data/lib/pubid/oasis/urn_parser.rb +0 -22
- data/lib/pubid/oasis.rb +0 -79
- data/lib/pubid/ogc/builder.rb +0 -33
- data/lib/pubid/ogc/identifier.rb +0 -81
- data/lib/pubid/ogc/identifiers/document.rb +0 -26
- data/lib/pubid/ogc/identifiers.rb +0 -10
- data/lib/pubid/ogc/parser.rb +0 -40
- data/lib/pubid/ogc/renderer.rb +0 -33
- data/lib/pubid/ogc/urn_generator.rb +0 -14
- data/lib/pubid/ogc/urn_parser.rb +0 -22
- data/lib/pubid/ogc.rb +0 -71
- data/lib/pubid/oiml/identifiers/bulletin.rb +0 -137
- data/lib/pubid/oiml/identifiers/code_number.rb +0 -90
- data/lib/pubid/oiml/identifiers/errata.rb +0 -15
- data/lib/pubid/oiml/renderer.rb +0 -232
- data/lib/pubid/oiml/urn_parser.rb +0 -39
- data/lib/pubid/omg/builder.rb +0 -19
- data/lib/pubid/omg/identifier.rb +0 -47
- data/lib/pubid/omg/identifiers/specification.rb +0 -32
- data/lib/pubid/omg/identifiers.rb +0 -9
- data/lib/pubid/omg/parser.rb +0 -40
- data/lib/pubid/omg/renderer.rb +0 -19
- data/lib/pubid/omg.rb +0 -51
- data/lib/pubid/parser/grammar.rb +0 -74
- data/lib/pubid/plateau/identifier.rb +0 -4
- data/lib/pubid/plateau/renderer.rb +0 -51
- data/lib/pubid/plateau/urn_parser.rb +0 -43
- data/lib/pubid/prefixes_support.rb +0 -51
- data/lib/pubid/renderers/annotator.rb +0 -233
- data/lib/pubid/sae/renderer.rb +0 -36
- data/lib/pubid/sae/urn_parser.rb +0 -36
- data/lib/pubid/tgpp/builder.rb +0 -41
- data/lib/pubid/tgpp/identifier.rb +0 -107
- data/lib/pubid/tgpp/identifiers/technical_report.rb +0 -32
- data/lib/pubid/tgpp/identifiers/technical_specification.rb +0 -33
- data/lib/pubid/tgpp/identifiers.rb +0 -11
- data/lib/pubid/tgpp/parser.rb +0 -78
- data/lib/pubid/tgpp/renderer.rb +0 -52
- data/lib/pubid/tgpp/urn_generator.rb +0 -39
- data/lib/pubid/tgpp/urn_parser.rb +0 -30
- data/lib/pubid/tgpp.rb +0 -83
- data/lib/pubid/type_resolver.rb +0 -59
- data/lib/pubid/un/builder.rb +0 -42
- data/lib/pubid/un/identifier.rb +0 -40
- data/lib/pubid/un/identifiers/document.rb +0 -24
- data/lib/pubid/un/identifiers.rb +0 -9
- data/lib/pubid/un/parser.rb +0 -25
- data/lib/pubid/un/renderer.rb +0 -11
- data/lib/pubid/un.rb +0 -46
- data/lib/pubid/urn_parser/base.rb +0 -81
- data/lib/pubid/urn_parser/errors.rb +0 -16
- data/lib/pubid/urn_parser.rb +0 -14
- data/lib/pubid/w3c/builder.rb +0 -55
- data/lib/pubid/w3c/identifier.rb +0 -130
- data/lib/pubid/w3c/identifiers/candidate_recommendation.rb +0 -31
- data/lib/pubid/w3c/identifiers/candidate_recommendation_draft.rb +0 -31
- data/lib/pubid/w3c/identifiers/draft_note.rb +0 -31
- data/lib/pubid/w3c/identifiers/note.rb +0 -30
- data/lib/pubid/w3c/identifiers/obsolete_recommendation.rb +0 -31
- data/lib/pubid/w3c/identifiers/proposed_edited_recommendation.rb +0 -31
- data/lib/pubid/w3c/identifiers/proposed_recommendation.rb +0 -31
- data/lib/pubid/w3c/identifiers/recommendation.rb +0 -31
- data/lib/pubid/w3c/identifiers/standard.rb +0 -12
- data/lib/pubid/w3c/identifiers/superseded_recommendation.rb +0 -31
- data/lib/pubid/w3c/identifiers/working_draft.rb +0 -30
- data/lib/pubid/w3c/identifiers.rb +0 -25
- data/lib/pubid/w3c/parser.rb +0 -43
- data/lib/pubid/w3c/renderer.rb +0 -35
- data/lib/pubid/w3c/urn_generator.rb +0 -18
- data/lib/pubid/w3c/urn_parser.rb +0 -36
- data/lib/pubid/w3c.rb +0 -67
- data/lib/pubid/xsf/builder.rb +0 -17
- data/lib/pubid/xsf/identifier.rb +0 -66
- data/lib/pubid/xsf/identifiers/xep.rb +0 -31
- data/lib/pubid/xsf/identifiers.rb +0 -9
- data/lib/pubid/xsf/parser.rb +0 -25
- data/lib/pubid/xsf/renderer.rb +0 -23
- data/lib/pubid/xsf/urn_generator.rb +0 -13
- data/lib/pubid/xsf/urn_parser.rb +0 -18
- data/lib/pubid/xsf.rb +0 -81
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
require_relative "../identifier"
|
|
1
2
|
# frozen_string_literal: true
|
|
3
|
+
require_relative "../components/vap_suffix"
|
|
2
4
|
|
|
3
5
|
module Pubid
|
|
4
6
|
module Iec
|
|
@@ -7,33 +9,10 @@ module Pubid
|
|
|
7
9
|
# Single Responsibility: Wraps another identifier with VAP type suffix
|
|
8
10
|
# Examples: "IEC 61666:2010+AMD1:2021 CSV"
|
|
9
11
|
class VapIdentifier < Identifier
|
|
10
|
-
attribute :
|
|
11
|
-
|
|
12
|
-
attribute :vap, :string, collection: true
|
|
12
|
+
attribute :base_identifier, Identifier, polymorphic: true
|
|
13
|
+
attribute :vap_suffix, Components::VapSuffix
|
|
13
14
|
attribute :edition, ::Pubid::Components::Edition, default: -> {}
|
|
14
15
|
|
|
15
|
-
# number/date/publisher/stage are delegated to base, so
|
|
16
|
-
# serialize the wrapped identifier under "base" plus the vap array; the
|
|
17
|
-
# common fields live inside "base", not at the top level.
|
|
18
|
-
include Pubid::Iec::DelegatedFieldSuppression
|
|
19
|
-
|
|
20
|
-
key_value do
|
|
21
|
-
map "base", with: { to: :base_to_kv, from: :base_from_kv }
|
|
22
|
-
map "vap", to: :vap, render_default: false
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def base_to_kv(model, doc)
|
|
26
|
-
base = model.base
|
|
27
|
-
return unless base
|
|
28
|
-
|
|
29
|
-
doc.add_child(Lutaml::KeyValue::DataModel::Element.new("base",
|
|
30
|
-
base.to_hash))
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def base_from_kv(model, value)
|
|
34
|
-
model.base = ::Pubid::Iec::Identifier.from_hash(value) if value
|
|
35
|
-
end
|
|
36
|
-
|
|
37
16
|
# VAP types mapping
|
|
38
17
|
TYPE_MAP = {
|
|
39
18
|
"CSV" => "Consolidated version (with Supplements)",
|
|
@@ -42,33 +21,55 @@ module Pubid
|
|
|
42
21
|
"SER" => "Serial version",
|
|
43
22
|
}.freeze
|
|
44
23
|
|
|
45
|
-
|
|
24
|
+
def to_s(lang: :en, lang_single: false, with_edition: false)
|
|
25
|
+
parts = []
|
|
26
|
+
|
|
27
|
+
# Render base identifier WITHOUT edition (edition goes at VAP level)
|
|
28
|
+
parts << base_identifier.to_s(lang: lang, lang_single: lang_single,
|
|
29
|
+
with_edition: false)
|
|
30
|
+
|
|
31
|
+
# Add VAP suffix with space
|
|
32
|
+
if vap_suffix
|
|
33
|
+
parts << " #{vap_suffix}"
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Add edition after VAP suffix if present
|
|
37
|
+
parts << " #{edition}" if edition&.number
|
|
38
|
+
|
|
39
|
+
parts.compact.join
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Delegate common attributes to base_identifier
|
|
46
43
|
def publisher
|
|
47
|
-
|
|
44
|
+
base_identifier&.publisher
|
|
48
45
|
end
|
|
49
46
|
|
|
50
47
|
def copublishers
|
|
51
|
-
|
|
48
|
+
base_identifier&.copublishers
|
|
52
49
|
end
|
|
53
50
|
|
|
54
51
|
def code
|
|
55
|
-
|
|
52
|
+
base_identifier&.code
|
|
56
53
|
end
|
|
57
54
|
|
|
58
55
|
def number
|
|
59
|
-
|
|
56
|
+
base_identifier&.number
|
|
60
57
|
end
|
|
61
58
|
|
|
62
59
|
def date
|
|
63
|
-
|
|
60
|
+
base_identifier&.date
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def type
|
|
64
|
+
:vap
|
|
64
65
|
end
|
|
65
66
|
|
|
66
67
|
def stage
|
|
67
|
-
|
|
68
|
+
base_identifier&.stage
|
|
68
69
|
end
|
|
69
70
|
|
|
70
71
|
def typed_stage
|
|
71
|
-
|
|
72
|
+
base_identifier&.typed_stage
|
|
72
73
|
end
|
|
73
74
|
end
|
|
74
75
|
end
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
require_relative "base"
|
|
2
|
+
require_relative "../../components/typed_stage"
|
|
2
3
|
|
|
3
4
|
module Pubid
|
|
4
5
|
module Iec
|
|
@@ -19,10 +20,19 @@ module Pubid
|
|
|
19
20
|
].freeze
|
|
20
21
|
|
|
21
22
|
def self.type
|
|
22
|
-
{ key: :wp,
|
|
23
|
-
web: :white_paper, title: "White Paper", short: "White Paper" }
|
|
23
|
+
{ key: :wp, title: "White Paper", short: "White Paper" }
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
+
# Override publisher_portion to add White Paper
|
|
27
|
+
def publisher_portion
|
|
28
|
+
result = publisher.to_s
|
|
29
|
+
|
|
30
|
+
if typed_stage && typed_stage.abbreviation == "White Paper"
|
|
31
|
+
result += " White Paper"
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
result
|
|
35
|
+
end
|
|
26
36
|
end
|
|
27
37
|
end
|
|
28
38
|
end
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
require_relative "base"
|
|
1
2
|
# frozen_string_literal: true
|
|
3
|
+
require_relative "../../components/stage"
|
|
2
4
|
|
|
3
5
|
module Pubid
|
|
4
6
|
module Iec
|
|
@@ -24,37 +26,69 @@ module Pubid
|
|
|
24
26
|
PROJECT_STAGES = {}.freeze
|
|
25
27
|
|
|
26
28
|
def self.type
|
|
27
|
-
{ key: :wd,
|
|
28
|
-
web: :working_document, title: "Working Document", short: "WD" }
|
|
29
|
+
{ key: :wd, title: "Working Document", short: "WD" }
|
|
29
30
|
end
|
|
30
31
|
|
|
31
|
-
#
|
|
32
|
-
# `1/2457(F)/FDIS` — and none of those is the `number` the shared token
|
|
33
|
-
# table looks for, so it had no annotatable token. `wd_stage` is the
|
|
34
|
-
# printed stage token ("FDIS"); the derived `#stage` reader covers only
|
|
35
|
-
# the PWI/PNW work-programme form and is nil here.
|
|
36
|
-
def annotation_tokens
|
|
37
|
-
super + [
|
|
38
|
-
[:technical_committee, "docnumber"],
|
|
39
|
-
[:wd_number, "docnumber"],
|
|
40
|
-
[:wd_language, "language"],
|
|
41
|
-
[:wd_stage, "stage"],
|
|
42
|
-
[:wp_stage, "stage"],
|
|
43
|
-
[:wp_type, "doctype"],
|
|
44
|
-
]
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
# Return stage object for the PWI/PNW work-programme stage.
|
|
48
|
-
#
|
|
49
|
-
# This used to build a bare Stage from a hand-written abbreviation map,
|
|
50
|
-
# so the stage carried no harmonized code and "pnw" existed as a stage
|
|
51
|
-
# code nowhere else in the registry. It now resolves through the shared
|
|
52
|
-
# registry, so PWI carries 00.* and PNW carries 10.20 — which is what
|
|
53
|
-
# the URN generator reads.
|
|
32
|
+
# Return stage object for PWI/PNW stage
|
|
54
33
|
def stage
|
|
55
34
|
return nil unless wp_stage
|
|
56
35
|
|
|
57
|
-
|
|
36
|
+
# Map PWI/PNW to stage codes
|
|
37
|
+
stage_map = {
|
|
38
|
+
"PWI" => "pwi",
|
|
39
|
+
"PNW" => "pnw",
|
|
40
|
+
}
|
|
41
|
+
stage_code = stage_map[wp_stage]
|
|
42
|
+
return nil unless stage_code
|
|
43
|
+
|
|
44
|
+
@stage ||= ::Pubid::Components::Stage.new(stage_code: stage_code)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def to_s(_format = :short)
|
|
48
|
+
# Working Programme format: "PWI TR 100-36 ED1" or "IEC/PWI 60038"
|
|
49
|
+
if wp_stage
|
|
50
|
+
parts = []
|
|
51
|
+
# Include publisher if present (for IEC/PWI format)
|
|
52
|
+
if publisher
|
|
53
|
+
parts << publisher.body
|
|
54
|
+
if copublishers&.any?
|
|
55
|
+
parts << "/#{copublishers.map(&:body).join('/')}"
|
|
56
|
+
end
|
|
57
|
+
parts << "/"
|
|
58
|
+
end
|
|
59
|
+
parts << wp_stage
|
|
60
|
+
# Only add wp_type if it exists and is not empty/whitespace
|
|
61
|
+
if wp_type && !wp_type.strip.empty?
|
|
62
|
+
parts << " #{wp_type.strip}"
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Render full number with parts
|
|
66
|
+
if number
|
|
67
|
+
num_str = number.to_s
|
|
68
|
+
num_str += "-#{part}" if part && part.to_s != ""
|
|
69
|
+
num_str += "-#{subpart}" if subpart && subpart.to_s != ""
|
|
70
|
+
parts << " #{num_str}"
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
parts << " #{edition}" if edition&.number
|
|
74
|
+
return parts.join
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Working Document format: "100/3705(F)/FDIS"
|
|
78
|
+
parts = []
|
|
79
|
+
|
|
80
|
+
parts << technical_committee if technical_committee
|
|
81
|
+
|
|
82
|
+
# Number with optional language
|
|
83
|
+
if wd_number
|
|
84
|
+
num_part = wd_number.to_s
|
|
85
|
+
num_part += "(#{wd_language})" if wd_language
|
|
86
|
+
parts << num_part
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
parts << wd_stage if wd_stage
|
|
90
|
+
|
|
91
|
+
parts.join("/")
|
|
58
92
|
end
|
|
59
93
|
end
|
|
60
94
|
end
|
data/lib/pubid/iec/parser.rb
CHANGED
|
@@ -1,24 +1,29 @@
|
|
|
1
1
|
require "parslet"
|
|
2
2
|
# frozen_string_literal: true
|
|
3
|
+
require_relative "../parser/common_parse_rules"
|
|
4
|
+
require_relative "../parser/common_parse_methods"
|
|
5
|
+
require_relative "identifier"
|
|
6
|
+
require_relative "supplement_identifier"
|
|
3
7
|
|
|
4
8
|
module Pubid
|
|
5
9
|
module Iec
|
|
6
|
-
class Parser < ::
|
|
10
|
+
class Parser < Parslet::Parser
|
|
7
11
|
include ::Pubid::Parser::CommonParseRules
|
|
8
12
|
include ::Pubid::Parser::CommonParseMethods
|
|
9
13
|
|
|
10
14
|
DASH_CHARS = ["-", "‑", "‐"].freeze
|
|
11
15
|
|
|
12
16
|
# We need to sort by length to match longest first because that's how Parslet works
|
|
13
|
-
TYPED_STAGES = Pubid::Iec.
|
|
17
|
+
TYPED_STAGES = Pubid::Iec::Scheme.typed_stages
|
|
18
|
+
.map(&:abbr).flatten.sort_by(&:length).reverse
|
|
19
|
+
TYPED_STAGES_SUPPLEMENTS = Pubid::Iec::Scheme.supplement_typed_stages
|
|
14
20
|
.map(&:abbr).flatten.sort_by(&:length).reverse
|
|
15
|
-
TYPED_STAGES_SUPPLEMENTS = TYPED_STAGES
|
|
16
21
|
|
|
17
22
|
root :identifier
|
|
18
23
|
|
|
19
24
|
rule(:identifier) do
|
|
20
|
-
|
|
21
|
-
|
|
25
|
+
working_programme_with_publisher |
|
|
26
|
+
working_programme |
|
|
22
27
|
working_document |
|
|
23
28
|
sheet_supplement_identifier |
|
|
24
29
|
sheet_identifier |
|
|
@@ -29,42 +34,6 @@ module Pubid
|
|
|
29
34
|
identifier_copublishers
|
|
30
35
|
end
|
|
31
36
|
|
|
32
|
-
# Technical Group identifier — names a committee rather than a document.
|
|
33
|
-
# Examples: "IEC TC 1", "ISO/IEC JTC 1", "ISO/IEC JTC 1/SC 7",
|
|
34
|
-
# "IEC SC 100A", "CISPR", "CIS/A".
|
|
35
|
-
rule(:technical_group) do
|
|
36
|
-
technical_group_with_publisher | technical_group_bare
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
rule(:technical_group_with_publisher) do
|
|
40
|
-
prefix_sole_publisher >> copublishers.maybe >> space >>
|
|
41
|
-
tc_body.as(:technical_committee) >>
|
|
42
|
-
(str("/") >> space? >> sc_body).as(:subcommittee).maybe
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
rule(:technical_group_bare) do
|
|
46
|
-
# CISPR / CIS-letter forms and bare TYPE NUMBER forms both default
|
|
47
|
-
# publisher to "IEC" via the Base class default.
|
|
48
|
-
tc_body.as(:technical_committee) >>
|
|
49
|
-
(str("/") >> space? >> sc_body).as(:subcommittee).maybe
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
# Committee body forms accepted by the parser. Order matters: longer
|
|
53
|
-
# or more specific patterns first so they win the ordered choice.
|
|
54
|
-
rule(:tc_body) do
|
|
55
|
-
str("CISPR") |
|
|
56
|
-
(str("CIS") >> str("/") >> match("[A-Z]")) |
|
|
57
|
-
(tc_type >> space >> digits >> match("[A-Z]").maybe)
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
rule(:sc_body) do
|
|
61
|
-
str("SC") >> space >> digits >> match("[A-Z]").maybe
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
rule(:tc_type) do
|
|
65
|
-
str("JTC") | str("JPC") | str("TC") | str("SC") | str("PC")
|
|
66
|
-
end
|
|
67
|
-
|
|
68
37
|
# Working Programme format: [PWI|PNW] [TR] number edition
|
|
69
38
|
# Examples: "PWI TR 100-36 ED1", "PWI 100-44 ED1", "PNW 65-915 ED1"
|
|
70
39
|
# TC-style names: "PWI TR SYCSMARTENERGY-1", "PWI SyCLVDC-1 ED1"
|
|
@@ -80,6 +49,21 @@ module Pubid
|
|
|
80
49
|
(space >> edition).maybe
|
|
81
50
|
end
|
|
82
51
|
|
|
52
|
+
# Working Programme with publisher prefix: IEC/PWI [TR] number edition
|
|
53
|
+
# Examples: "IEC/PWI 60038", "ISO/IEC/PWI TR 100-36 ED1"
|
|
54
|
+
rule(:working_programme_with_publisher) do
|
|
55
|
+
prefix_with_copublishers >> str("/") >>
|
|
56
|
+
(str("PWI") | str("PNW")).as(:wp_stage) >>
|
|
57
|
+
space >>
|
|
58
|
+
(
|
|
59
|
+
(str("TR") >> space) |
|
|
60
|
+
(str("TS") >> space) |
|
|
61
|
+
(str("SRD") >> space)
|
|
62
|
+
).maybe.as(:wp_type) >>
|
|
63
|
+
wp_number >>
|
|
64
|
+
(space >> edition).maybe
|
|
65
|
+
end
|
|
66
|
+
|
|
83
67
|
# Working programme numbers can be digits or TC names
|
|
84
68
|
rule(:wp_number) do
|
|
85
69
|
# TC-style: SYCSMARTENERGY-1, SyCLVDC-125
|
|
@@ -152,13 +136,8 @@ module Pubid
|
|
|
152
136
|
end
|
|
153
137
|
|
|
154
138
|
rule(:number) do
|
|
155
|
-
#
|
|
156
|
-
|
|
157
|
-
# and class-matches the IEC index. Must come before the IECEE [A-Z]{2,4} branch,
|
|
158
|
-
# which would otherwise match "DIR" alone and leave the trailing tokens unconsumed.
|
|
159
|
-
(str("DIR") >> (space >> match('[A-Z\d]').repeat(1)).repeat) |
|
|
160
|
-
# Special case for VIM publication
|
|
161
|
-
str("VIM") |
|
|
139
|
+
# Special case for VIM publication
|
|
140
|
+
str("VIM") |
|
|
162
141
|
# Special case for SYMBOL publication
|
|
163
142
|
str("SYMBOL") |
|
|
164
143
|
# IECEx TRF version notation: 62784v1a_ds, 62784v1A
|
|
@@ -179,16 +158,12 @@ module Pubid
|
|
|
179
158
|
end
|
|
180
159
|
|
|
181
160
|
rule(:date) do
|
|
182
|
-
# :2005-02 or
|
|
183
|
-
# e.g. IEC 60050:--, also accepted as the em-dash variant IEC 60050:—)
|
|
161
|
+
# :2005-02 or optional for DB without date
|
|
184
162
|
(str(":") | dash) >>
|
|
185
|
-
(
|
|
186
|
-
(
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
(dash >> day_digits).maybe
|
|
190
|
-
).as(:date)
|
|
191
|
-
)
|
|
163
|
+
(year_digits >>
|
|
164
|
+
(dash >> month_digits).maybe >>
|
|
165
|
+
(dash >> day_digits).maybe
|
|
166
|
+
).as(:date)
|
|
192
167
|
end
|
|
193
168
|
|
|
194
169
|
rule(:part_and_subpart) do
|
|
@@ -276,14 +251,14 @@ module Pubid
|
|
|
276
251
|
# IEC 60695-2-1/1:1994 (sheet 1 from year 1994)
|
|
277
252
|
# IEC 60695-2-1/1 (sheet 1 without year)
|
|
278
253
|
rule(:sheet_identifier) do
|
|
279
|
-
identifier_copublishers_no_third.as(:
|
|
254
|
+
identifier_copublishers_no_third.as(:base_identifier) >>
|
|
280
255
|
(sheet_notation | sheet_notation_no_year)
|
|
281
256
|
end
|
|
282
257
|
|
|
283
258
|
# Sheet identifier followed by supplement: base/sheet/supplement
|
|
284
259
|
# IEC 60695-2-1/1:1994/COR1:1995
|
|
285
260
|
rule(:sheet_supplement_identifier) do
|
|
286
|
-
identifier_copublishers_no_third.as(:
|
|
261
|
+
identifier_copublishers_no_third.as(:base_identifier) >>
|
|
287
262
|
sheet_notation >>
|
|
288
263
|
str("/") >> supplement_type_with_stage >>
|
|
289
264
|
space? >> second_part >> third_part
|
|
@@ -297,22 +272,16 @@ module Pubid
|
|
|
297
272
|
# EXV = Example version
|
|
298
273
|
# PAC = Package
|
|
299
274
|
# PRV = Preview version
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
str("CSV") |
|
|
275
|
+
rule(:vap_suffix) do
|
|
276
|
+
space >> (
|
|
277
|
+
str("CSV") |
|
|
304
278
|
str("CMV") |
|
|
305
279
|
str("RLV") |
|
|
306
280
|
str("SER") |
|
|
307
281
|
str("EXV") |
|
|
308
282
|
str("PAC") |
|
|
309
283
|
str("PRV")
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
# One or more VAP codes joined by "-", captured whole, e.g. "CSV" or
|
|
313
|
-
# "EXV-CMV"; the builder splits it into the VapIdentifier `vap` array.
|
|
314
|
-
rule(:vap_suffix) do
|
|
315
|
-
space >> (vap_code >> (str("-") >> vap_code).repeat).as(:vap_suffix)
|
|
284
|
+
).as(:vap_suffix)
|
|
316
285
|
end
|
|
317
286
|
|
|
318
287
|
# Database suffix: " DB"
|
|
@@ -378,13 +347,13 @@ module Pubid
|
|
|
378
347
|
# ISO/IEC 17025:2017 handles copublisher in copublishers rule
|
|
379
348
|
# We handle this in identifier_copublishers already
|
|
380
349
|
rule(:joint_identifier) do
|
|
381
|
-
identifier_copublishers_no_third.as(:
|
|
350
|
+
identifier_copublishers_no_third.as(:base_identifier) >>
|
|
382
351
|
space? >> str("|") >> space? >>
|
|
383
352
|
scope { iso_identifier }.as(:joint_identifier)
|
|
384
353
|
end
|
|
385
354
|
|
|
386
355
|
rule(:iso_identifier) do
|
|
387
|
-
|
|
356
|
+
Iso::Parser.new.identifier
|
|
388
357
|
end
|
|
389
358
|
|
|
390
359
|
rule(:supplement_type_with_stage) do
|
|
@@ -406,7 +375,7 @@ module Pubid
|
|
|
406
375
|
|
|
407
376
|
# IEC 60038:2009/Amd 1:2011
|
|
408
377
|
rule(:supplement_identifier_no_third) do
|
|
409
|
-
identifier_copublishers_no_third.as(:
|
|
378
|
+
identifier_copublishers_no_third.as(:base_identifier) >>
|
|
410
379
|
str("/") >> supplement_type_with_stage >>
|
|
411
380
|
space? >> second_part
|
|
412
381
|
end
|
|
@@ -417,7 +386,7 @@ module Pubid
|
|
|
417
386
|
|
|
418
387
|
# IEC 60038:2009/Amd 1:2011/Cor 1:2012
|
|
419
388
|
rule(:supplement_supplement_identifier) do
|
|
420
|
-
supplement_identifier_no_third.as(:
|
|
389
|
+
supplement_identifier_no_third.as(:base_identifier) >>
|
|
421
390
|
str("/") >> supplement_type_with_stage >>
|
|
422
391
|
space? >> second_part >> third_part
|
|
423
392
|
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
require_relative "identifiers/international_standard"
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
require_relative "identifiers/technical_specification"
|
|
4
|
+
require_relative "identifiers/technical_report"
|
|
5
|
+
require_relative "identifiers/publicly_available_specification"
|
|
6
|
+
require_relative "identifiers/guide"
|
|
7
|
+
require_relative "identifiers/amendment"
|
|
8
|
+
require_relative "identifiers/corrigendum"
|
|
9
|
+
require_relative "identifiers/fragment_identifier"
|
|
10
|
+
|
|
11
|
+
module Pubid
|
|
12
|
+
module Iec
|
|
13
|
+
class Scheme < Pubid::Scheme
|
|
14
|
+
class << self
|
|
15
|
+
def identifiers
|
|
16
|
+
[
|
|
17
|
+
Identifiers::InternationalStandard,
|
|
18
|
+
Identifiers::TechnicalSpecification,
|
|
19
|
+
Identifiers::TechnicalReport,
|
|
20
|
+
Identifiers::PubliclyAvailableSpecification,
|
|
21
|
+
Identifiers::Guide,
|
|
22
|
+
]
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def supplement_identifiers
|
|
26
|
+
[
|
|
27
|
+
Identifiers::Amendment,
|
|
28
|
+
Identifiers::Corrigendum,
|
|
29
|
+
Identifiers::FragmentIdentifier,
|
|
30
|
+
]
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def typed_stages
|
|
34
|
+
identifiers.flat_map { |klass| klass::TYPED_STAGES }
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def supplement_typed_stages
|
|
38
|
+
supplement_identifiers.flat_map { |klass| klass::TYPED_STAGES }
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def locate_typed_stage_by_abbr(abbr)
|
|
42
|
+
abbr = "" if abbr.nil?
|
|
43
|
+
|
|
44
|
+
typed_stage = (typed_stages + supplement_typed_stages).detect do |ts|
|
|
45
|
+
ts.abbr.include?(abbr)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
unless typed_stage
|
|
49
|
+
raise ArgumentError,
|
|
50
|
+
"Unknown type abbreviation: '#{abbr}'"
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
typed_stage
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def locate_identifier_klass_by_type_code(type_code)
|
|
57
|
+
identifier_klass = (identifiers + supplement_identifiers).detect do |klass|
|
|
58
|
+
klass.type[:key].to_s == type_code.to_s
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
unless identifier_klass
|
|
62
|
+
raise ArgumentError,
|
|
63
|
+
"Unknown type code: #{type_code}"
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
identifier_klass
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -1,19 +1,25 @@
|
|
|
1
|
+
require_relative "identifier"
|
|
1
2
|
# frozen_string_literal: true
|
|
3
|
+
require_relative "../components/typed_stage"
|
|
4
|
+
require_relative "urn_generator"
|
|
2
5
|
|
|
3
6
|
module Pubid
|
|
4
7
|
module Iec
|
|
5
8
|
class SingleIdentifier < Identifier
|
|
6
|
-
|
|
7
|
-
# reconstructs the published state on from_hash.
|
|
8
|
-
attribute :typed_stage, ::Pubid::Components::TypedStage,
|
|
9
|
-
default: -> { self.class.published_typed_stage }
|
|
9
|
+
attribute :typed_stage, Components::TypedStage
|
|
10
10
|
|
|
11
11
|
# Generate URN for this identifier
|
|
12
12
|
#
|
|
13
13
|
# @return [String] URN representation
|
|
14
14
|
|
|
15
|
-
def to_s(
|
|
16
|
-
|
|
15
|
+
def to_s(lang: :en, lang_single: false, with_edition: false)
|
|
16
|
+
[].tap do |parts|
|
|
17
|
+
parts << publisher_portion(lang: lang)
|
|
18
|
+
parts << number_portion(lang_single: lang_single)
|
|
19
|
+
parts << edition_portion(lang: lang) if with_edition
|
|
20
|
+
end.compact.join(" ").tap do |s|
|
|
21
|
+
s << language_portion(lang_single: lang_single) if languages&.any?
|
|
22
|
+
end
|
|
17
23
|
end
|
|
18
24
|
|
|
19
25
|
def publisher_portion(lang: :en)
|
|
@@ -28,14 +34,16 @@ module Pubid
|
|
|
28
34
|
publisher.body
|
|
29
35
|
end
|
|
30
36
|
|
|
31
|
-
#
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
# Add type abbreviation if present
|
|
38
|
+
if typed_stage && !typed_stage.abbreviation.empty?
|
|
39
|
+
abbr = typed_stage.abbreviation
|
|
40
|
+
# For copublishers or empty abbr, use space; otherwise use slash
|
|
41
|
+
pub_string += if copublishers&.any? || abbr == ""
|
|
42
|
+
(abbr == "" ? "" : " #{abbr}")
|
|
43
|
+
else
|
|
44
|
+
"/#{abbr}"
|
|
45
|
+
end
|
|
46
|
+
end
|
|
39
47
|
|
|
40
48
|
pub_string
|
|
41
49
|
end
|
|
@@ -46,7 +54,7 @@ module Pubid
|
|
|
46
54
|
(part ? "-#{part}" : ""),
|
|
47
55
|
(subpart ? "-#{subpart}" : ""),
|
|
48
56
|
(stage_iteration ? ".#{stage_iteration}" : ""),
|
|
49
|
-
(date ? ":#{date.
|
|
57
|
+
(date ? ":#{date.year}" : ""),
|
|
50
58
|
].join
|
|
51
59
|
end
|
|
52
60
|
|