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
|
@@ -5,28 +5,34 @@ require "lutaml/model"
|
|
|
5
5
|
module Pubid
|
|
6
6
|
module Cie
|
|
7
7
|
module Identifiers
|
|
8
|
-
# Corrigendum identifier for CIE
|
|
9
|
-
#
|
|
10
|
-
# corrigendum applies to a supplement (CIE 198-SP1.4:2011/Cor1:2013).
|
|
11
|
-
# The "/CorN:year" is a clean trailing suffix on the base's rendering.
|
|
8
|
+
# Corrigendum identifier for CIE
|
|
9
|
+
# Handles /CorN notation with recursive base parsing
|
|
12
10
|
# Examples: CIE 232:2019/Cor1:2020, CIE 198-SP1.4:2011/Cor1:2013
|
|
13
11
|
class Corrigendum < SupplementIdentifier
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
attribute :
|
|
12
|
+
attribute :base_number, :string
|
|
13
|
+
attribute :base_year, :string
|
|
14
|
+
attribute :base_supplement, :string # If base is a supplement
|
|
15
|
+
attribute :base_supplement_part, :string # Part of supplement
|
|
16
|
+
attribute :cor_number, :string
|
|
17
|
+
attribute :cor_year, :string
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
end
|
|
19
|
+
def to_s
|
|
20
|
+
# Build base identifier string
|
|
21
|
+
result = "CIE #{base_number}"
|
|
23
22
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
# Add supplement notation if base is a supplement
|
|
24
|
+
if base_supplement
|
|
25
|
+
result += "-SP#{base_supplement}"
|
|
26
|
+
result += ".#{base_supplement_part}" if base_supplement_part
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Add base year with colon
|
|
30
|
+
result += ":#{base_year}" if base_year
|
|
31
|
+
|
|
32
|
+
# Add corrigendum with slash and colon
|
|
33
|
+
result += "/Cor#{cor_number}:#{cor_year}"
|
|
27
34
|
|
|
28
|
-
|
|
29
|
-
annotate_plain_render("#{base}/Cor#{number}:#{year}", **opts)
|
|
35
|
+
result
|
|
30
36
|
end
|
|
31
37
|
end
|
|
32
38
|
end
|
|
@@ -9,31 +9,31 @@ module Pubid
|
|
|
9
9
|
# Represents CIE/IEC dual published standards
|
|
10
10
|
# Example: CIE S 009:2002/IEC 62471:2006
|
|
11
11
|
class DualPublished < SingleIdentifier
|
|
12
|
-
include CodeAttributes # flat number/part/iteration/part_separator + #code_string
|
|
13
|
-
|
|
14
12
|
attribute :s_prefix, :boolean, default: -> { false }
|
|
13
|
+
attribute :code, Components::Code
|
|
15
14
|
attribute :iec_identifier, :string # IEC portion as string
|
|
16
15
|
|
|
17
|
-
def to_s
|
|
16
|
+
def to_s
|
|
18
17
|
parts = ["CIE"]
|
|
19
18
|
|
|
20
19
|
# S prefix
|
|
21
20
|
parts << "S" if s_prefix
|
|
22
21
|
|
|
23
22
|
# Code
|
|
24
|
-
parts <<
|
|
23
|
+
parts << code.to_s if code
|
|
25
24
|
|
|
26
25
|
result = parts.join(" ")
|
|
27
26
|
|
|
28
27
|
# Date
|
|
29
28
|
if year
|
|
30
|
-
|
|
29
|
+
separator = date_separator == "colon" ? ":" : "-"
|
|
30
|
+
result += "#{separator}#{year}"
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
# IEC portion with slash separator
|
|
34
34
|
result += "/IEC #{iec_identifier}" if iec_identifier
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
result
|
|
37
37
|
end
|
|
38
38
|
end
|
|
39
39
|
end
|
|
@@ -12,25 +12,24 @@ module Pubid
|
|
|
12
12
|
# CIE S 014-4/E2007 - part with dash + language
|
|
13
13
|
# CIE S 008/E:2001 (ISO 8995-1:2002(E)) - language with colon year
|
|
14
14
|
class Identical < SingleIdentifier
|
|
15
|
-
include CodeAttributes # flat number/part/iteration/part_separator + #code_string
|
|
16
|
-
|
|
17
15
|
attribute :s_prefix, :boolean, default: -> { false }
|
|
16
|
+
attribute :code, Components::Code
|
|
18
17
|
attribute :language, Components::Language
|
|
19
18
|
attribute :iso_reference, :string # The ISO identifier in parentheses
|
|
20
19
|
|
|
21
|
-
def to_s
|
|
20
|
+
def to_s
|
|
22
21
|
parts = ["CIE"]
|
|
23
22
|
|
|
24
23
|
# S prefix
|
|
25
24
|
parts << "S" if s_prefix
|
|
26
25
|
|
|
27
26
|
# Code
|
|
28
|
-
parts <<
|
|
27
|
+
parts << code.to_s if code
|
|
29
28
|
|
|
30
29
|
result = parts.join(" ")
|
|
31
30
|
|
|
32
31
|
# Language + Year combined for slash formats before ISO reference
|
|
33
|
-
if language && (language.format == "slash_colon" || (language.format == "slash" && year &&
|
|
32
|
+
if language && (language.format == "slash_colon" || (language.format == "slash" && year && date_separator != "slash"))
|
|
34
33
|
# Render /E:YYYY or /EYYYY (language with year, no separate date separator)
|
|
35
34
|
result += if language.format == "slash_colon"
|
|
36
35
|
"/#{language.code}:#{year}" # /E:2001
|
|
@@ -40,12 +39,13 @@ module Pubid
|
|
|
40
39
|
elsif language && language.format == "slash"
|
|
41
40
|
# Language without year: /E
|
|
42
41
|
result += "/#{language.code}"
|
|
43
|
-
elsif year &&
|
|
42
|
+
elsif year && date_separator == "slash"
|
|
44
43
|
# Legacy slash-year format without language: /1998
|
|
45
44
|
result += "/#{year}"
|
|
46
45
|
elsif year
|
|
47
|
-
# Standard date with separator
|
|
48
|
-
|
|
46
|
+
# Standard date with separator (colon or dash)
|
|
47
|
+
separator = date_separator == "colon" ? ":" : "-"
|
|
48
|
+
result += "#{separator}#{year}"
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
# Language (parenthetical) after date
|
|
@@ -56,7 +56,7 @@ module Pubid
|
|
|
56
56
|
# ISO reference in parentheses
|
|
57
57
|
result += " (ISO #{iso_reference})" if iso_reference
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
result
|
|
60
60
|
end
|
|
61
61
|
end
|
|
62
62
|
end
|
|
@@ -8,14 +8,13 @@ module Pubid
|
|
|
8
8
|
# Joint published identifier for CIE
|
|
9
9
|
# Handles CIE ISO, CIE IEC, CIE ISO/CIE patterns
|
|
10
10
|
class JointPublished < SingleIdentifier
|
|
11
|
-
include CodeAttributes # flat number/part/iteration/part_separator + #code_string
|
|
12
|
-
|
|
13
11
|
attribute :copublisher, :string # "ISO", "IEC", or "ISO/CIE"
|
|
12
|
+
attribute :code, Components::Code
|
|
14
13
|
attribute :language, Components::Language
|
|
15
14
|
attribute :doc_type, :string # "TR" for Technical Report
|
|
16
15
|
attribute :stage, :string # "DIS" for draft stage
|
|
17
16
|
|
|
18
|
-
def to_s
|
|
17
|
+
def to_s
|
|
19
18
|
parts = ["CIE", copublisher]
|
|
20
19
|
|
|
21
20
|
# Document type (TR)
|
|
@@ -25,26 +24,27 @@ module Pubid
|
|
|
25
24
|
parts << stage if stage
|
|
26
25
|
|
|
27
26
|
# Code (number-part) - special handling for IEC dot separator
|
|
28
|
-
if
|
|
29
|
-
code_str =
|
|
27
|
+
if code
|
|
28
|
+
code_str = code.to_s
|
|
30
29
|
# For IEC copublisher, if code has a part, use dot not slash/dash
|
|
31
|
-
if copublisher == "IEC" && part
|
|
32
|
-
code_str = "#{number}.#{part}"
|
|
30
|
+
if copublisher == "IEC" && code.part
|
|
31
|
+
code_str = "#{code.number}.#{code.part}"
|
|
33
32
|
end
|
|
34
33
|
parts << code_str
|
|
35
34
|
end
|
|
36
35
|
|
|
37
36
|
result = parts.join(" ")
|
|
38
37
|
|
|
39
|
-
# Date -
|
|
38
|
+
# Date - use the actual captured separator
|
|
40
39
|
if year
|
|
41
|
-
|
|
40
|
+
separator = date_separator == "colon" ? ":" : "-"
|
|
41
|
+
result += "#{separator}#{year}"
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
# Language (always parenthetical for joint published)
|
|
45
45
|
result += language.to_s if language
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
result
|
|
48
48
|
end
|
|
49
49
|
end
|
|
50
50
|
end
|
|
@@ -8,52 +8,22 @@ module Pubid
|
|
|
8
8
|
# Standard identifier for CIE
|
|
9
9
|
# Handles both legacy (pre-2001) and current (2001+) styles
|
|
10
10
|
class Standard < SingleIdentifier
|
|
11
|
-
include CodeAttributes # flat number/part/iteration/part_separator + #code_string
|
|
12
|
-
|
|
13
11
|
attribute :s_prefix, :boolean, default: -> { false }
|
|
14
|
-
|
|
15
|
-
# canonicalized away for every non-D standard (round-trip contract).
|
|
16
|
-
attribute :d_prefix, :boolean, default: -> { false }
|
|
12
|
+
attribute :code, Components::Code
|
|
17
13
|
attribute :language, Components::Language
|
|
18
14
|
attribute :stage, :string # DIS, DS
|
|
19
15
|
|
|
20
|
-
def to_s
|
|
21
|
-
annotate_plain_render(render_plain, **opts)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
# CIE Standard distinguishes S-prefixed standards (`CIE S 017`) from
|
|
25
|
-
# plain (`CIE 015`), D-prefixed (`CIE D001`), and DIS-staged. The
|
|
26
|
-
# generic mr_type looks at typed_stage, which CIE doesn't use, so
|
|
27
|
-
# without this override the `S`/`D`/stage marker would be lost in MR.
|
|
28
|
-
def mr_type
|
|
29
|
-
return stage.downcase if stage
|
|
30
|
-
return "d" if d_prefix
|
|
31
|
-
return "s" if s_prefix
|
|
32
|
-
|
|
33
|
-
nil
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
private
|
|
37
|
-
|
|
38
|
-
# The plain composition, extracted verbatim from `to_s`. It has two
|
|
39
|
-
# early returns (the slash_colon language form and the legacy
|
|
40
|
-
# bare slash-year form), and `to_s` needs a single exit to wrap.
|
|
41
|
-
def render_plain
|
|
16
|
+
def to_s
|
|
42
17
|
parts = ["CIE"]
|
|
43
18
|
|
|
44
19
|
# Stage (DIS/DS) before code if present
|
|
45
20
|
parts << stage if stage
|
|
46
21
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
parts << "D#{code_string}"
|
|
50
|
-
else
|
|
51
|
-
# S prefix
|
|
52
|
-
parts << "S" if s_prefix
|
|
22
|
+
# S prefix
|
|
23
|
+
parts << "S" if s_prefix
|
|
53
24
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
end
|
|
25
|
+
# Code
|
|
26
|
+
parts << code.to_s if code
|
|
57
27
|
|
|
58
28
|
# Build initial result from parts
|
|
59
29
|
result = parts.join(" ")
|
|
@@ -69,15 +39,10 @@ module Pubid
|
|
|
69
39
|
return result # Year already added
|
|
70
40
|
end
|
|
71
41
|
|
|
72
|
-
# Bare slash-year (legacy, no language): CIE S 007/1998
|
|
73
|
-
if year && style == "slash"
|
|
74
|
-
result += "/#{year}"
|
|
75
|
-
return result
|
|
76
|
-
end
|
|
77
|
-
|
|
78
42
|
# Date with separator (for non-slash-colon formats)
|
|
79
43
|
if year
|
|
80
|
-
|
|
44
|
+
separator = date_separator == "colon" ? ":" : "-"
|
|
45
|
+
result += "#{separator}#{year}"
|
|
81
46
|
end
|
|
82
47
|
|
|
83
48
|
# Language (parenthetical formats) - comes after date
|
|
@@ -5,41 +5,39 @@ require "lutaml/model"
|
|
|
5
5
|
module Pubid
|
|
6
6
|
module Cie
|
|
7
7
|
module Identifiers
|
|
8
|
-
# Supplement identifier for CIE
|
|
9
|
-
#
|
|
10
|
-
# inserted after the base number, so to_s renders from the base's parts.
|
|
8
|
+
# Supplement identifier for CIE
|
|
9
|
+
# Handles -SPN and -SPN.P notation with recursive base parsing
|
|
11
10
|
# Examples: CIE 121-SP1:2009, CIE 198-SP1.4:2011, CIE DIS 025-SP1/E:2019
|
|
12
11
|
class Supplement < SupplementIdentifier
|
|
13
|
-
|
|
14
|
-
attribute :
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
def supplement_year
|
|
22
|
-
base&.year
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def to_s(**opts)
|
|
26
|
-
b = base
|
|
12
|
+
attribute :base_number, :string
|
|
13
|
+
attribute :supplement_number, :string # "1", "2"
|
|
14
|
+
attribute :supplement_part, :string # "1" in "SP1.1", "4" in "SP1.4"
|
|
15
|
+
attribute :year, :string
|
|
16
|
+
attribute :stage, :string # "DIS", "DS"
|
|
17
|
+
attribute :language, Components::Language
|
|
18
|
+
|
|
19
|
+
def to_s
|
|
27
20
|
parts = ["CIE"]
|
|
28
|
-
parts << b.stage if b.respond_to?(:stage) && b.stage
|
|
29
21
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
22
|
+
# Stage if present (DIS/DS)
|
|
23
|
+
parts << stage if stage
|
|
24
|
+
|
|
25
|
+
# Build base number and supplement
|
|
33
26
|
result = parts.join(" ")
|
|
27
|
+
result += " #{base_number}-SP#{supplement_number}"
|
|
34
28
|
|
|
35
|
-
#
|
|
36
|
-
|
|
37
|
-
|
|
29
|
+
# Add part if present (e.g., ".4" in "SP1.4")
|
|
30
|
+
result += ".#{supplement_part}" if supplement_part
|
|
31
|
+
|
|
32
|
+
# Add language with slash if present (before year)
|
|
33
|
+
if language && language.format == "slash_colon"
|
|
34
|
+
result += "/#{language.code}"
|
|
38
35
|
end
|
|
39
36
|
|
|
40
|
-
#
|
|
41
|
-
result += ":#{
|
|
42
|
-
|
|
37
|
+
# Add year with colon (supplements always use current style)
|
|
38
|
+
result += ":#{year}" if year
|
|
39
|
+
|
|
40
|
+
result
|
|
43
41
|
end
|
|
44
42
|
end
|
|
45
43
|
end
|
|
@@ -8,15 +8,11 @@ module Pubid
|
|
|
8
8
|
# Tutorial Bundle identifier for CIE
|
|
9
9
|
# Special text-based identifier
|
|
10
10
|
# Example: CIE Tutorials Bundle 1
|
|
11
|
-
#
|
|
12
|
-
# The ordinal ("1") is the bundle's own +number+ (also the relaton-index
|
|
13
|
-
# root key); there is no separate document, so no nested base.
|
|
14
11
|
class TutorialBundle < SingleIdentifier
|
|
15
|
-
|
|
16
|
-
attribute :number, :string
|
|
12
|
+
attribute :bundle_number, :string
|
|
17
13
|
|
|
18
|
-
def to_s
|
|
19
|
-
|
|
14
|
+
def to_s
|
|
15
|
+
"CIE Tutorials Bundle #{bundle_number}"
|
|
20
16
|
end
|
|
21
17
|
end
|
|
22
18
|
end
|
|
@@ -3,14 +3,12 @@
|
|
|
3
3
|
module Pubid
|
|
4
4
|
module Cie
|
|
5
5
|
module Identifiers
|
|
6
|
-
autoload :CodeAttributes, "#{__dir__}/identifiers/code_attributes"
|
|
7
6
|
autoload :Bundle, "#{__dir__}/identifiers/bundle"
|
|
8
7
|
autoload :Conference, "#{__dir__}/identifiers/conference"
|
|
9
8
|
autoload :Corrigendum, "#{__dir__}/identifiers/corrigendum"
|
|
10
9
|
autoload :DualPublished, "#{__dir__}/identifiers/dual_published"
|
|
11
10
|
autoload :Identical, "#{__dir__}/identifiers/identical"
|
|
12
11
|
autoload :JointPublished, "#{__dir__}/identifiers/joint_published"
|
|
13
|
-
autoload :Proceedings, "#{__dir__}/identifiers/proceedings"
|
|
14
12
|
autoload :Standard, "#{__dir__}/identifiers/standard"
|
|
15
13
|
autoload :Supplement, "#{__dir__}/identifiers/supplement"
|
|
16
14
|
autoload :TutorialBundle, "#{__dir__}/identifiers/tutorial_bundle"
|
data/lib/pubid/cie/parser.rb
CHANGED
|
@@ -6,7 +6,7 @@ module Pubid
|
|
|
6
6
|
module Cie
|
|
7
7
|
# Parser for CIE identifiers
|
|
8
8
|
# Handles dual-style system (legacy vs current)
|
|
9
|
-
class Parser < ::
|
|
9
|
+
class Parser < Parslet::Parser
|
|
10
10
|
# Basic building blocks
|
|
11
11
|
rule(:space) { str(" ") }
|
|
12
12
|
rule(:space?) { space.maybe }
|
|
@@ -135,50 +135,9 @@ module Pubid
|
|
|
135
135
|
(str("FDIS") | str("DIS") | str("DS")) >> space
|
|
136
136
|
end
|
|
137
137
|
|
|
138
|
-
# Document type (TR for Technical Report
|
|
138
|
+
# Document type (TR for Technical Report)
|
|
139
139
|
rule(:doc_type) do
|
|
140
|
-
|
|
141
|
-
end
|
|
142
|
-
|
|
143
|
-
# Proceedings paper code: 1+ uppercase letters (OP, PO, PP, WP, IP, P, ...)
|
|
144
|
-
# Deliberately generic (open set); greedy letters then digits.
|
|
145
|
-
rule(:paper_code) do
|
|
146
|
-
match("[A-Z]").repeat(1).as(:paper_code)
|
|
147
|
-
end
|
|
148
|
-
|
|
149
|
-
# Techstreet opaque conference variant: /<lowercase-alnum slug>
|
|
150
|
-
# Charset kept lowercase-alnum so it can't collide with the uppercase
|
|
151
|
-
# /E, /Cor, /IEC tails or the self.parse language gsub.
|
|
152
|
-
rule(:variant_slug) do
|
|
153
|
-
slash >> match("[0-9a-z]").repeat(1).as(:variant)
|
|
154
|
-
end
|
|
155
|
-
|
|
156
|
-
# Conference proceedings paper (x-prefixed): CIE x043-OP01
|
|
157
|
-
rule(:conf_proceedings) do
|
|
158
|
-
str("CIE") >> space >> str("x") >> digits.as(:conf_number) >>
|
|
159
|
-
dash >> paper_code >> digits.as(:paper_number)
|
|
160
|
-
end
|
|
161
|
-
|
|
162
|
-
# Standalone proceedings paper: CIE OP02 1-5
|
|
163
|
-
rule(:standalone_proceedings) do
|
|
164
|
-
str("CIE") >> space >> paper_code >> digits.as(:paper_number) >>
|
|
165
|
-
space >> (digits >> dash >> digits).as(:page_range)
|
|
166
|
-
end
|
|
167
|
-
|
|
168
|
-
# D-series: CIE D001-2006 / CIE D002:2004
|
|
169
|
-
rule(:d_series_identifier) do
|
|
170
|
-
str("CIE") >> space >> str("D").as(:d_prefix) >> digits.as(:number) >> date
|
|
171
|
-
end
|
|
172
|
-
|
|
173
|
-
# Standard with bare slash-year (no language letter): CIE S 007/1998
|
|
174
|
-
# Uses a narrow number(+iteration) pattern rather than the full code rule
|
|
175
|
-
# so code_with_part_slash doesn't greedily consume the /year.
|
|
176
|
-
rule(:standard_with_slash_year) do
|
|
177
|
-
str("CIE") >> space >>
|
|
178
|
-
stage_code.maybe.as(:stage) >>
|
|
179
|
-
s_prefix.maybe.as(:s_prefix) >>
|
|
180
|
-
(digits.as(:number) >> (dot >> digits.as(:iteration)).maybe) >>
|
|
181
|
-
slash >> year_digits.as(:slash_year)
|
|
140
|
+
str("TR") # Don't consume trailing space
|
|
182
141
|
end
|
|
183
142
|
|
|
184
143
|
# DIS stage with supplement pattern (e.g., DIS 025-SP1/E:2019)
|
|
@@ -198,14 +157,12 @@ module Pubid
|
|
|
198
157
|
stage_code.maybe.as(:stage) >>
|
|
199
158
|
s_prefix.maybe.as(:s_prefix) >>
|
|
200
159
|
code >>
|
|
201
|
-
# Language can come BEFORE date, AFTER date, or both
|
|
202
|
-
# The whole date group is optional so a bare "CIE 015" (no year)
|
|
203
|
-
# parses with year left nil (partial reference for relaton matching).
|
|
160
|
+
# Language can come BEFORE date, AFTER date, or both
|
|
204
161
|
(
|
|
205
162
|
(language >> date).as(:lang_before) |
|
|
206
163
|
(date >> language.maybe).as(:date_then_lang) |
|
|
207
164
|
date
|
|
208
|
-
)
|
|
165
|
+
)
|
|
209
166
|
end
|
|
210
167
|
|
|
211
168
|
# Standard identifier without ISO reference but with language-year (CIE S 014-4/E:2007)
|
|
@@ -224,9 +181,7 @@ module Pubid
|
|
|
224
181
|
digits.as(:conf_number) >>
|
|
225
182
|
date >>
|
|
226
183
|
# Optional amendment
|
|
227
|
-
(space >> str("Amendment") >> space >> digits.as(:amd_number)).maybe
|
|
228
|
-
# Optional techstreet opaque /slug variant
|
|
229
|
-
variant_slug.maybe
|
|
184
|
+
(space >> str("Amendment") >> space >> digits.as(:amd_number)).maybe
|
|
230
185
|
end
|
|
231
186
|
|
|
232
187
|
# Joint published with ISO
|
|
@@ -365,10 +320,6 @@ module Pubid
|
|
|
365
320
|
corrigendum_identifier |
|
|
366
321
|
supplement_identifier |
|
|
367
322
|
standard_with_language_year |
|
|
368
|
-
standard_with_slash_year |
|
|
369
|
-
d_series_identifier |
|
|
370
|
-
conf_proceedings |
|
|
371
|
-
standalone_proceedings |
|
|
372
323
|
legacy_code_with_year | # Before standard to catch 001-1980 pattern
|
|
373
324
|
conference_identifier |
|
|
374
325
|
standard_identifier
|
|
@@ -0,0 +1,64 @@
|
|
|
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
|
|
@@ -18,52 +18,13 @@ module Pubid
|
|
|
18
18
|
# - Identical (identical to ISO publications)
|
|
19
19
|
# - TutorialBundle (tutorial bundles)
|
|
20
20
|
class SingleIdentifier < Identifier
|
|
21
|
-
#
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
attribute :publisher, :string, default: -> { "CIE" }
|
|
25
|
-
|
|
26
|
-
attribute :year, :string
|
|
27
|
-
# The number<->year separator character, derived from +style+ (the sole
|
|
28
|
-
# separator field; there is no date_separator attribute):
|
|
29
|
-
# current -> ":" legacy -> "-" slash -> "/"
|
|
30
|
-
def date_sep_char
|
|
31
|
-
{ "legacy" => "-", "slash" => "/" }.fetch(style, ":")
|
|
21
|
+
# CIE uses a fixed publisher string
|
|
22
|
+
def publisher
|
|
23
|
+
"CIE"
|
|
32
24
|
end
|
|
33
25
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
# component, so the base's `:year`->`:date` remap would nil the unused
|
|
37
|
-
# inherited `date` and leave `year` intact. Call super (preserving the
|
|
38
|
-
# nested-identifier recursion), then nil `year` directly so a year-less
|
|
39
|
-
# CIE ref is a year wildcard under `matches?(ignore: [:year])`.
|
|
40
|
-
#
|
|
41
|
-
# Known limit: `style` (which also encodes the era: current<->colon,
|
|
42
|
-
# legacy<->dash) is intentionally NOT wildcarded, so bare `CIE 015`
|
|
43
|
-
# (always current) matches a colon-dated full but not a legacy dash-dated
|
|
44
|
-
# (pre-2001) one. Partial-ref scope targets modern colon forms.
|
|
45
|
-
def exclude(*args)
|
|
46
|
-
result = super
|
|
47
|
-
result.year = nil if args.include?(:year) || args.include?(:date)
|
|
48
|
-
result
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
# CIE stores its publication year in its own `year` string attribute
|
|
52
|
-
# (not a Components::Date), and uses a single-Language component with
|
|
53
|
-
# multiple formats. Override the lossless MR template so `CIE S 017/E:2011`
|
|
54
|
-
# round-trips as `CIE.S.017.E.2011` rather than losing the type letter,
|
|
55
|
-
# language, and year (issue #142). Subclasses add the `s_prefix` and
|
|
56
|
-
# `language` attributes that this template reads.
|
|
57
|
-
def mr_year
|
|
58
|
-
year&.to_s
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def mr_languages
|
|
62
|
-
return nil unless respond_to?(:language) && language
|
|
63
|
-
|
|
64
|
-
# Lowercase + filename-safe: drop the leading `/` (path-unsafe).
|
|
65
|
-
language.code.to_s.downcase
|
|
66
|
-
end
|
|
26
|
+
attribute :year, :string
|
|
27
|
+
attribute :date_separator, :string # "dash" or "colon"
|
|
67
28
|
end
|
|
68
29
|
end
|
|
69
30
|
end
|
|
@@ -2,38 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
module Pubid
|
|
4
4
|
module Cie
|
|
5
|
-
# Base class for CIE supplement identifiers
|
|
5
|
+
# Base class for CIE supplement identifiers
|
|
6
|
+
# Single Responsibility: Provide common attributes for supplement documents
|
|
6
7
|
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
# rather than
|
|
10
|
-
# participate in the shared base_document / drop_supplements / matches?
|
|
11
|
-
# vocabulary relaton uses to match a citation to its base standard.
|
|
8
|
+
# Supplement identifiers modify or extend base identifiers.
|
|
9
|
+
# Unlike ISO/IEC, CIE supplements store base information as flat
|
|
10
|
+
# string attributes rather than recursive Identifier objects.
|
|
12
11
|
#
|
|
13
|
-
#
|
|
12
|
+
# Classes inheriting from SupplementIdentifier:
|
|
13
|
+
# - Corrigendum (corrigenda with /CorN notation)
|
|
14
|
+
# - Supplement (supplements with -SPN notation)
|
|
15
|
+
#
|
|
16
|
+
# Architecture Note:
|
|
17
|
+
# CIE uses a different architectural approach than ISO/IEC:
|
|
18
|
+
# - ISO/IEC: Recursive base_identifier objects
|
|
19
|
+
# - CIE: Flat string attributes (base_number, base_year, etc.)
|
|
14
20
|
class SupplementIdentifier < Identifier
|
|
15
|
-
attribute
|
|
16
|
-
#
|
|
17
|
-
|
|
18
|
-
# (Not the index key — relaton keys on #root.number, the base standard's.)
|
|
19
|
-
attribute :number, :string
|
|
20
|
-
|
|
21
|
-
# Uniform, class-agnostic supplement interface (shared by Supplement and
|
|
22
|
-
# Corrigendum) so callers never special-case corrigenda. +supplement_type+
|
|
23
|
-
# and +supplement_year+ are defined per subclass.
|
|
24
|
-
def supplement_number
|
|
25
|
-
number
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
# The underlying standard, with supplement layer(s) peeled recursively.
|
|
29
|
-
def base_document
|
|
30
|
-
base&.base_document || self
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
# Dropping one supplement layer yields the wrapped base identifier.
|
|
34
|
-
def drop_supplements
|
|
35
|
-
base || self
|
|
36
|
-
end
|
|
21
|
+
# Common attribute for all CIE identifiers
|
|
22
|
+
# Values: "current" (colon date separator) or "legacy" (dash date separator)
|
|
23
|
+
attribute :style, :string
|
|
37
24
|
end
|
|
38
25
|
end
|
|
39
26
|
end
|