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
data/lib/pubid/w3c/builder.rb
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module W3c
|
|
5
|
-
# Turns the parse tree into a concrete identifier: picks the class from the
|
|
6
|
-
# leading maturity token and splits the captured remainder into slug + date.
|
|
7
|
-
class Builder
|
|
8
|
-
# Maturity token -> concrete identifier class name (resolved lazily so the
|
|
9
|
-
# Identifiers namespace need not be loaded at class-definition time).
|
|
10
|
-
TYPE_CLASSES = {
|
|
11
|
-
"NOTE" => "Note",
|
|
12
|
-
"DNOTE" => "DraftNote",
|
|
13
|
-
"WD" => "WorkingDraft",
|
|
14
|
-
"CR" => "CandidateRecommendation",
|
|
15
|
-
"CRD" => "CandidateRecommendationDraft",
|
|
16
|
-
"REC" => "Recommendation",
|
|
17
|
-
"PR" => "ProposedRecommendation",
|
|
18
|
-
"PER" => "ProposedEditedRecommendation",
|
|
19
|
-
"SPSD" => "SupersededRecommendation",
|
|
20
|
-
"OBSL" => "ObsoleteRecommendation",
|
|
21
|
-
}.freeze
|
|
22
|
-
|
|
23
|
-
# A trailing "-<digits>" group is the date only when the digit run is
|
|
24
|
-
# exactly 8 (YYYYMMDD), 6 (legacy YYMMDD) or 4 (legacy MMDD) wide. No real
|
|
25
|
-
# W3C slug ends in such a run, so this never mis-splits a slug that merely
|
|
26
|
-
# ends in a short digit run (e.g. "url-1", "ATAG10").
|
|
27
|
-
DATE_RE = /\A(.+)-(\d{8}|\d{6}|\d{4})\z/
|
|
28
|
-
|
|
29
|
-
def self.build(parsed_data)
|
|
30
|
-
new.build(parsed_data)
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def build(data)
|
|
34
|
-
number, date = split_date(data[:rest].to_s)
|
|
35
|
-
klass_for(data[:type]&.to_s).new(number: number, date: date)
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
private
|
|
39
|
-
|
|
40
|
-
def klass_for(type)
|
|
41
|
-
name = TYPE_CLASSES[type] || "Standard"
|
|
42
|
-
Identifiers.const_get(name)
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
# @return [Array(String, String|nil)] the slug and the optional date
|
|
46
|
-
def split_date(rest)
|
|
47
|
-
if (m = DATE_RE.match(rest))
|
|
48
|
-
[m[1], m[2]]
|
|
49
|
-
else
|
|
50
|
-
[rest, nil]
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
data/lib/pubid/w3c/identifier.rb
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module W3c
|
|
5
|
-
# Base class for every W3C identifier AND the flavor's parse/create entry
|
|
6
|
-
# point. Concrete identifiers under Pubid::W3c::Identifiers descend from
|
|
7
|
-
# this class (one per W3C maturity level), so a parsed W3C id is an
|
|
8
|
-
# instance of Pubid::W3c::Identifier.
|
|
9
|
-
#
|
|
10
|
-
# W3C identifiers are flat: a slug `number`, an optional publication `date`
|
|
11
|
-
# (kept verbatim as a string — width varies: 8-digit YYYYMMDD, or legacy
|
|
12
|
-
# 6-digit YYMMDD / 4-digit MMDD), and a document-type carried by the
|
|
13
|
-
# concrete class (its `type_prefix` returns the printed token, e.g. "WD").
|
|
14
|
-
class Identifier < ::Pubid::Identifier
|
|
15
|
-
# Document slug, e.g. "charmod", "css-backgrounds-3", "07-WebData".
|
|
16
|
-
#
|
|
17
|
-
# This is the relaton index key: Relaton::Index sorts and bsearches every
|
|
18
|
-
# row on `id.root.number.to_s`, and an empty key degrades that binary
|
|
19
|
-
# search to a linear scan over the whole index — silently, with no error.
|
|
20
|
-
# Every W3C identifier is its own root (the flavor has no supplement or
|
|
21
|
-
# wrapper type), so this attribute is always the key and must never be
|
|
22
|
-
# empty. It was named `code` before; there is no alias.
|
|
23
|
-
#
|
|
24
|
-
# It redefines the parent ::Pubid::Identifier's
|
|
25
|
-
# `attribute :number, Components::Code` as a plain :string. CLAUDE.md
|
|
26
|
-
# records that doing so on a class the concrete types INHERIT from can
|
|
27
|
-
# resolve against the parent definition nondeterministically under
|
|
28
|
-
# multi-flavor load (the IEEE lesson). That hazard does not apply to W3C's
|
|
29
|
-
# shape, and the reason is worth keeping: lutaml's `inherited` hook
|
|
30
|
-
# deep-dups the parent's attribute table into each subclass at
|
|
31
|
-
# class-definition time (serialize/initialization.rb#initialize_attrs), so
|
|
32
|
-
# a subclass holds a SNAPSHOT, not a live view. A base-level override is
|
|
33
|
-
# therefore safe iff every subclass body opens after this body has run —
|
|
34
|
-
# and Ruby resolves the superclass constant, running this file to
|
|
35
|
-
# completion, before opening any leaf body. That holds because this class
|
|
36
|
-
# lives in ONE file, in ONE class body, and is never reopened. Split it
|
|
37
|
-
# the way IEEE splits its base and a leaf can snapshot a half-built
|
|
38
|
-
# parent, silently reverting `number` to Components::Code. The `date`
|
|
39
|
-
# override below has relied on the same property since the flavor landed.
|
|
40
|
-
# spec/pubid/w3c/root_number_spec.rb pins it, and is only meaningful under
|
|
41
|
-
# the FULL suite.
|
|
42
|
-
attribute :number, :string
|
|
43
|
-
# Publication date verbatim, or nil. Overrides the base Components::Date
|
|
44
|
-
# attribute with a plain string (same mechanism JIS uses for `number`):
|
|
45
|
-
# W3C dates are opaque digit runs that must round-trip exactly, and are
|
|
46
|
-
# never re-parsed as calendar dates.
|
|
47
|
-
attribute :date, :string
|
|
48
|
-
|
|
49
|
-
# Polymorphic type map for lutaml::Model key_value (de)serialization: maps
|
|
50
|
-
# each subclass's polymorphic_name to its class name so a stored hash
|
|
51
|
-
# rebuilds the correct identifier type via from_hash.
|
|
52
|
-
W3C_TYPE_MAP = {
|
|
53
|
-
"pubid:w3c:standard" => "Pubid::W3c::Identifiers::Standard",
|
|
54
|
-
"pubid:w3c:note" => "Pubid::W3c::Identifiers::Note",
|
|
55
|
-
"pubid:w3c:draft-note" => "Pubid::W3c::Identifiers::DraftNote",
|
|
56
|
-
"pubid:w3c:working-draft" => "Pubid::W3c::Identifiers::WorkingDraft",
|
|
57
|
-
"pubid:w3c:candidate-recommendation" =>
|
|
58
|
-
"Pubid::W3c::Identifiers::CandidateRecommendation",
|
|
59
|
-
"pubid:w3c:candidate-recommendation-draft" =>
|
|
60
|
-
"Pubid::W3c::Identifiers::CandidateRecommendationDraft",
|
|
61
|
-
"pubid:w3c:recommendation" =>
|
|
62
|
-
"Pubid::W3c::Identifiers::Recommendation",
|
|
63
|
-
"pubid:w3c:proposed-recommendation" =>
|
|
64
|
-
"Pubid::W3c::Identifiers::ProposedRecommendation",
|
|
65
|
-
"pubid:w3c:proposed-edited-recommendation" =>
|
|
66
|
-
"Pubid::W3c::Identifiers::ProposedEditedRecommendation",
|
|
67
|
-
"pubid:w3c:superseded-recommendation" =>
|
|
68
|
-
"Pubid::W3c::Identifiers::SupersededRecommendation",
|
|
69
|
-
"pubid:w3c:obsolete-recommendation" =>
|
|
70
|
-
"Pubid::W3c::Identifiers::ObsoleteRecommendation",
|
|
71
|
-
}.freeze
|
|
72
|
-
|
|
73
|
-
key_value do
|
|
74
|
-
map "_type", to: :_type, polymorphic_map: W3C_TYPE_MAP
|
|
75
|
-
map "number", to: :number
|
|
76
|
-
map "date", to: :date
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
# Publisher is always "W3C". A plain constant (not a `publisher` method)
|
|
80
|
-
# so it doesn't shadow the inherited lutaml `publisher` attribute, which
|
|
81
|
-
# would otherwise fail serialization type validation.
|
|
82
|
-
PUBLISHER = "W3C"
|
|
83
|
-
|
|
84
|
-
# The printed document-type token (e.g. "WD"). nil for the bare-slug
|
|
85
|
-
# Standard form; concrete typed subclasses override it.
|
|
86
|
-
def type_prefix
|
|
87
|
-
nil
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
attr_reader :with_publisher
|
|
91
|
-
|
|
92
|
-
# Publication year derived from an 8-digit YYYYMMDD date, else nil. `date`
|
|
93
|
-
# is a plain string here (not a Components::Date), so the inherited
|
|
94
|
-
# `year` — which calls `date&.year` — would break; override it.
|
|
95
|
-
def year
|
|
96
|
-
return nil unless date.is_a?(::String) && date.length == 8
|
|
97
|
-
|
|
98
|
-
date[0, 4]
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
def to_s(with_publisher: true, **opts)
|
|
102
|
-
@with_publisher = with_publisher
|
|
103
|
-
render(format: :human, **opts)
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
# from_hash is the shared polymorphic dispatch on Pubid::Identifier;
|
|
107
|
-
# W3C_TYPE_MAP remains as the key_value polymorphic_map.
|
|
108
|
-
|
|
109
|
-
# Parse a W3C identifier string into an identifier object
|
|
110
|
-
# @param identifier [String] The W3C identifier string to parse
|
|
111
|
-
# @return [Identifier] The appropriate identifier object
|
|
112
|
-
# @raise [Pubid::Errors::ParseError] If parsing fails
|
|
113
|
-
def self.parse(identifier)
|
|
114
|
-
# Reject pathological inputs before they reach the parser
|
|
115
|
-
# (CodeQL rb/polynomial-redos barrier — inline .length by design).
|
|
116
|
-
unless identifier.is_a?(String)
|
|
117
|
-
raise Pubid::Errors::InvalidInputError,
|
|
118
|
-
Pubid::INPUT_NOT_A_STRING_MESSAGE
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
if identifier.length > Pubid::MAX_INPUT_LENGTH
|
|
122
|
-
raise Pubid::Errors::InvalidInputError, Pubid::INPUT_TOO_LONG_MESSAGE
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
parsed = Parser.parse(identifier)
|
|
126
|
-
Builder.build(parsed)
|
|
127
|
-
end
|
|
128
|
-
end
|
|
129
|
-
end
|
|
130
|
-
end
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module W3c
|
|
5
|
-
module Identifiers
|
|
6
|
-
# W3C Candidate Recommendation. Printed token: "CR".
|
|
7
|
-
# Example: "W3C CR-exi-20091208".
|
|
8
|
-
class CandidateRecommendation < Identifier
|
|
9
|
-
TYPED_STAGES = [
|
|
10
|
-
Pubid::Components::TypedStage.new(
|
|
11
|
-
code: :cr,
|
|
12
|
-
stage_code: :candidate_recommendation,
|
|
13
|
-
type_code: :cr,
|
|
14
|
-
abbr: ["CR"],
|
|
15
|
-
name: "Candidate Recommendation",
|
|
16
|
-
harmonized_stages: [],
|
|
17
|
-
),
|
|
18
|
-
].freeze
|
|
19
|
-
|
|
20
|
-
def self.type
|
|
21
|
-
{ key: :cr, web: :candidate_recommendation,
|
|
22
|
-
title: "Candidate Recommendation", short: "CR" }
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def type_prefix
|
|
26
|
-
"CR"
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module W3c
|
|
5
|
-
module Identifiers
|
|
6
|
-
# W3C Candidate Recommendation Draft. Printed token: "CRD".
|
|
7
|
-
# Example: "W3C CRD-accelerometer-20250212".
|
|
8
|
-
class CandidateRecommendationDraft < Identifier
|
|
9
|
-
TYPED_STAGES = [
|
|
10
|
-
Pubid::Components::TypedStage.new(
|
|
11
|
-
code: :crd,
|
|
12
|
-
stage_code: :candidate_recommendation_draft,
|
|
13
|
-
type_code: :crd,
|
|
14
|
-
abbr: ["CRD"],
|
|
15
|
-
name: "Candidate Recommendation Draft",
|
|
16
|
-
harmonized_stages: [],
|
|
17
|
-
),
|
|
18
|
-
].freeze
|
|
19
|
-
|
|
20
|
-
def self.type
|
|
21
|
-
{ key: :crd, web: :candidate_recommendation_draft,
|
|
22
|
-
title: "Candidate Recommendation Draft", short: "CRD" }
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def type_prefix
|
|
26
|
-
"CRD"
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module W3c
|
|
5
|
-
module Identifiers
|
|
6
|
-
# Draft W3C Note. Printed token: "DNOTE".
|
|
7
|
-
# Example: "W3C DNOTE-webcodecs-flac-codec-registration-20240419".
|
|
8
|
-
class DraftNote < Identifier
|
|
9
|
-
TYPED_STAGES = [
|
|
10
|
-
Pubid::Components::TypedStage.new(
|
|
11
|
-
code: :dnote,
|
|
12
|
-
stage_code: :draft_note,
|
|
13
|
-
type_code: :dnote,
|
|
14
|
-
abbr: ["DNOTE"],
|
|
15
|
-
name: "Draft W3C Note",
|
|
16
|
-
harmonized_stages: [],
|
|
17
|
-
),
|
|
18
|
-
].freeze
|
|
19
|
-
|
|
20
|
-
def self.type
|
|
21
|
-
{ key: :dnote, web: :draft_note, title: "Draft W3C Note",
|
|
22
|
-
short: "DNOTE" }
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def type_prefix
|
|
26
|
-
"DNOTE"
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module W3c
|
|
5
|
-
module Identifiers
|
|
6
|
-
# W3C Note (formerly Working Group / Interest Group Note).
|
|
7
|
-
# Printed token: "NOTE". Example: "W3C NOTE-xml-names".
|
|
8
|
-
class Note < Identifier
|
|
9
|
-
TYPED_STAGES = [
|
|
10
|
-
Pubid::Components::TypedStage.new(
|
|
11
|
-
code: :note,
|
|
12
|
-
stage_code: :note,
|
|
13
|
-
type_code: :note,
|
|
14
|
-
abbr: ["NOTE"],
|
|
15
|
-
name: "W3C Note",
|
|
16
|
-
harmonized_stages: [],
|
|
17
|
-
),
|
|
18
|
-
].freeze
|
|
19
|
-
|
|
20
|
-
def self.type
|
|
21
|
-
{ key: :note, web: :note, title: "W3C Note", short: "NOTE" }
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def type_prefix
|
|
25
|
-
"NOTE"
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module W3c
|
|
5
|
-
module Identifiers
|
|
6
|
-
# Obsolete W3C Recommendation. Printed token: "OBSL".
|
|
7
|
-
# Example: "W3C OBSL-widgets-apis-20181011".
|
|
8
|
-
class ObsoleteRecommendation < Identifier
|
|
9
|
-
TYPED_STAGES = [
|
|
10
|
-
Pubid::Components::TypedStage.new(
|
|
11
|
-
code: :obsl,
|
|
12
|
-
stage_code: :obsolete_recommendation,
|
|
13
|
-
type_code: :obsl,
|
|
14
|
-
abbr: ["OBSL"],
|
|
15
|
-
name: "Obsolete Recommendation",
|
|
16
|
-
harmonized_stages: [],
|
|
17
|
-
),
|
|
18
|
-
].freeze
|
|
19
|
-
|
|
20
|
-
def self.type
|
|
21
|
-
{ key: :obsl, web: :obsolete_recommendation,
|
|
22
|
-
title: "Obsolete Recommendation", short: "OBSL" }
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def type_prefix
|
|
26
|
-
"OBSL"
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module W3c
|
|
5
|
-
module Identifiers
|
|
6
|
-
# W3C Proposed Edited Recommendation. Printed token: "PER".
|
|
7
|
-
# Example: "W3C PER-rif-dtb-20121211".
|
|
8
|
-
class ProposedEditedRecommendation < Identifier
|
|
9
|
-
TYPED_STAGES = [
|
|
10
|
-
Pubid::Components::TypedStage.new(
|
|
11
|
-
code: :per,
|
|
12
|
-
stage_code: :proposed_edited_recommendation,
|
|
13
|
-
type_code: :per,
|
|
14
|
-
abbr: ["PER"],
|
|
15
|
-
name: "Proposed Edited Recommendation",
|
|
16
|
-
harmonized_stages: [],
|
|
17
|
-
),
|
|
18
|
-
].freeze
|
|
19
|
-
|
|
20
|
-
def self.type
|
|
21
|
-
{ key: :per, web: :proposed_edited_recommendation,
|
|
22
|
-
title: "Proposed Edited Recommendation", short: "PER" }
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def type_prefix
|
|
26
|
-
"PER"
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module W3c
|
|
5
|
-
module Identifiers
|
|
6
|
-
# W3C Proposed Recommendation. Printed token: "PR".
|
|
7
|
-
# Example: "W3C PR-InkML-20110510".
|
|
8
|
-
class ProposedRecommendation < Identifier
|
|
9
|
-
TYPED_STAGES = [
|
|
10
|
-
Pubid::Components::TypedStage.new(
|
|
11
|
-
code: :pr,
|
|
12
|
-
stage_code: :proposed_recommendation,
|
|
13
|
-
type_code: :pr,
|
|
14
|
-
abbr: ["PR"],
|
|
15
|
-
name: "Proposed Recommendation",
|
|
16
|
-
harmonized_stages: [],
|
|
17
|
-
),
|
|
18
|
-
].freeze
|
|
19
|
-
|
|
20
|
-
def self.type
|
|
21
|
-
{ key: :pr, web: :proposed_recommendation,
|
|
22
|
-
title: "Proposed Recommendation", short: "PR" }
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def type_prefix
|
|
26
|
-
"PR"
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module W3c
|
|
5
|
-
module Identifiers
|
|
6
|
-
# W3C Recommendation (a published standard). Printed token: "REC".
|
|
7
|
-
# Example: "W3C REC-ATAG10-20000203".
|
|
8
|
-
class Recommendation < Identifier
|
|
9
|
-
TYPED_STAGES = [
|
|
10
|
-
Pubid::Components::TypedStage.new(
|
|
11
|
-
code: :rec,
|
|
12
|
-
stage_code: :recommendation,
|
|
13
|
-
type_code: :rec,
|
|
14
|
-
abbr: ["REC"],
|
|
15
|
-
name: "Recommendation",
|
|
16
|
-
harmonized_stages: [],
|
|
17
|
-
),
|
|
18
|
-
].freeze
|
|
19
|
-
|
|
20
|
-
def self.type
|
|
21
|
-
{ key: :rec, web: :recommendation, title: "Recommendation",
|
|
22
|
-
short: "REC" }
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def type_prefix
|
|
26
|
-
"REC"
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module W3c
|
|
5
|
-
module Identifiers
|
|
6
|
-
# Bare-code W3C reference with no maturity token, e.g. "W3C 2dcontext",
|
|
7
|
-
# "W3C 07-WebData". The default type; carries no `type_prefix`.
|
|
8
|
-
class Standard < Identifier
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module W3c
|
|
5
|
-
module Identifiers
|
|
6
|
-
# Superseded W3C Recommendation. Printed token: "SPSD".
|
|
7
|
-
# Example: "W3C SPSD-2dcontext-20210128".
|
|
8
|
-
class SupersededRecommendation < Identifier
|
|
9
|
-
TYPED_STAGES = [
|
|
10
|
-
Pubid::Components::TypedStage.new(
|
|
11
|
-
code: :spsd,
|
|
12
|
-
stage_code: :superseded_recommendation,
|
|
13
|
-
type_code: :spsd,
|
|
14
|
-
abbr: ["SPSD"],
|
|
15
|
-
name: "Superseded Recommendation",
|
|
16
|
-
harmonized_stages: [],
|
|
17
|
-
),
|
|
18
|
-
].freeze
|
|
19
|
-
|
|
20
|
-
def self.type
|
|
21
|
-
{ key: :spsd, web: :superseded_recommendation,
|
|
22
|
-
title: "Superseded Recommendation", short: "SPSD" }
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def type_prefix
|
|
26
|
-
"SPSD"
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module W3c
|
|
5
|
-
module Identifiers
|
|
6
|
-
# W3C Working Draft. Printed token: "WD".
|
|
7
|
-
# Example: "W3C WD-charmod-19991129".
|
|
8
|
-
class WorkingDraft < Identifier
|
|
9
|
-
TYPED_STAGES = [
|
|
10
|
-
Pubid::Components::TypedStage.new(
|
|
11
|
-
code: :wd,
|
|
12
|
-
stage_code: :working_draft,
|
|
13
|
-
type_code: :wd,
|
|
14
|
-
abbr: ["WD"],
|
|
15
|
-
name: "Working Draft",
|
|
16
|
-
harmonized_stages: [],
|
|
17
|
-
),
|
|
18
|
-
].freeze
|
|
19
|
-
|
|
20
|
-
def self.type
|
|
21
|
-
{ key: :wd, web: :working_draft, title: "Working Draft", short: "WD" }
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def type_prefix
|
|
25
|
-
"WD"
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module W3c
|
|
5
|
-
module Identifiers
|
|
6
|
-
autoload :Standard, "#{__dir__}/identifiers/standard"
|
|
7
|
-
autoload :Note, "#{__dir__}/identifiers/note"
|
|
8
|
-
autoload :DraftNote, "#{__dir__}/identifiers/draft_note"
|
|
9
|
-
autoload :WorkingDraft, "#{__dir__}/identifiers/working_draft"
|
|
10
|
-
autoload :CandidateRecommendation,
|
|
11
|
-
"#{__dir__}/identifiers/candidate_recommendation"
|
|
12
|
-
autoload :CandidateRecommendationDraft,
|
|
13
|
-
"#{__dir__}/identifiers/candidate_recommendation_draft"
|
|
14
|
-
autoload :Recommendation, "#{__dir__}/identifiers/recommendation"
|
|
15
|
-
autoload :ProposedRecommendation,
|
|
16
|
-
"#{__dir__}/identifiers/proposed_recommendation"
|
|
17
|
-
autoload :ProposedEditedRecommendation,
|
|
18
|
-
"#{__dir__}/identifiers/proposed_edited_recommendation"
|
|
19
|
-
autoload :SupersededRecommendation,
|
|
20
|
-
"#{__dir__}/identifiers/superseded_recommendation"
|
|
21
|
-
autoload :ObsoleteRecommendation,
|
|
22
|
-
"#{__dir__}/identifiers/obsolete_recommendation"
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
data/lib/pubid/w3c/parser.rb
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "parslet"
|
|
4
|
-
|
|
5
|
-
module Pubid
|
|
6
|
-
module W3c
|
|
7
|
-
# Parslet grammar for printed W3C identifiers, e.g.
|
|
8
|
-
# "W3C WD-charmod-19991129" (type + code + date)
|
|
9
|
-
# "W3C NOTE-xml-names" (type + code)
|
|
10
|
-
# "W3C 2dcontext" (bare code)
|
|
11
|
-
#
|
|
12
|
-
# The grammar only splits off the leading maturity token; the code/date
|
|
13
|
-
# boundary is resolved in the Builder, because a PEG `code` rule would
|
|
14
|
-
# greedily consume the trailing date and make a `.maybe` date rule
|
|
15
|
-
# unreliable. This is safe: no real W3C code ends in a same-width (4/6/8)
|
|
16
|
-
# digit run, so the Builder's fixed-width trailing-date test never collides.
|
|
17
|
-
class Parser < ::Pubid::Parser::Grammar
|
|
18
|
-
rule(:prefix) { str("W3C") >> str(" ") }
|
|
19
|
-
|
|
20
|
-
# Known W3C maturity tokens. Order matters for shared prefixes: CRD before
|
|
21
|
-
# CR, PER before PR, DNOTE before NOTE.
|
|
22
|
-
rule(:type_token) do
|
|
23
|
-
str("DNOTE") | str("NOTE") | str("WD") | str("CRD") | str("CR") |
|
|
24
|
-
str("REC") | str("PER") | str("PR") | str("SPSD") | str("OBSL")
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
# A leading token is only a type when immediately followed by "-".
|
|
28
|
-
rule(:type_part) { type_token.as(:type) >> str("-") }
|
|
29
|
-
|
|
30
|
-
# The remainder: code plus an optional trailing date. Captured whole and
|
|
31
|
-
# split in the Builder.
|
|
32
|
-
rule(:rest) { any.repeat(1).as(:rest) }
|
|
33
|
-
|
|
34
|
-
rule(:identifier) { prefix >> type_part.maybe >> rest }
|
|
35
|
-
|
|
36
|
-
rule(:root) { identifier }
|
|
37
|
-
|
|
38
|
-
def self.parse(input)
|
|
39
|
-
new.parse(input)
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
data/lib/pubid/w3c/renderer.rb
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module W3c
|
|
5
|
-
# Human-readable renderer for W3C identifiers.
|
|
6
|
-
#
|
|
7
|
-
# Produces strings like:
|
|
8
|
-
# "W3C WD-charmod-19991129"
|
|
9
|
-
# "W3C NOTE-xml-names"
|
|
10
|
-
# "W3C 2dcontext"
|
|
11
|
-
#
|
|
12
|
-
# Registered as the :human format in the W3C format registry and invoked via
|
|
13
|
-
# `render(format: :human)`. When `id.with_publisher == false` the leading
|
|
14
|
-
# "W3C " publisher token is dropped.
|
|
15
|
-
class Renderer < ::Pubid::Renderers::Base
|
|
16
|
-
PUBLISHER = "W3C"
|
|
17
|
-
|
|
18
|
-
def render(context: nil, **opts)
|
|
19
|
-
id = @id
|
|
20
|
-
body = +""
|
|
21
|
-
body << "#{id.type_prefix}-" if id.type_prefix
|
|
22
|
-
body << id.number.to_s
|
|
23
|
-
body << "-#{id.date}" if id.date
|
|
24
|
-
|
|
25
|
-
with_publisher?(id) ? "#{PUBLISHER} #{body}" : body
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
private
|
|
29
|
-
|
|
30
|
-
def with_publisher?(id)
|
|
31
|
-
id.with_publisher != false
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module W3c
|
|
5
|
-
# Emits `urn:w3c:<type-down>:<slug>[:<date>]`, e.g.
|
|
6
|
-
# "W3C WD-charmod-19991129" -> "urn:w3c:wd:charmod:19991129"
|
|
7
|
-
# "W3C 2dcontext" -> "urn:w3c:2dcontext"
|
|
8
|
-
class UrnGenerator < Pubid::UrnGenerator::Base
|
|
9
|
-
def generate
|
|
10
|
-
parts = ["urn", "w3c"]
|
|
11
|
-
parts << identifier.type_prefix.downcase if identifier.type_prefix
|
|
12
|
-
parts << identifier.number.to_s
|
|
13
|
-
parts << identifier.date.to_s if identifier.date
|
|
14
|
-
parts.join(":")
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
data/lib/pubid/w3c/urn_parser.rb
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module W3c
|
|
5
|
-
# Parses W3C URNs back into identifiers by reconstructing the printed form
|
|
6
|
-
# and delegating to the flavor's text parser.
|
|
7
|
-
#
|
|
8
|
-
# UrnGenerator emits `urn:w3c:<type-down>:<code>[:<date>]`. The first body
|
|
9
|
-
# segment is the maturity token only when it is one of the known tokens AND
|
|
10
|
-
# a code segment follows it (a typed URN always has ≥2 segments); a
|
|
11
|
-
# single-segment body is always a bare code — even one that happens to spell
|
|
12
|
-
# a token, e.g. `urn:w3c:rec` -> `W3C rec` (a Standard, not a REC).
|
|
13
|
-
#
|
|
14
|
-
# Examples:
|
|
15
|
-
# - urn:w3c:wd:charmod:19991129 -> W3C WD-charmod-19991129
|
|
16
|
-
# - urn:w3c:note:xml-names -> W3C NOTE-xml-names
|
|
17
|
-
# - urn:w3c:2dcontext -> W3C 2dcontext
|
|
18
|
-
class UrnParser < Pubid::UrnParser::Base
|
|
19
|
-
KNOWN_TOKENS = %w[note dnote wd cr crd rec pr per spsd obsl].freeze
|
|
20
|
-
|
|
21
|
-
def parse_urn(urn)
|
|
22
|
-
parts = split_parts(strip_namespace(urn))
|
|
23
|
-
|
|
24
|
-
if parts.size > 1 && KNOWN_TOKENS.include?(parts.first)
|
|
25
|
-
token = parts.shift.upcase
|
|
26
|
-
text = "W3C #{token}-#{parts.shift}"
|
|
27
|
-
else
|
|
28
|
-
text = "W3C #{parts.shift}"
|
|
29
|
-
end
|
|
30
|
-
text += "-#{parts.shift}" unless parts.empty?
|
|
31
|
-
|
|
32
|
-
flavor_parse(text)
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|