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/amca/renderer.rb
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Amca
|
|
5
|
-
# Human-readable renderer for AMCA identifiers.
|
|
6
|
-
#
|
|
7
|
-
# Produces strings like:
|
|
8
|
-
# "AMCA Standard 210-16"
|
|
9
|
-
# "AMCA Publication 211-22 (Rev. 01-23)"
|
|
10
|
-
# "ANSI/AMCA 204 Interp"
|
|
11
|
-
# "AMCA 99 JW Interp"
|
|
12
|
-
#
|
|
13
|
-
# The renderer is registered as the `:human` format in the AMCA format
|
|
14
|
-
# registry and invoked via `render(format: :human)`.
|
|
15
|
-
class Renderer < ::Pubid::Renderers::Base
|
|
16
|
-
def render(context: nil, **opts)
|
|
17
|
-
id = @id
|
|
18
|
-
|
|
19
|
-
case id
|
|
20
|
-
when Identifiers::Publication
|
|
21
|
-
render_publication(id)
|
|
22
|
-
when Identifiers::Interpretation
|
|
23
|
-
render_interpretation(id)
|
|
24
|
-
else
|
|
25
|
-
render_base(id)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
private
|
|
30
|
-
|
|
31
|
-
def render_base(id)
|
|
32
|
-
parts = []
|
|
33
|
-
parts << id.copublisher if id.copublisher
|
|
34
|
-
t = id.class.respond_to?(:type) ? id.class.type : nil
|
|
35
|
-
if t.is_a?(Hash) && t[:title]
|
|
36
|
-
parts << t[:title].to_s
|
|
37
|
-
end
|
|
38
|
-
parts << id.number.to_s
|
|
39
|
-
parts << "-#{id.year}" if id.year
|
|
40
|
-
|
|
41
|
-
result = parts.compact.join(" ")
|
|
42
|
-
|
|
43
|
-
if id.copublisher&.include?("/") && id.year
|
|
44
|
-
type_title = t.is_a?(Hash) ? t[:title].to_s : ""
|
|
45
|
-
result = "#{id.copublisher} #{type_title} #{id.number}-#{id.year}"
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
result += " (#{id.reaffirmed})" if id.reaffirmed
|
|
49
|
-
|
|
50
|
-
result
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
def render_publication(id)
|
|
54
|
-
parts = []
|
|
55
|
-
parts << id.copublisher if id.copublisher
|
|
56
|
-
parts << "Publication"
|
|
57
|
-
parts << id.number.to_s
|
|
58
|
-
parts << "-#{id.year}" if id.year
|
|
59
|
-
parts << " (Rev. #{id.revision})" if id.revision
|
|
60
|
-
parts << " (#{id.reaffirmed})" if id.reaffirmed && !id.revision
|
|
61
|
-
|
|
62
|
-
parts.join(" ").squeeze(" ")
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
def render_interpretation(id)
|
|
66
|
-
parts = []
|
|
67
|
-
parts << id.copublisher if id.copublisher
|
|
68
|
-
parts << id.number.to_s
|
|
69
|
-
|
|
70
|
-
if id.interpretation_code
|
|
71
|
-
parts << "– #{id.interpretation_code}"
|
|
72
|
-
elsif id.year
|
|
73
|
-
parts << "-#{id.year}"
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
parts << " #{id.suffix}" if id.suffix
|
|
77
|
-
|
|
78
|
-
parts.join(" ").squeeze(" ")
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Amca
|
|
5
|
-
# Parses AMCA URNs back into identifiers.
|
|
6
|
-
#
|
|
7
|
-
# UrnGenerator emits:
|
|
8
|
-
# urn:amca:{number}:{year}[:{copub.publisher}[:{other tokens}]]
|
|
9
|
-
#
|
|
10
|
-
# The current generator can leak the Type Hash literal into the URN
|
|
11
|
-
# (e.g., `copub.amca:{:key => :standard, ...}`). This parser filters
|
|
12
|
-
# any token containing `{` so round-trip works for the common case.
|
|
13
|
-
#
|
|
14
|
-
# Examples:
|
|
15
|
-
# - urn:amca:210:08 → AMCA 210-08
|
|
16
|
-
class UrnParser < Pubid::UrnParser::Base
|
|
17
|
-
def parse_urn(urn)
|
|
18
|
-
body = strip_namespace(urn)
|
|
19
|
-
parts = split_parts(body).reject { |p| p.include?("{") }
|
|
20
|
-
|
|
21
|
-
number, year = parts
|
|
22
|
-
text = "AMCA #{number}"
|
|
23
|
-
text += "-#{year}" if year
|
|
24
|
-
flavor_parse(text)
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
data/lib/pubid/ansi/renderer.rb
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Ansi
|
|
5
|
-
# Human-readable renderer for ANSI identifiers.
|
|
6
|
-
#
|
|
7
|
-
# Produces strings like:
|
|
8
|
-
# "ANSI X3.4"
|
|
9
|
-
# "ANSI/ISO 9899"
|
|
10
|
-
# "ANSI X9.8-1:2007"
|
|
11
|
-
#
|
|
12
|
-
# The renderer is registered as the `:human` format in the ANSI format
|
|
13
|
-
# registry and invoked via `render(format: :human)`.
|
|
14
|
-
class Renderer < ::Pubid::Renderers::Base
|
|
15
|
-
def render(context: nil, **opts)
|
|
16
|
-
id = @id
|
|
17
|
-
|
|
18
|
-
parts = []
|
|
19
|
-
parts << publisher_portion(id, context)
|
|
20
|
-
parts << number_portion(id, context)
|
|
21
|
-
result = parts.compact.join(" ")
|
|
22
|
-
|
|
23
|
-
result << language_portion(id) if id.languages&.any?
|
|
24
|
-
|
|
25
|
-
result
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
private
|
|
29
|
-
|
|
30
|
-
def publisher_portion(id, context)
|
|
31
|
-
if id.copublishers&.any?
|
|
32
|
-
([id.publisher] + id.copublishers).map { |p| p.render(context:) }.join("/")
|
|
33
|
-
else
|
|
34
|
-
id.publisher.render(context:)
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def number_portion(id, context)
|
|
39
|
-
[
|
|
40
|
-
id.number,
|
|
41
|
-
(id.part ? "-#{id.part}" : ""),
|
|
42
|
-
(id.date ? ":#{id.date.render(context:)}" : ""),
|
|
43
|
-
].join
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def language_portion(id)
|
|
47
|
-
return "" unless id.languages&.any?
|
|
48
|
-
|
|
49
|
-
"(#{id.languages.map(&:code).join(',')})"
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Ansi
|
|
5
|
-
# Parses ANSI URNs back into identifiers.
|
|
6
|
-
#
|
|
7
|
-
# UrnGenerator emits: `urn:ansi:{code}:{year}` where the code carries
|
|
8
|
-
# the alpha-numeric designation (e.g., "X3.4").
|
|
9
|
-
#
|
|
10
|
-
# Examples:
|
|
11
|
-
# - urn:ansi:X3.4:1963 → ANSI X3.4:1963
|
|
12
|
-
class UrnParser < Pubid::UrnParser::Base
|
|
13
|
-
def parse_urn(urn)
|
|
14
|
-
body = strip_namespace(urn)
|
|
15
|
-
parts = split_parts(body)
|
|
16
|
-
code, year = parts
|
|
17
|
-
text = "ANSI #{code}"
|
|
18
|
-
text += ":#{year}" if year
|
|
19
|
-
flavor_parse(text)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Api
|
|
5
|
-
module Identifiers
|
|
6
|
-
autoload :Base, "#{__dir__}/identifiers/base"
|
|
7
|
-
autoload :Bulletin, "#{__dir__}/identifiers/bulletin"
|
|
8
|
-
autoload :ContinuousOperationsStandard, "#{__dir__}/identifiers/continuous_operations_standard"
|
|
9
|
-
autoload :Mpms, "#{__dir__}/identifiers/mpms"
|
|
10
|
-
autoload :Publication, "#{__dir__}/identifiers/publication"
|
|
11
|
-
autoload :RecommendedPractice, "#{__dir__}/identifiers/recommended_practice"
|
|
12
|
-
autoload :Specification, "#{__dir__}/identifiers/specification"
|
|
13
|
-
autoload :Standard, "#{__dir__}/identifiers/standard"
|
|
14
|
-
autoload :TechnicalReport, "#{__dir__}/identifiers/technical_report"
|
|
15
|
-
autoload :TypelessStandard, "#{__dir__}/identifiers/typeless_standard"
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
data/lib/pubid/api/renderer.rb
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Api
|
|
5
|
-
# Human-readable renderer for API identifiers.
|
|
6
|
-
#
|
|
7
|
-
# Produces strings like:
|
|
8
|
-
# "API Std 650"
|
|
9
|
-
# "API MPMS CH 4.1"
|
|
10
|
-
# "API 5L-2018"
|
|
11
|
-
#
|
|
12
|
-
# The renderer is registered as the +:human+ format in the API format
|
|
13
|
-
# registry and invoked via +render(format: :human)+.
|
|
14
|
-
class Renderer < ::Pubid::Renderers::Base
|
|
15
|
-
def render(context: nil, **opts)
|
|
16
|
-
id = @id
|
|
17
|
-
|
|
18
|
-
case id
|
|
19
|
-
when Identifiers::Mpms
|
|
20
|
-
render_mpms(id)
|
|
21
|
-
when Identifiers::TypelessStandard
|
|
22
|
-
render_typeless(id)
|
|
23
|
-
else
|
|
24
|
-
render_default(id)
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
private
|
|
29
|
-
|
|
30
|
-
def render_default(id)
|
|
31
|
-
parts = ["API"]
|
|
32
|
-
|
|
33
|
-
# Add the type token (RP, STD, BULL, PUBL, SPEC, TR ...) if the leaf
|
|
34
|
-
# defines one. `type_string` is a plain METHOD on each leaf, never a
|
|
35
|
-
# lutaml attribute, so the old `attributes.key?(:type_string)` guard
|
|
36
|
-
# was always false and the token was dropped from every rendering.
|
|
37
|
-
parts << id.type_string if id.respond_to?(:type_string) && id.type_string
|
|
38
|
-
|
|
39
|
-
# Add code/number with part as one token
|
|
40
|
-
parts << code_portion(id) if code_portion(id)
|
|
41
|
-
|
|
42
|
-
result = parts.join(" ")
|
|
43
|
-
result += "-#{id.year}" if id.year
|
|
44
|
-
result += " (R#{id.reaffirmation})" if id.reaffirmation
|
|
45
|
-
result
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def render_mpms(id)
|
|
49
|
-
parts = ["API", "MPMS"]
|
|
50
|
-
|
|
51
|
-
# Add chapter
|
|
52
|
-
parts << "CH #{id.number}" if id.number
|
|
53
|
-
|
|
54
|
-
# Add section/subsection
|
|
55
|
-
if id.section
|
|
56
|
-
parts << ".#{id.section}"
|
|
57
|
-
parts << ".#{id.subsection}" if id.subsection
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
# Add year
|
|
61
|
-
parts << "-#{id.year}" if id.year
|
|
62
|
-
|
|
63
|
-
parts.join(" ").gsub(" .", ".")
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def render_typeless(id)
|
|
67
|
-
parts = ["API"]
|
|
68
|
-
|
|
69
|
-
# Add code/number
|
|
70
|
-
parts << code_portion(id) if code_portion(id)
|
|
71
|
-
|
|
72
|
-
# Add year
|
|
73
|
-
parts << "-#{id.year}" if id.year
|
|
74
|
-
|
|
75
|
-
# Add reaffirmation
|
|
76
|
-
parts << " (R#{id.reaffirmation})" if id.reaffirmation
|
|
77
|
-
|
|
78
|
-
parts.join(" ")
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
# The document number plus its part, as one token.
|
|
82
|
-
#
|
|
83
|
-
# This used to read a `code` attribute that NOTHING ever assigned — the
|
|
84
|
-
# parser emits no `:code` key and the builder never sets one — so it
|
|
85
|
-
# always returned nil and 163 of API's 193 corpus identifiers rendered
|
|
86
|
-
# as the bare publisher "API". That string is both the document number
|
|
87
|
-
# and the output filename, so they all collapsed onto each other.
|
|
88
|
-
# `number` is what Builder#cast actually populates.
|
|
89
|
-
def code_portion(id)
|
|
90
|
-
return nil unless id.number
|
|
91
|
-
|
|
92
|
-
code_str = id.number.to_s
|
|
93
|
-
code_str += "-#{id.part}" if id.part
|
|
94
|
-
code_str
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
end
|
|
98
|
-
end
|
data/lib/pubid/api/urn_parser.rb
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Api
|
|
5
|
-
# Parses API URNs back into identifiers.
|
|
6
|
-
#
|
|
7
|
-
# UrnGenerator emits:
|
|
8
|
-
# urn:api:{publisher}:{number}[-{part}]:{year}
|
|
9
|
-
# where slot[1] is the publisher (default "api"), slot[2] is the number
|
|
10
|
-
# with optional `-part` suffix, slot[3] is the optional year.
|
|
11
|
-
#
|
|
12
|
-
# Examples:
|
|
13
|
-
# - urn:api:api:1104 → API STD 1104
|
|
14
|
-
# - urn:api:api:1104-1:2020 → API STD 1104-1:2020
|
|
15
|
-
class UrnParser < Pubid::UrnParser::Base
|
|
16
|
-
def parse_urn(urn)
|
|
17
|
-
body = strip_namespace(urn)
|
|
18
|
-
parts = split_parts(body)
|
|
19
|
-
|
|
20
|
-
_type, number = parts
|
|
21
|
-
idx = 2
|
|
22
|
-
part = nil
|
|
23
|
-
if parts[idx]&.start_with?("-")
|
|
24
|
-
part = parts[idx]
|
|
25
|
-
idx += 1
|
|
26
|
-
end
|
|
27
|
-
year = parts[idx]
|
|
28
|
-
|
|
29
|
-
text = "API STD #{number}#{part}"
|
|
30
|
-
text += ":#{year}" if year
|
|
31
|
-
flavor_parse(text)
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Ashrae
|
|
5
|
-
# Human-readable renderer for ASHRAE identifiers.
|
|
6
|
-
#
|
|
7
|
-
# Produces strings like:
|
|
8
|
-
# "ASHRAE Standard 15-2024"
|
|
9
|
-
# "ASHRAE Guideline 0-2019"
|
|
10
|
-
# "ASHRAE Addendum a to Standard 15-2001"
|
|
11
|
-
# "ASHRAE Standard 52.2-1999: Addenda Supplement Package"
|
|
12
|
-
# "ASHRAE Addenda c and d to Standard 15-1994"
|
|
13
|
-
# "ASHRAE Guideline 0-2005 Errata (September 28, 2011)"
|
|
14
|
-
# "Interpretations for Standard 15.2-2022"
|
|
15
|
-
#
|
|
16
|
-
# The renderer is registered as the +:human+ format in the ASHRAE format
|
|
17
|
-
# registry and invoked via +render(format: :human)+.
|
|
18
|
-
class Renderer < ::Pubid::Renderers::Base
|
|
19
|
-
def render(context: nil, **_opts)
|
|
20
|
-
id = @id
|
|
21
|
-
|
|
22
|
-
case id
|
|
23
|
-
when Identifiers::Addendum
|
|
24
|
-
render_addendum(id)
|
|
25
|
-
when Identifiers::AddendaPackage
|
|
26
|
-
render_addenda_package(id)
|
|
27
|
-
when Identifiers::CombinedAddenda
|
|
28
|
-
render_combined_addenda(id)
|
|
29
|
-
when Identifiers::Errata
|
|
30
|
-
render_errata(id)
|
|
31
|
-
when Identifiers::Interpretation
|
|
32
|
-
render_interpretation(id)
|
|
33
|
-
when SingleIdentifier
|
|
34
|
-
render_single(id)
|
|
35
|
-
else
|
|
36
|
-
render_single(id)
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
private
|
|
41
|
-
|
|
42
|
-
# SingleIdentifier (Standard, Guideline): "ASHRAE Standard 15-2024"
|
|
43
|
-
def render_single(id)
|
|
44
|
-
parts = []
|
|
45
|
-
parts << id.publisher if id.publisher
|
|
46
|
-
parts << id.type.to_s if id.type
|
|
47
|
-
result = parts.join(" ")
|
|
48
|
-
result += " " if result.length.positive?
|
|
49
|
-
result += id.number.to_s
|
|
50
|
-
result += "-#{id.year}" if id.year
|
|
51
|
-
result += " (#{id.amendment})" if id.amendment
|
|
52
|
-
result += id.suffix if id.suffix
|
|
53
|
-
result += " (RA#{id.reaffirmed})" if id.reaffirmed
|
|
54
|
-
result
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
# Addendum: "ASHRAE Addendum a to Standard 15-2001"
|
|
58
|
-
def render_addendum(id)
|
|
59
|
-
return id.base.to_s unless id.base
|
|
60
|
-
|
|
61
|
-
base_type = id.base.type || "Standard"
|
|
62
|
-
|
|
63
|
-
if id.copublisher
|
|
64
|
-
"#{id.copublisher} Addendum #{id.addendum_code} to #{id.base}"
|
|
65
|
-
else
|
|
66
|
-
result = "ASHRAE Addendum #{id.addendum_code} to #{base_type} #{id.base.number}"
|
|
67
|
-
result += "-#{id.base.year}" if id.base.year
|
|
68
|
-
result
|
|
69
|
-
end.tap { |r| r << " (#{id.addendum_date})" if id.addendum_date }
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
# AddendaPackage: "ASHRAE Standard 52.2-1999: Addenda Supplement Package"
|
|
73
|
-
def render_addenda_package(id)
|
|
74
|
-
return id.base.to_s unless id.base
|
|
75
|
-
|
|
76
|
-
result = "ASHRAE #{id.base.type || 'Standard'} #{id.base.number}"
|
|
77
|
-
result += "-#{id.base.year}" if id.base.year
|
|
78
|
-
result += ": Addenda #{id.package_description}" if id.package_description
|
|
79
|
-
result
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
# CombinedAddenda: "ASHRAE Addenda c and d to Standard 15-1994"
|
|
83
|
-
def render_combined_addenda(id)
|
|
84
|
-
return id.base.to_s unless id.base
|
|
85
|
-
|
|
86
|
-
base_type = id.base.type || "Standard"
|
|
87
|
-
if id.addendum_codes
|
|
88
|
-
result = "ASHRAE Addenda #{id.addendum_codes} to #{base_type} #{id.base.number}"
|
|
89
|
-
else
|
|
90
|
-
result = "ASHRAE Addenda to #{base_type} #{id.base.number}"
|
|
91
|
-
end
|
|
92
|
-
result += "-#{id.base.year}" if id.base.year
|
|
93
|
-
result
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
# Errata: "ASHRAE Guideline 0-2005 Errata (September 28, 2011)"
|
|
97
|
-
def render_errata(id)
|
|
98
|
-
return id.base.to_s unless id.base
|
|
99
|
-
|
|
100
|
-
result = id.base.to_s
|
|
101
|
-
result += " Errata"
|
|
102
|
-
result += " (#{id.errata_date})" if id.errata_date
|
|
103
|
-
result
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
# Interpretation: "Interpretations for Standard 15.2-2022"
|
|
107
|
-
def render_interpretation(id)
|
|
108
|
-
return id.base.to_s unless id.base
|
|
109
|
-
|
|
110
|
-
base_type = id.base.type || "Standard"
|
|
111
|
-
result = "Interpretations for #{base_type} #{id.base.number}"
|
|
112
|
-
result += "-#{id.base.year}" if id.base.year
|
|
113
|
-
result
|
|
114
|
-
end
|
|
115
|
-
end
|
|
116
|
-
end
|
|
117
|
-
end
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Ashrae
|
|
5
|
-
# Parses ASHRAE URNs back into identifiers.
|
|
6
|
-
#
|
|
7
|
-
# UrnGenerator emits:
|
|
8
|
-
# urn:ashrae:{number}:{year}:{type}[:{suffix}][:amd.{N}][:reaff.{Y}]
|
|
9
|
-
#
|
|
10
|
-
# The type token follows the year; the human-readable form prefixes the
|
|
11
|
-
# type ("ASHRAE Standard 90.1-2019"). The year separator is `-`.
|
|
12
|
-
#
|
|
13
|
-
# Examples:
|
|
14
|
-
# - urn:ashrae:90.1:2019:standard → ASHRAE Standard 90.1-2019
|
|
15
|
-
class UrnParser < Pubid::UrnParser::Base
|
|
16
|
-
def parse_urn(urn)
|
|
17
|
-
body = strip_namespace(urn)
|
|
18
|
-
parts = split_parts(body)
|
|
19
|
-
|
|
20
|
-
number, year = parts
|
|
21
|
-
text = "ASHRAE Standard #{number}"
|
|
22
|
-
text += "-#{year}" if year
|
|
23
|
-
flavor_parse(text)
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
data/lib/pubid/asme/renderer.rb
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Asme
|
|
5
|
-
# Human-readable renderer for ASME identifiers.
|
|
6
|
-
#
|
|
7
|
-
# Produces strings like:
|
|
8
|
-
# "ASME B16.5-2020"
|
|
9
|
-
# "CSA B44.10/ASME A17.10"
|
|
10
|
-
# "ASME BPVC III.1.NB-2023"
|
|
11
|
-
# "ASME PTC 4-2013"
|
|
12
|
-
#
|
|
13
|
-
# The renderer is registered as the `:human` format in the ASME format
|
|
14
|
-
# registry and invoked via `render(format: :human)`.
|
|
15
|
-
class Renderer < ::Pubid::Renderers::Base
|
|
16
|
-
def render(context: nil, **opts)
|
|
17
|
-
id = @id
|
|
18
|
-
parts = []
|
|
19
|
-
|
|
20
|
-
if id.first_publisher && id.first_code
|
|
21
|
-
# CSA B44.10/ASME A17.10 or API 579-2/ASME PTB-14 format
|
|
22
|
-
parts << id.first_publisher
|
|
23
|
-
parts << id.first_code
|
|
24
|
-
parts << "/#{id.second_publisher}" if id.second_publisher
|
|
25
|
-
parts << id.number.to_s if id.number && id.number.to_s != ""
|
|
26
|
-
elsif id.joint_publisher
|
|
27
|
-
# ISO/ASME or ASME/ANS format
|
|
28
|
-
parts << id.joint_publisher
|
|
29
|
-
parts << id.number.to_s if id.number && id.number.to_s != ""
|
|
30
|
-
else
|
|
31
|
-
# Standard ASME format
|
|
32
|
-
parts << id.publisher if id.publisher
|
|
33
|
-
parts << id.number.to_s if id.number
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
result = parts.join(" ")
|
|
37
|
-
|
|
38
|
-
if id.ptc_suffix
|
|
39
|
-
result += " #{id.ptc_suffix}"
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
if id.csa_number
|
|
43
|
-
result += "/CSA #{id.csa_number}"
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
if id.handbook
|
|
47
|
-
result += " Handbook"
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
if id.draft_year
|
|
51
|
-
result += "-#{id.draft_year}"
|
|
52
|
-
elsif id.year
|
|
53
|
-
result += "-#{id.year}"
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
result += " #{id.parenthetical_revision}" if id.parenthetical_revision
|
|
57
|
-
result += " (#{id.language})" if id.language
|
|
58
|
-
result += " (#{id.reaffirmation})" if id.reaffirmation
|
|
59
|
-
result += " #{id.revision_note}" if id.revision_note
|
|
60
|
-
|
|
61
|
-
# Normalize all em-dashes and en-dashes to regular dash
|
|
62
|
-
result.gsub(/[–—]/, "-")
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
end
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Asme
|
|
5
|
-
# Parses ASME URNs back into identifiers.
|
|
6
|
-
#
|
|
7
|
-
# UrnGenerator emits:
|
|
8
|
-
# urn:asme:{publisher}:{code}:{year}
|
|
9
|
-
#
|
|
10
|
-
# publisher is the lowercase publisher string. code is the alphanumeric
|
|
11
|
-
# designation (e.g., "B16.5", "PTC1", "BPVC-2023"). The year separator
|
|
12
|
-
# in human-readable form is `-`, not `:`.
|
|
13
|
-
#
|
|
14
|
-
# Examples:
|
|
15
|
-
# - urn:asme:asme:B16.5:2020 → ASME B16.5-2020
|
|
16
|
-
# - urn:asme:asme:PTC1:2020 → ASME PTC1-2020
|
|
17
|
-
# - urn:asme:asme:BPVC-2023 → ASME BPVC-2023
|
|
18
|
-
class UrnParser < Pubid::UrnParser::Base
|
|
19
|
-
def parse_urn(urn)
|
|
20
|
-
body = strip_namespace(urn)
|
|
21
|
-
parts = split_parts(body)
|
|
22
|
-
|
|
23
|
-
_publisher, code, year = parts
|
|
24
|
-
|
|
25
|
-
text = "ASME #{code}"
|
|
26
|
-
text += "-#{year}" if year
|
|
27
|
-
flavor_parse(text)
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Astm
|
|
5
|
-
module Identifiers
|
|
6
|
-
# Installs the flat, index-friendly code columns on every CONCRETE ASTM
|
|
7
|
-
# identifier class.
|
|
8
|
-
#
|
|
9
|
-
# Why every concrete class and not Pubid::Astm::SingleIdentifier, which
|
|
10
|
-
# they all inherit from: `number` redefines the parent
|
|
11
|
-
# ::Pubid::Identifier's `attribute :number, Components::Code` as a plain
|
|
12
|
-
# :string (Astm::Components::Code is not a subclass of it). Declaring that
|
|
13
|
-
# on a class the concrete types INHERIT from resolves against the parent
|
|
14
|
-
# definition nondeterministically under multi-flavor load — it passes an
|
|
15
|
-
# ASTM-only run and can flip `root.number` to "" under the full suite (the
|
|
16
|
-
# IEEE lesson; see lib/pubid/ieee/identifiers/code_number.rb and
|
|
17
|
-
# CLAUDE.md).
|
|
18
|
-
#
|
|
19
|
-
# NOTE the module is included by `Standard` AND by `IsoDualPublished`,
|
|
20
|
-
# which inherits from Standard. That is deliberate, not redundant: a class
|
|
21
|
-
# that is itself inherited from must still declare the columns so its
|
|
22
|
-
# subclass holds its own snapshot rather than relying on the parent's.
|
|
23
|
-
# Every instantiable ASTM class declares them for itself.
|
|
24
|
-
#
|
|
25
|
-
# This matters because relaton-index sorts and bsearches every row on
|
|
26
|
-
# `id.root.number.to_s`, and ASTM kept identity in an
|
|
27
|
-
# Astm::Components::Code under a `code` attribute, so all 248 parseable
|
|
28
|
-
# fixture ids keyed "".
|
|
29
|
-
module CodeNumber
|
|
30
|
-
def self.included(base)
|
|
31
|
-
# Bare document number ("2938"), the relaton index key. `letter` is a
|
|
32
|
-
# sibling column, so E2938 and D2938 narrow to the same bucket and
|
|
33
|
-
# are then separated by the full hash — the IEEE prefix/number split.
|
|
34
|
-
base.attribute :number, :string
|
|
35
|
-
base.attribute :letter, :string
|
|
36
|
-
base.attribute :suffix, :string
|
|
37
|
-
base.attribute :subseries, :string
|
|
38
|
-
# Named for the RARE case with a false default, so the canonical
|
|
39
|
-
# to_hash drops it from every ordinary row.
|
|
40
|
-
base.attribute :dual_m, :boolean, default: -> { false }
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# The composed document code, rebuilt on demand from the split columns.
|
|
44
|
-
# ASTM's renderer reads the individual fields (`code.letter`,
|
|
45
|
-
# `code.number`, `code.dual_m`) in several places, so the component has
|
|
46
|
-
# to keep its structure rather than collapsing to a string as ASME's
|
|
47
|
-
# does.
|
|
48
|
-
#
|
|
49
|
-
# Deliberately NOT an attribute and NOT memoised: the columns are
|
|
50
|
-
# writable (the base #exclude rebuilds through them), so a cached Code
|
|
51
|
-
# would go stale. nil when there is no number and no letter, preserving
|
|
52
|
-
# the nil-`code` branches the renderer and URN generator both test.
|
|
53
|
-
def code
|
|
54
|
-
return nil if number.nil? && letter.nil?
|
|
55
|
-
|
|
56
|
-
Components::Code.new(
|
|
57
|
-
letter: letter,
|
|
58
|
-
number: number,
|
|
59
|
-
suffix: suffix,
|
|
60
|
-
subseries: subseries,
|
|
61
|
-
dual_m: dual_m,
|
|
62
|
-
)
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
# Every field of the code is identity-bearing — Code#to_s renders all
|
|
66
|
-
# of them and they are all in the serialized hash — so all of them must
|
|
67
|
-
# reach the slug, or two distinct documents share a filename.
|
|
68
|
-
# CLAUDE.md's rule: a marker that only reaches `==` is not enough.
|
|
69
|
-
def mr_number_with_part
|
|
70
|
-
segments = [letter, number, suffix].compact
|
|
71
|
-
segments << "s#{subseries}" if subseries
|
|
72
|
-
segments << "m" if dual_m
|
|
73
|
-
return nil if segments.empty?
|
|
74
|
-
|
|
75
|
-
segments.join("-").downcase.gsub(/[^a-z0-9-]+/, "-")
|
|
76
|
-
.gsub(/\A-+|-+\z/, "")
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
end
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Pubid
|
|
4
|
-
module Astm
|
|
5
|
-
module Identifiers
|
|
6
|
-
autoload :Base, "#{__dir__}/identifiers/base"
|
|
7
|
-
autoload :CodeNumber, "#{__dir__}/identifiers/code_number"
|
|
8
|
-
autoload :Standard, "#{__dir__}/identifiers/standard"
|
|
9
|
-
autoload :IsoDualPublished, "#{__dir__}/identifiers/iso_dual_published"
|
|
10
|
-
autoload :Manual, "#{__dir__}/identifiers/manual"
|
|
11
|
-
autoload :ResearchReport, "#{__dir__}/identifiers/research_report"
|
|
12
|
-
autoload :DataSeries, "#{__dir__}/identifiers/data_series"
|
|
13
|
-
autoload :TechnicalReport, "#{__dir__}/identifiers/technical_report"
|
|
14
|
-
autoload :Monograph, "#{__dir__}/identifiers/monograph"
|
|
15
|
-
autoload :Adjunct, "#{__dir__}/identifiers/adjunct"
|
|
16
|
-
autoload :WorkInProgress, "#{__dir__}/identifiers/work_in_progress"
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|