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,35 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Bipm
|
|
5
|
-
module Identifiers
|
|
6
|
-
# A Consultative-Committee guideline document (realization / calibration
|
|
7
|
-
# guide). Printed from its short docnumber form, the relaton index key.
|
|
8
|
-
#
|
|
9
|
-
# Printed forms (all round-trip):
|
|
10
|
-
# "CCL-GD-MeP-1" metre realization guide
|
|
11
|
-
# "CCEM-GD-RSI-1" ampere realization guide
|
|
12
|
-
# "CCM-GD-RSI-2" kilogram dissemination guide
|
|
13
|
-
#
|
|
14
|
-
# Shape: <committee>-GD-<kind>-<number>, where <kind> is "MeP" (mise en
|
|
15
|
-
# pratique guide) or "RSI" (réalisation du SI guide). The committee reuses
|
|
16
|
-
# the shared `group` attribute; the trailing sequence reuses `number`.
|
|
17
|
-
class Guide < Identifier
|
|
18
|
-
def self.type
|
|
19
|
-
{ key: :guide, web: :guide, title: "Guide", short: "guide" }
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
# MR: `bipm.guide.<group>-<kind>-<number>`. Both the committee and the
|
|
23
|
-
# kind are needed — the trailing sequence restarts per committee, so
|
|
24
|
-
# `CCL-GD-MeP-1` and `CCEM-GD-RSI-1` both carry number "1".
|
|
25
|
-
def mr_type
|
|
26
|
-
"guide"
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def mr_number_with_part
|
|
30
|
-
mr_slug(group, guide_kind, number)
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Bipm
|
|
5
|
-
module Identifiers
|
|
6
|
-
# A committee meeting (proceedings). Printed with a naive ordinal derived
|
|
7
|
-
# from the first number component's last digit (as the source data
|
|
8
|
-
# generates it: "11st", "12nd", "13rd"), and ranges keep that first
|
|
9
|
-
# component's ordinal ("100-1th").
|
|
10
|
-
#
|
|
11
|
-
# Printed forms (all round-trip):
|
|
12
|
-
# "CGPM 17th Meeting (1983)" English (language nil)
|
|
13
|
-
# "CCAUV 11st Meeting (2017)" naive ordinal
|
|
14
|
-
# "CIPM 100-1th Meeting (2011)" range
|
|
15
|
-
# "CCAUV 10<sup>e</sup> réunion (2015)" French (language "F")
|
|
16
|
-
class Meeting < Identifier
|
|
17
|
-
def self.type
|
|
18
|
-
{ key: :meeting, web: :meeting, title: "Meeting", short: "meeting" }
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
# English ordinal suffix from the first number component's last digit.
|
|
22
|
-
# Naive (matches the source data): 1→st, 2→nd, 3→rd, else→th — no
|
|
23
|
-
# 11/12/13 exception, so "11" → "11st", and a range "22-23" → "22-23nd".
|
|
24
|
-
def self.ordinal_suffix(number)
|
|
25
|
-
first = number.to_s.split("-").first.to_s
|
|
26
|
-
case first[-1]
|
|
27
|
-
when "1" then "st"
|
|
28
|
-
when "2" then "nd"
|
|
29
|
-
when "3" then "rd"
|
|
30
|
-
else "th"
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
# "15" → "15th", "100-1" → "100-1th".
|
|
35
|
-
def ordinal_en
|
|
36
|
-
"#{number}#{self.class.ordinal_suffix(number)}"
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# MR: `bipm.meeting.<group>-<number>.<year>`. The English and French
|
|
40
|
-
# spellings of one meeting collapse onto the same slug on purpose.
|
|
41
|
-
def mr_type
|
|
42
|
-
"meeting"
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
# The group has to be in the number segment or the 17th CGPM and the
|
|
46
|
-
# 17th CIPM meeting would share a slug.
|
|
47
|
-
def mr_number_with_part
|
|
48
|
-
mr_slug(group, number)
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Bipm
|
|
5
|
-
module Identifiers
|
|
6
|
-
# A mise en pratique (MEP) of an SI base-unit definition, and the related
|
|
7
|
-
# BIPM report variant. Printed from the short docnumber form that relaton
|
|
8
|
-
# uses as the index key — NOT the long "Appendix 2 Part x" content string.
|
|
9
|
-
#
|
|
10
|
-
# Printed forms (all round-trip):
|
|
11
|
-
# "SI MEP S1" standard MEP code (unit letter + number)
|
|
12
|
-
# "SI MEP KUPRTM" alphabetic MEP code
|
|
13
|
-
# "Rapport BIPM-2019/05" report variant (mep_code absent, report_code set)
|
|
14
|
-
class Mep < Identifier
|
|
15
|
-
def self.type
|
|
16
|
-
{ key: :mep, web: :mep, title: "Mise en pratique", short: "mep" }
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
# MR: `bipm.mep.<code>`. Exactly one of `mep_code` / `report_code` is
|
|
20
|
-
# set; the report code carries a `/` that `mr_slug` sanitises away. The
|
|
21
|
-
# full-content "Appendix 2 Part x" tail is the same document, so it
|
|
22
|
-
# stays out of the slug.
|
|
23
|
-
def mr_type
|
|
24
|
-
"mep"
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def mr_number_with_part
|
|
28
|
-
mr_slug(mep_code || report_code)
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Bipm
|
|
5
|
-
module Identifiers
|
|
6
|
-
# A Metrologia journal reference, at volume, volume+issue, or
|
|
7
|
-
# volume+issue+article granularity. Issue may be alphanumeric ("1A") and
|
|
8
|
-
# the article keeps its printed form ("06007", "S138").
|
|
9
|
-
#
|
|
10
|
-
# Printed forms (all round-trip):
|
|
11
|
-
# "Metrologia 51" volume only
|
|
12
|
-
# "Metrologia 1 1" volume + issue
|
|
13
|
-
# "Metrologia 51 1 128" volume + issue + article
|
|
14
|
-
class MetrologiaArticle < Identifier
|
|
15
|
-
GROUP = "Metrologia"
|
|
16
|
-
|
|
17
|
-
def self.type
|
|
18
|
-
{ key: :metrologia_article, web: :metrologia_article,
|
|
19
|
-
title: "Metrologia Article", short: "metrologia-article" }
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
# MR: `bipm.metrologia[.<volume>[-<issue>[-<article>]]]`.
|
|
23
|
-
# The volume IS the index key, so it is derived from `number` instead
|
|
24
|
-
# of being stored beside it — storing both would duplicate the same
|
|
25
|
-
# value in every one of the 6,204 published article rows. Kept as an
|
|
26
|
-
# Integer because that is the public type consumers already read
|
|
27
|
-
# (`Relaton::Bipm::Bibliography#id_hash` calls `pubid.volume`).
|
|
28
|
-
#
|
|
29
|
-
# Safe as a plain method only because `volume` is no longer a lutaml
|
|
30
|
-
# attribute anywhere in the hierarchy — a method that shadows a
|
|
31
|
-
# generated accessor corrupts attribute resolution (CLAUDE.md).
|
|
32
|
-
def volume
|
|
33
|
-
number&.to_i
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def mr_type
|
|
37
|
-
"metrologia"
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# `number` is only the volume (it is the CLUSTERING relaton-index key),
|
|
41
|
-
# so per-article distinctness has to come from here: the full triple.
|
|
42
|
-
def mr_number_with_part
|
|
43
|
-
mr_slug(volume, issue, article)
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Bipm
|
|
5
|
-
module Identifiers
|
|
6
|
-
# The SI Brochure — a single bespoke record. The English form drops the
|
|
7
|
-
# "sur le SI" phrase the French form carries.
|
|
8
|
-
#
|
|
9
|
-
# Printed forms (both round-trip):
|
|
10
|
-
# "BIPM SI Brochure 9e v3.01 (2019/2024, E)"
|
|
11
|
-
# "BIPM SI Brochure sur le SI 9e v3.01 (2019/2024, F)"
|
|
12
|
-
class SiBrochure < Identifier
|
|
13
|
-
def self.type
|
|
14
|
-
{ key: :si_brochure, web: :si_brochure,
|
|
15
|
-
title: "SI Brochure", short: "si-brochure" }
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
# MR: `bipm.si-brochure.<edition>-<version>[.<lang>]` for the brochure
|
|
19
|
-
# itself, `bipm.si-brochure.<variant>` for a derived product. Exactly
|
|
20
|
-
# one of `variant` / `edition` is set (the grammar guarantees it).
|
|
21
|
-
def mr_type
|
|
22
|
-
"si-brochure"
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
# The edition is folded in here rather than emitted through
|
|
26
|
-
# `mr_edition`, whose base implementation expects a Components::Edition.
|
|
27
|
-
def mr_number_with_part
|
|
28
|
-
variant ? mr_slug(variant) : mr_slug(edition, version)
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Bipm
|
|
5
|
-
# Namespace for concrete BIPM identifier types.
|
|
6
|
-
module Identifiers
|
|
7
|
-
autoload :CommitteeDocument, "#{__dir__}/identifiers/committee_document"
|
|
8
|
-
autoload :Guide, "#{__dir__}/identifiers/guide"
|
|
9
|
-
autoload :Meeting, "#{__dir__}/identifiers/meeting"
|
|
10
|
-
autoload :Mep, "#{__dir__}/identifiers/mep"
|
|
11
|
-
autoload :MetrologiaArticle, "#{__dir__}/identifiers/metrologia_article"
|
|
12
|
-
autoload :SiBrochure, "#{__dir__}/identifiers/si_brochure"
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
data/lib/pubid/bipm/parser.rb
DELETED
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "parslet"
|
|
4
|
-
|
|
5
|
-
module Pubid
|
|
6
|
-
module Bipm
|
|
7
|
-
# Parslet grammar for the four BIPM identifier families. The root branches
|
|
8
|
-
# by leading token / shape; each alternative is wrapped in a distinct key
|
|
9
|
-
# (:committee_short, :meeting_en, …) so the Builder can dispatch on the
|
|
10
|
-
# matched branch without re-inspecting the string.
|
|
11
|
-
#
|
|
12
|
-
# Group and type-word alternations are built from the shared vocabularies on
|
|
13
|
-
# {Identifier} (sorted longest-first so e.g. "CCTF" is tried before "CCT").
|
|
14
|
-
class Parser < ::Pubid::Parser::Grammar
|
|
15
|
-
# --- primitives ---
|
|
16
|
-
rule(:space) { str(" ") }
|
|
17
|
-
rule(:digits) { match["0-9"].repeat(1) }
|
|
18
|
-
rule(:alnum) { match["0-9A-Za-z"].repeat(1) }
|
|
19
|
-
# Number, preserved as a string: digits with optional hyphenated parts.
|
|
20
|
-
rule(:number) do
|
|
21
|
-
(digits >> (str("-") >> digits).repeat).as(:number)
|
|
22
|
-
end
|
|
23
|
-
rule(:year) { match["0-9"].repeat(4, 4).as(:year) }
|
|
24
|
-
# "E"/"F" as BIPM prints them, plus the two-letter codes consumer
|
|
25
|
-
# references use (longest first, so "EN" is never read as a bare "E").
|
|
26
|
-
rule(:lang) do
|
|
27
|
-
(str("EN") | str("FR") | match["EF"]).as(:language)
|
|
28
|
-
end
|
|
29
|
-
# "(YYYY)" or "(YYYY, E)"
|
|
30
|
-
rule(:year_paren) do
|
|
31
|
-
str("(") >> year >> (str(", ") >> lang).maybe >> str(")")
|
|
32
|
-
end
|
|
33
|
-
rule(:year_paren_nolang) { str("(") >> year >> str(")") }
|
|
34
|
-
|
|
35
|
-
# Longest-first alternation over a list of literal tokens, so a token that
|
|
36
|
-
# is a prefix of another (e.g. "CCT" of "CCTF") never shadows it.
|
|
37
|
-
def alternation(tokens)
|
|
38
|
-
tokens.sort_by { |t| -t.length }.map { |t| str(t) }.reduce(:|)
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
rule(:group) { alternation(Identifier::PARSEABLE_GROUPS).as(:group) }
|
|
42
|
-
|
|
43
|
-
rule(:type_abbrev) do
|
|
44
|
-
alternation(Identifier::TYPE_CODES).as(:type_word)
|
|
45
|
-
end
|
|
46
|
-
rule(:type_name_en) do
|
|
47
|
-
names = Identifier::TYPE_NAME_EN.values.uniq + ["Declaration"]
|
|
48
|
-
alternation(names).as(:type_word)
|
|
49
|
-
end
|
|
50
|
-
rule(:type_name_fr) do
|
|
51
|
-
names = Identifier::TYPE_NAME_FR.values.uniq + ["Déclaration"]
|
|
52
|
-
alternation(names).as(:type_word)
|
|
53
|
-
end
|
|
54
|
-
rule(:connective) { str("de la") | str("du") }
|
|
55
|
-
rule(:ordinal) { str("st") | str("nd") | str("rd") | str("th") }
|
|
56
|
-
# The word naming a meeting in French. BIPM prints it lowercase; a
|
|
57
|
-
# consumer reference capitalizes it, as relaton's `Id::TYPES` does.
|
|
58
|
-
rule(:meeting_word_fr) { str("Réunion") | str("réunion") }
|
|
59
|
-
|
|
60
|
-
# --- committee documents ---
|
|
61
|
-
# The trailing "(YYYY)" date is optional (`.maybe`) so a partial reference
|
|
62
|
-
# that omits it — e.g. "CCTF REC 2" — still parses, leaving :year absent.
|
|
63
|
-
rule(:committee_short) do
|
|
64
|
-
(group >> space >> type_abbrev >>
|
|
65
|
-
(space >> number).maybe >> (space >> year_paren).maybe)
|
|
66
|
-
.as(:committee_short)
|
|
67
|
-
end
|
|
68
|
-
rule(:committee_long_en) do
|
|
69
|
-
(group >> space >> type_name_en >>
|
|
70
|
-
(space >> number).maybe >> (space >> year_paren_nolang).maybe)
|
|
71
|
-
.as(:committee_long_en)
|
|
72
|
-
end
|
|
73
|
-
rule(:committee_long_fr) do
|
|
74
|
-
(type_name_fr >> (space >> number).maybe >> space >>
|
|
75
|
-
connective >> space >> group >> (space >> year_paren_nolang).maybe)
|
|
76
|
-
.as(:committee_long_fr)
|
|
77
|
-
end
|
|
78
|
-
# Loose consumer form: a French type name in the English (group-leading)
|
|
79
|
-
# word order, e.g. "CIPM Décision 101-1 (2012)". BIPM never prints this,
|
|
80
|
-
# so it renders back as the canonical "Décision 101-1 du CIPM (2012)".
|
|
81
|
-
# Tried after `committee_long_en`, which is what keeps the words both
|
|
82
|
-
# languages share ("Action", "Statement") English.
|
|
83
|
-
rule(:committee_group_fr) do
|
|
84
|
-
(group >> space >> type_name_fr >>
|
|
85
|
-
(space >> number).maybe >> (space >> year_paren_nolang).maybe)
|
|
86
|
-
.as(:committee_long_fr)
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
# Bare MRA-interpretation form: a group directly followed by a document
|
|
90
|
-
# number with no type word (e.g. "CIPM 2005-06"). Tried last, so typed
|
|
91
|
-
# committee documents and meetings always win; only fires when a digit
|
|
92
|
-
# follows the group and the string is fully consumed.
|
|
93
|
-
rule(:committee_bare) do
|
|
94
|
-
(group >> space >> number >> (space >> year_paren).maybe)
|
|
95
|
-
.as(:committee_bare)
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
# --- meetings ---
|
|
99
|
-
# Canonical: "<group> <n><ordinal> Meeting [(YYYY)]". The second branch is
|
|
100
|
-
# the loose consumer word order "<group> Meeting <n>", which relaton's
|
|
101
|
-
# bespoke grammar accepts; both build the same tree, so the loose form
|
|
102
|
-
# renders back in the canonical spelling.
|
|
103
|
-
rule(:meeting_en) do
|
|
104
|
-
((group >> space >> number >> ordinal >> space >> str("Meeting") >>
|
|
105
|
-
(space >> year_paren).maybe) |
|
|
106
|
-
(group >> space >> str("Meeting") >> space >> number >>
|
|
107
|
-
(space >> year_paren).maybe)).as(:meeting_en)
|
|
108
|
-
end
|
|
109
|
-
# Canonical: "<group> <n><sup>e</sup> réunion [(YYYY)]". The second and
|
|
110
|
-
# third branches are the loose consumer spellings — the plain "e" ordinal
|
|
111
|
-
# and the "<group> Réunion <n>" word order.
|
|
112
|
-
rule(:meeting_fr) do
|
|
113
|
-
((group >> space >> number >> str("<sup>e</sup>") >> space >>
|
|
114
|
-
str("réunion") >> (space >> year_paren).maybe) |
|
|
115
|
-
(group >> space >> number >> str("e") >> space >> meeting_word_fr >>
|
|
116
|
-
(space >> year_paren).maybe) |
|
|
117
|
-
(group >> space >> meeting_word_fr >> space >> number >>
|
|
118
|
-
(space >> year_paren).maybe)).as(:meeting_fr)
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
# --- Metrologia journal ---
|
|
122
|
-
rule(:metrologia) do
|
|
123
|
-
(str("Metrologia") >>
|
|
124
|
-
(space >> digits.as(:volume) >>
|
|
125
|
-
(space >> alnum.as(:issue) >>
|
|
126
|
-
(space >> alnum.as(:article)).maybe).maybe).maybe).as(:metrologia)
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
# --- SI Brochure ---
|
|
130
|
-
rule(:edition) { (digits >> str("e")).as(:edition) }
|
|
131
|
-
rule(:version) { (str("v") >> match["0-9."].repeat(1)).as(:version) }
|
|
132
|
-
rule(:years) { (digits >> (str("/") >> digits).maybe).as(:years) }
|
|
133
|
-
# The "BIPM " prefix is optional, as it is on the variant and section
|
|
134
|
-
# rules: `si-brochure.yaml` stores the docnumber WITHOUT it, and
|
|
135
|
-
# `Relaton::Bipm::Bibliography.search` strips a leading "BIPM " before it
|
|
136
|
-
# ever reaches pubid. Either spelling renders back with the prefix.
|
|
137
|
-
rule(:si_brochure) do
|
|
138
|
-
((str("BIPM SI Brochure") | str("SI Brochure")) >> space >>
|
|
139
|
-
(str("sur le SI") >> space).maybe >>
|
|
140
|
-
edition >> space >> version >> space >>
|
|
141
|
-
str("(") >> years >> str(", ") >> lang >> str(")")).as(:si_brochure)
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
# --- SI Brochure appendices / derived products ---
|
|
145
|
-
# The full primary-docidentifier content the relaton crawler indexes by,
|
|
146
|
-
# e.g. "BIPM SI Brochure Appendix 3" / "…Concise" / "…FAQ". The bare
|
|
147
|
-
# "SI Brochure Appendix 3" docnumber form is accepted too (rendered back
|
|
148
|
-
# with the "BIPM " prefix, matching the base SI Brochure record).
|
|
149
|
-
rule(:brochure_variant) do
|
|
150
|
-
((str("Appendix") >> space >> digits) | str("Concise") | str("FAQ"))
|
|
151
|
-
.as(:variant)
|
|
152
|
-
end
|
|
153
|
-
rule(:si_brochure_variant) do
|
|
154
|
-
((str("BIPM SI Brochure") | str("SI Brochure")) >> space >>
|
|
155
|
-
brochure_variant).as(:si_brochure_variant)
|
|
156
|
-
end
|
|
157
|
-
|
|
158
|
-
# Bare and sectioned SI Brochure references: "SI Brochure",
|
|
159
|
-
# "SI Brochure Part 1". Neither names an edition, so both are partial
|
|
160
|
-
# references whose `number` stays nil and which wildcard every edition —
|
|
161
|
-
# the same reading a date-less "CCTF REC 2" gets. "Part N" points at a
|
|
162
|
-
# section INSIDE the brochure, not a separate record, so it rides in the
|
|
163
|
-
# shared `part` attribute and stays out of the index key, exactly as the
|
|
164
|
-
# MEP/guide "Part N.M" tail does. Listed after the edition and variant
|
|
165
|
-
# rules for readability, not for correctness: Parslet threads
|
|
166
|
-
# `consume_all` down through an alternation, so an alternative that
|
|
167
|
-
# matches only a PREFIX ("SI Brochure" of "SI Brochure Concise") counts
|
|
168
|
-
# as a failure and the next one is tried whatever the order. Order only
|
|
169
|
-
# decides between two alternatives that BOTH consume the whole input.
|
|
170
|
-
rule(:si_brochure_section) do
|
|
171
|
-
((str("BIPM SI Brochure") | str("SI Brochure")) >>
|
|
172
|
-
(space >> str("Part") >> space >> digits.as(:part)).maybe)
|
|
173
|
-
.as(:si_brochure_section)
|
|
174
|
-
end
|
|
175
|
-
|
|
176
|
-
# Shared "Appendix N [Annex N] Part N[.M]" tail carried by the full
|
|
177
|
-
# docidentifier content of MEPs and CC guides (the "Appendix 2 Part 1.1"
|
|
178
|
-
# or "Appendix 2 Annex 2 Part 1" suffix on "BIPM SI MEP …" etc.).
|
|
179
|
-
rule(:appendix_part) do
|
|
180
|
-
str("Appendix") >> space >> digits.as(:appendix) >>
|
|
181
|
-
(space >> str("Annex") >> space >> digits.as(:annex)).maybe >>
|
|
182
|
-
space >> str("Part") >> space >>
|
|
183
|
-
(digits >> (str(".") >> digits).maybe).as(:part)
|
|
184
|
-
end
|
|
185
|
-
|
|
186
|
-
# --- Mises en pratique (MEP) ---
|
|
187
|
-
# Two index-relevant spellings: the short docnumber ("SI MEP S1",
|
|
188
|
-
# "Rapport BIPM-2019/05") and the full "BIPM …" primary-docidentifier
|
|
189
|
-
# content the crawler actually keys on ("BIPM SI MEP S1 Appendix 2 Part
|
|
190
|
-
# 1.1"). The renderer reproduces whichever the identifier carries.
|
|
191
|
-
rule(:mep_code) { match["0-9A-Za-z"].repeat(1).as(:mep_code) }
|
|
192
|
-
rule(:report_code) do
|
|
193
|
-
(str("BIPM-") >> digits >> str("/") >> digits).as(:report_code)
|
|
194
|
-
end
|
|
195
|
-
rule(:mep_body) do
|
|
196
|
-
(str("SI MEP") >> space >> mep_code) |
|
|
197
|
-
(str("Rapport") >> space >> report_code)
|
|
198
|
-
end
|
|
199
|
-
rule(:mep) do
|
|
200
|
-
((str("BIPM") >> space >> mep_body >> space >> appendix_part) |
|
|
201
|
-
mep_body).as(:mep)
|
|
202
|
-
end
|
|
203
|
-
|
|
204
|
-
# --- Consultative-Committee guides ---
|
|
205
|
-
# "<committee>-GD-<kind>-<number>" (e.g. "CCL-GD-MeP-1"), and its full
|
|
206
|
-
# "BIPM … Appendix 2 Part 2.2" content form. <kind> is "MeP" (mise en
|
|
207
|
-
# pratique) or "RSI" (réalisation du SI). Reuses the shared `group`
|
|
208
|
-
# (committee) and `number` (trailing sequence).
|
|
209
|
-
rule(:guide_kind) { (str("MeP") | str("RSI")).as(:guide_kind) }
|
|
210
|
-
rule(:guide_body) do
|
|
211
|
-
group >> str("-GD-") >> guide_kind >> str("-") >> digits.as(:number)
|
|
212
|
-
end
|
|
213
|
-
rule(:guide) do
|
|
214
|
-
((str("BIPM") >> space >> guide_body >> space >> appendix_part) |
|
|
215
|
-
guide_body).as(:guide)
|
|
216
|
-
end
|
|
217
|
-
|
|
218
|
-
# After a leading group token, the shape after the first space decides:
|
|
219
|
-
# a digit → meeting; a type word → committee.
|
|
220
|
-
rule(:group_leading) do
|
|
221
|
-
meeting_en | meeting_fr | committee_short | committee_long_en |
|
|
222
|
-
committee_group_fr | committee_bare
|
|
223
|
-
end
|
|
224
|
-
|
|
225
|
-
rule(:identifier) do
|
|
226
|
-
metrologia | si_brochure | si_brochure_variant | si_brochure_section |
|
|
227
|
-
mep | guide | committee_long_fr | group_leading
|
|
228
|
-
end
|
|
229
|
-
|
|
230
|
-
root(:identifier)
|
|
231
|
-
|
|
232
|
-
def self.parse(input)
|
|
233
|
-
new.parse(input)
|
|
234
|
-
end
|
|
235
|
-
end
|
|
236
|
-
end
|
|
237
|
-
end
|
data/lib/pubid/bipm/renderer.rb
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Bipm
|
|
5
|
-
# Human-readable renderer for the four BIPM identifier families. Registered
|
|
6
|
-
# as the `:human` format and invoked via `render(format: :human)`.
|
|
7
|
-
class Renderer < ::Pubid::Renderers::Base
|
|
8
|
-
def render(context: nil, **_opts)
|
|
9
|
-
case @id
|
|
10
|
-
when Identifiers::CommitteeDocument then render_committee(@id)
|
|
11
|
-
when Identifiers::Meeting then render_meeting(@id)
|
|
12
|
-
when Identifiers::MetrologiaArticle then render_metrologia(@id)
|
|
13
|
-
when Identifiers::SiBrochure then render_si_brochure(@id)
|
|
14
|
-
when Identifiers::Mep then render_mep(@id)
|
|
15
|
-
when Identifiers::Guide then render_guide(@id)
|
|
16
|
-
else
|
|
17
|
-
raise "Cannot render BIPM identifier: #{@id.class}"
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
private
|
|
22
|
-
|
|
23
|
-
# Optional " <number>" segment (with a leading space), or "" when absent.
|
|
24
|
-
def number_segment(id)
|
|
25
|
-
id.number ? " #{id.number}" : ""
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
# Optional " (<year>[, <lang>])" segment (with a leading space), or ""
|
|
29
|
-
# when the year is absent (a partial reference). `lang` is the trailing
|
|
30
|
-
# ", E"/", F" suffix carried only by the short committee form.
|
|
31
|
-
def year_segment(id, lang: "")
|
|
32
|
-
id.year ? " (#{id.year}#{lang})" : ""
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def render_committee(id)
|
|
36
|
-
return render_committee_long(id) if id.long?
|
|
37
|
-
|
|
38
|
-
# short abbreviated key form. The type word is optional — the bare MRA
|
|
39
|
-
# form (e.g. "CIPM 2005-06") has no type_code, so omit it (and its
|
|
40
|
-
# leading space) rather than emit a double space.
|
|
41
|
-
lang = id.language ? ", #{id.language}" : ""
|
|
42
|
-
type = id.type_code ? " #{id.type_code}" : ""
|
|
43
|
-
"#{id.group}#{type}#{number_segment(id)}" \
|
|
44
|
-
"#{year_segment(id, lang: lang)}"
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def render_committee_long(id)
|
|
48
|
-
if id.language == "F"
|
|
49
|
-
name = Identifier::TYPE_NAME_FR[id.type_code]
|
|
50
|
-
conn = Identifier.french_connective(id.group)
|
|
51
|
-
"#{name}#{number_segment(id)} #{conn} #{id.group}#{year_segment(id)}"
|
|
52
|
-
else
|
|
53
|
-
name = Identifier::TYPE_NAME_EN[id.type_code]
|
|
54
|
-
"#{id.group} #{name}#{number_segment(id)}#{year_segment(id)}"
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def render_meeting(id)
|
|
59
|
-
if id.language == "F"
|
|
60
|
-
"#{id.group} #{id.number}<sup>e</sup> réunion#{year_segment(id)}"
|
|
61
|
-
else
|
|
62
|
-
"#{id.group} #{id.ordinal_en} Meeting#{year_segment(id)}"
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def render_metrologia(id)
|
|
67
|
-
result = +"Metrologia"
|
|
68
|
-
result << " #{id.volume}" if id.volume
|
|
69
|
-
result << " #{id.issue}" if id.issue
|
|
70
|
-
result << " #{id.article}" if id.article
|
|
71
|
-
result
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
def render_si_brochure(id)
|
|
75
|
-
# Appendix / derived-product form indexed by relaton, keyed on the full
|
|
76
|
-
# "BIPM SI Brochure …" primary docidentifier content.
|
|
77
|
-
return "BIPM SI Brochure #{id.variant}" if id.variant
|
|
78
|
-
# Bare or sectioned reference: no edition means no version and no year
|
|
79
|
-
# to print either — just the brochure, optionally down to one part.
|
|
80
|
-
return "BIPM SI Brochure#{part_segment(id)}" unless id.edition
|
|
81
|
-
|
|
82
|
-
phrase = id.language == "F" ? "sur le SI " : ""
|
|
83
|
-
lang = id.language ? ", #{id.language}" : ""
|
|
84
|
-
"BIPM SI Brochure #{phrase}#{id.edition} #{id.version} " \
|
|
85
|
-
"(#{id.years}#{lang})"
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
# Optional " Part <n>" segment of an SI Brochure section reference.
|
|
89
|
-
def part_segment(id)
|
|
90
|
-
id.part ? " Part #{id.part}" : ""
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
# MEP: short docnumber ("SI MEP <code>" / "Rapport BIPM-YYYY/NN"), or the
|
|
94
|
-
# full "BIPM … Appendix N [Annex N] Part N.M" content the crawler keys on.
|
|
95
|
-
def render_mep(id)
|
|
96
|
-
body = id.report_code ? "Rapport #{id.report_code}" : "SI MEP #{id.mep_code}"
|
|
97
|
-
render_full_content(id, body)
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
# CC guide: short "<committee>-GD-<kind>-<number>", or its full
|
|
101
|
-
# "BIPM … Appendix N Part N.M" content form.
|
|
102
|
-
def render_guide(id)
|
|
103
|
-
body = "#{id.group}-GD-#{id.guide_kind}-#{id.number}"
|
|
104
|
-
render_full_content(id, body)
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
# Wrap a short body in the "BIPM … Appendix N [Annex N] Part N.M" content
|
|
108
|
-
# form when the identifier carries the appendix/part tail; otherwise emit
|
|
109
|
-
# the bare short body. `part` presence is what distinguishes the two.
|
|
110
|
-
def render_full_content(id, body)
|
|
111
|
-
return body unless id.part
|
|
112
|
-
|
|
113
|
-
annex = id.annex ? " Annex #{id.annex}" : ""
|
|
114
|
-
"BIPM #{body} Appendix #{id.appendix}#{annex} Part #{id.part}"
|
|
115
|
-
end
|
|
116
|
-
end
|
|
117
|
-
end
|
|
118
|
-
end
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Bipm
|
|
5
|
-
# Emits a URN carrying the canonical (language/form-neutral) document
|
|
6
|
-
# identity for each family:
|
|
7
|
-
# committee: urn:bipm:<group>:<type>:<number>:<year> (empty number seg
|
|
8
|
-
# when number-less)
|
|
9
|
-
# meeting: urn:bipm:<group>:meeting:<number>:<year>
|
|
10
|
-
# metrologia: urn:bipm:metrologia:<vol>[:<issue>[:<article>]]
|
|
11
|
-
# brochure: urn:bipm:si-brochure:<lang>:<edition>:<version>:<years>
|
|
12
|
-
class UrnGenerator < Pubid::UrnGenerator::Base
|
|
13
|
-
def generate
|
|
14
|
-
case identifier
|
|
15
|
-
when Identifiers::CommitteeDocument then committee
|
|
16
|
-
when Identifiers::Meeting then meeting
|
|
17
|
-
when Identifiers::MetrologiaArticle then metrologia
|
|
18
|
-
when Identifiers::SiBrochure then si_brochure
|
|
19
|
-
else
|
|
20
|
-
raise "Cannot build URN for BIPM identifier: #{identifier.class}"
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
private
|
|
25
|
-
|
|
26
|
-
def committee
|
|
27
|
-
id = identifier
|
|
28
|
-
# type_code is nil for the bare MRA form → empty type segment, mirroring
|
|
29
|
-
# the empty-number-segment convention for number-less documents.
|
|
30
|
-
parts = ["urn", "bipm", id.group.downcase,
|
|
31
|
-
id.type_code.to_s.downcase, id.number.to_s]
|
|
32
|
-
# A partial (date-less) reference drops the trailing year segment; a
|
|
33
|
-
# number-less-but-dated doc keeps its empty number segment.
|
|
34
|
-
parts << id.year if id.year
|
|
35
|
-
parts.join(":")
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def meeting
|
|
39
|
-
id = identifier
|
|
40
|
-
parts = ["urn", "bipm", id.group.downcase, "meeting", id.number.to_s]
|
|
41
|
-
parts << id.year if id.year
|
|
42
|
-
parts.join(":")
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def metrologia
|
|
46
|
-
parts = ["urn", "bipm", "metrologia", identifier.volume]
|
|
47
|
-
parts << identifier.issue if identifier.issue
|
|
48
|
-
parts << identifier.article if identifier.article
|
|
49
|
-
parts.join(":")
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def si_brochure
|
|
53
|
-
["urn", "bipm", "si-brochure", identifier.language.to_s.downcase,
|
|
54
|
-
identifier.edition, identifier.version, identifier.years].join(":")
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|