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/ashrae/builder.rb
CHANGED
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
module Pubid
|
|
4
4
|
module Ashrae
|
|
5
5
|
# Builder class for constructing ASHRAE identifier scheme from parsed data
|
|
6
|
-
# Single Responsibility: Transform parsed data into
|
|
6
|
+
# Single Responsibility: Transform parsed data into Scheme objects
|
|
7
7
|
class Builder
|
|
8
8
|
attr_reader :identifier_class
|
|
9
9
|
|
|
10
|
-
def initialize(identifier_class =
|
|
10
|
+
def initialize(identifier_class = Identifiers::Base)
|
|
11
11
|
@identifier_class = identifier_class
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
# Build a scheme object from parsed data
|
|
15
15
|
# @param parsed [Hash, Array] the parsed identifier data
|
|
16
|
-
# @return [
|
|
16
|
+
# @return [Scheme] the constructed scheme object
|
|
17
17
|
def build(parsed)
|
|
18
18
|
# Parslet can return array of hashes - merge them
|
|
19
19
|
parsed_hash = parsed.is_a?(Array) ? merge_parsed_array(parsed) : parsed
|
|
@@ -39,18 +39,6 @@ module Pubid
|
|
|
39
39
|
return build_addendum_no_type(parsed_hash[:addendum_no_type])
|
|
40
40
|
elsif parsed_hash[:standard_addendum]
|
|
41
41
|
return build_standard_addendum(parsed_hash[:standard_addendum])
|
|
42
|
-
# These two grammar rules had NO dispatch branch, so they fell through
|
|
43
|
-
# to the plain-identifier path below. That path looks for
|
|
44
|
-
# publisher/type/code at the TOP of the hash, finds only the wrapper
|
|
45
|
-
# key, and builds an empty Standard — 123 corpus ids rendered as the
|
|
46
|
-
# bare string "ASHRAE Standard ". Both subtrees are flat and carry
|
|
47
|
-
# exactly the keys #build_addendum_from_identifier already reads.
|
|
48
|
-
elsif parsed_hash[:addendum]
|
|
49
|
-
return build_addendum_from_identifier(parsed_hash[:addendum])
|
|
50
|
-
elsif parsed_hash[:publisher_base_addendum]
|
|
51
|
-
return build_addendum_from_identifier(
|
|
52
|
-
parsed_hash[:publisher_base_addendum],
|
|
53
|
-
)
|
|
54
42
|
end
|
|
55
43
|
|
|
56
44
|
# Handle base identifier
|
|
@@ -65,7 +53,7 @@ module Pubid
|
|
|
65
53
|
|
|
66
54
|
# Class method to build an identifier from parsed data
|
|
67
55
|
# @param parsed [Hash, Array] the parsed identifier data
|
|
68
|
-
# @return [
|
|
56
|
+
# @return [Identifiers::Base] the constructed identifier object
|
|
69
57
|
def self.build(parsed)
|
|
70
58
|
new.build(parsed)
|
|
71
59
|
end
|
|
@@ -83,7 +71,7 @@ module Pubid
|
|
|
83
71
|
|
|
84
72
|
# Extract and normalize attributes from parsed data
|
|
85
73
|
# @param parsed [Hash] the parsed data
|
|
86
|
-
# @return [Hash] normalized attributes for
|
|
74
|
+
# @return [Hash] normalized attributes for Scheme
|
|
87
75
|
def extract_attributes(parsed)
|
|
88
76
|
attributes = {}
|
|
89
77
|
|
|
@@ -101,7 +89,7 @@ module Pubid
|
|
|
101
89
|
# code_with_year contains both code and year
|
|
102
90
|
code_year_data = parsed[:code_with_year]
|
|
103
91
|
if code_year_data && code_year_data[:code]
|
|
104
|
-
attributes[:
|
|
92
|
+
attributes[:code] =
|
|
105
93
|
extract_value(code_year_data[:code])
|
|
106
94
|
end
|
|
107
95
|
if code_year_data && code_year_data[:year]
|
|
@@ -109,7 +97,7 @@ module Pubid
|
|
|
109
97
|
extract_value(code_year_data[:year])
|
|
110
98
|
end
|
|
111
99
|
elsif parsed[:code]
|
|
112
|
-
attributes[:
|
|
100
|
+
attributes[:code] = extract_value(parsed[:code])
|
|
113
101
|
end
|
|
114
102
|
|
|
115
103
|
# Extract year if not already extracted from code_with_year
|
|
@@ -170,12 +158,12 @@ module Pubid
|
|
|
170
158
|
def build_errata(parsed)
|
|
171
159
|
base_attrs = extract_base_attributes(parsed)
|
|
172
160
|
base_class = determine_identifier_class(base_attrs)
|
|
173
|
-
|
|
161
|
+
base_identifier = base_class.new(**base_attrs)
|
|
174
162
|
|
|
175
163
|
errata_date = extract_errata_date(parsed[:errata_date])
|
|
176
164
|
|
|
177
165
|
Identifiers::Errata.new(
|
|
178
|
-
|
|
166
|
+
base_identifier: base_identifier,
|
|
179
167
|
errata_date: errata_date,
|
|
180
168
|
)
|
|
181
169
|
end
|
|
@@ -186,10 +174,10 @@ module Pubid
|
|
|
186
174
|
def build_interpretation(parsed)
|
|
187
175
|
base_attrs = extract_base_attributes(parsed)
|
|
188
176
|
base_class = determine_identifier_class(base_attrs)
|
|
189
|
-
|
|
177
|
+
base_identifier = base_class.new(**base_attrs)
|
|
190
178
|
|
|
191
179
|
Identifiers::Interpretation.new(
|
|
192
|
-
|
|
180
|
+
base_identifier: base_identifier,
|
|
193
181
|
)
|
|
194
182
|
end
|
|
195
183
|
|
|
@@ -199,13 +187,13 @@ module Pubid
|
|
|
199
187
|
def build_addendum_from_identifier(parsed)
|
|
200
188
|
base_attrs = extract_base_attributes(parsed)
|
|
201
189
|
base_class = determine_identifier_class(base_attrs)
|
|
202
|
-
|
|
190
|
+
base_identifier = base_class.new(**base_attrs)
|
|
203
191
|
|
|
204
192
|
addendum_code = extract_value(parsed[:addendum_code])
|
|
205
193
|
addendum_date = extract_addendum_date(parsed[:addendum_year])
|
|
206
194
|
|
|
207
195
|
Identifiers::Addendum.new(
|
|
208
|
-
|
|
196
|
+
base_identifier: base_identifier,
|
|
209
197
|
addendum_code: addendum_code,
|
|
210
198
|
addendum_date: addendum_date,
|
|
211
199
|
)
|
|
@@ -217,17 +205,17 @@ module Pubid
|
|
|
217
205
|
def build_publisher_addendum(parsed)
|
|
218
206
|
base_attrs = {
|
|
219
207
|
type: extract_value(parsed[:type]),
|
|
220
|
-
|
|
208
|
+
code: extract_value(parsed[:code]),
|
|
221
209
|
year: extract_value(parsed[:year]),
|
|
222
210
|
}
|
|
223
211
|
base_class = determine_identifier_class(base_attrs)
|
|
224
|
-
|
|
212
|
+
base_identifier = base_class.new(**base_attrs)
|
|
225
213
|
|
|
226
214
|
addendum_code = extract_value(parsed[:addendum_code])
|
|
227
215
|
addendum_date = extract_addendum_date(parsed[:addendum_year])
|
|
228
216
|
|
|
229
217
|
Identifiers::Addendum.new(
|
|
230
|
-
|
|
218
|
+
base_identifier: base_identifier,
|
|
231
219
|
addendum_code: addendum_code,
|
|
232
220
|
addendum_date: addendum_date,
|
|
233
221
|
)
|
|
@@ -240,17 +228,17 @@ module Pubid
|
|
|
240
228
|
base_attrs = {
|
|
241
229
|
copublisher: extract_value(parsed[:copublisher]),
|
|
242
230
|
type: extract_value(parsed[:type]) || "Standard",
|
|
243
|
-
|
|
231
|
+
code: extract_value(parsed[:code]),
|
|
244
232
|
year: extract_value(parsed[:year]),
|
|
245
233
|
}
|
|
246
234
|
base_class = determine_identifier_class(base_attrs)
|
|
247
|
-
|
|
235
|
+
base_identifier = base_class.new(**base_attrs)
|
|
248
236
|
|
|
249
237
|
addendum_code = extract_value(parsed[:addendum_code])
|
|
250
238
|
addendum_date = extract_addendum_date(parsed[:addendum_year])
|
|
251
239
|
|
|
252
240
|
Identifiers::Addendum.new(
|
|
253
|
-
|
|
241
|
+
base_identifier: base_identifier,
|
|
254
242
|
addendum_code: addendum_code,
|
|
255
243
|
addendum_date: addendum_date,
|
|
256
244
|
)
|
|
@@ -272,7 +260,7 @@ module Pubid
|
|
|
272
260
|
if parsed[:code_with_year]
|
|
273
261
|
code_year_data = parsed[:code_with_year]
|
|
274
262
|
if code_year_data && code_year_data[:code]
|
|
275
|
-
base_attrs[:
|
|
263
|
+
base_attrs[:code] =
|
|
276
264
|
extract_value(code_year_data[:code])
|
|
277
265
|
end
|
|
278
266
|
if code_year_data && code_year_data[:year]
|
|
@@ -282,13 +270,13 @@ module Pubid
|
|
|
282
270
|
end
|
|
283
271
|
|
|
284
272
|
base_class = determine_identifier_class(base_attrs)
|
|
285
|
-
|
|
273
|
+
base_identifier = base_class.new(**base_attrs)
|
|
286
274
|
|
|
287
275
|
addendum_code = extract_value(parsed[:addendum_code])
|
|
288
276
|
addendum_date = extract_addendum_date(parsed[:addendum_year])
|
|
289
277
|
|
|
290
278
|
Identifiers::Addendum.new(
|
|
291
|
-
|
|
279
|
+
base_identifier: base_identifier,
|
|
292
280
|
addendum_code: addendum_code,
|
|
293
281
|
addendum_date: addendum_date,
|
|
294
282
|
)
|
|
@@ -310,7 +298,7 @@ module Pubid
|
|
|
310
298
|
if parsed[:code_with_year]
|
|
311
299
|
code_year_data = parsed[:code_with_year]
|
|
312
300
|
if code_year_data && code_year_data[:code]
|
|
313
|
-
base_attrs[:
|
|
301
|
+
base_attrs[:code] =
|
|
314
302
|
extract_value(code_year_data[:code])
|
|
315
303
|
end
|
|
316
304
|
if code_year_data && code_year_data[:year]
|
|
@@ -320,13 +308,13 @@ module Pubid
|
|
|
320
308
|
end
|
|
321
309
|
|
|
322
310
|
base_class = determine_identifier_class(base_attrs)
|
|
323
|
-
|
|
311
|
+
base_identifier = base_class.new(**base_attrs)
|
|
324
312
|
|
|
325
313
|
addendum_code = extract_value(parsed[:addendum_code])
|
|
326
314
|
addendum_date = extract_addendum_date(parsed[:addendum_year])
|
|
327
315
|
|
|
328
316
|
Identifiers::Addendum.new(
|
|
329
|
-
|
|
317
|
+
base_identifier: base_identifier,
|
|
330
318
|
addendum_code: addendum_code,
|
|
331
319
|
addendum_date: addendum_date,
|
|
332
320
|
)
|
|
@@ -338,13 +326,13 @@ module Pubid
|
|
|
338
326
|
def build_standard_addendum(parsed)
|
|
339
327
|
base_attrs = extract_base_attributes(parsed)
|
|
340
328
|
base_class = determine_identifier_class(base_attrs)
|
|
341
|
-
|
|
329
|
+
base_identifier = base_class.new(**base_attrs)
|
|
342
330
|
|
|
343
331
|
addendum_code = extract_value(parsed[:addendum_code])
|
|
344
332
|
addendum_date = extract_addendum_date(parsed[:addendum_year])
|
|
345
333
|
|
|
346
334
|
Identifiers::Addendum.new(
|
|
347
|
-
|
|
335
|
+
base_identifier: base_identifier,
|
|
348
336
|
addendum_code: addendum_code,
|
|
349
337
|
addendum_date: addendum_date,
|
|
350
338
|
)
|
|
@@ -361,7 +349,7 @@ module Pubid
|
|
|
361
349
|
if parsed[:code_with_year]
|
|
362
350
|
code_year_data = parsed[:code_with_year]
|
|
363
351
|
if code_year_data && code_year_data[:code]
|
|
364
|
-
base_attrs[:
|
|
352
|
+
base_attrs[:code] =
|
|
365
353
|
extract_value(code_year_data[:code])
|
|
366
354
|
end
|
|
367
355
|
if code_year_data && code_year_data[:year]
|
|
@@ -370,7 +358,7 @@ module Pubid
|
|
|
370
358
|
end
|
|
371
359
|
else
|
|
372
360
|
base_attrs[:type] = extract_value(parsed[:type]) || "Standard"
|
|
373
|
-
base_attrs[:
|
|
361
|
+
base_attrs[:code] = extract_value(parsed[:code])
|
|
374
362
|
base_attrs[:year] = extract_value(parsed[:year])
|
|
375
363
|
end
|
|
376
364
|
|
|
@@ -384,7 +372,7 @@ module Pubid
|
|
|
384
372
|
end
|
|
385
373
|
|
|
386
374
|
base_class = determine_identifier_class(base_attrs)
|
|
387
|
-
|
|
375
|
+
base_identifier = base_class.new(**base_attrs)
|
|
388
376
|
|
|
389
377
|
# Build the addendum_codes string from first code and additional codes
|
|
390
378
|
first_code = extract_value(parsed[:addendum_code])
|
|
@@ -418,7 +406,7 @@ module Pubid
|
|
|
418
406
|
end
|
|
419
407
|
|
|
420
408
|
Identifiers::CombinedAddenda.new(
|
|
421
|
-
|
|
409
|
+
base_identifier: base_identifier,
|
|
422
410
|
addendum_codes: addendum_codes_str,
|
|
423
411
|
)
|
|
424
412
|
end
|
|
@@ -429,12 +417,12 @@ module Pubid
|
|
|
429
417
|
def build_addenda_package(parsed)
|
|
430
418
|
base_attrs = extract_base_attributes(parsed)
|
|
431
419
|
base_class = determine_identifier_class(base_attrs)
|
|
432
|
-
|
|
420
|
+
base_identifier = base_class.new(**base_attrs)
|
|
433
421
|
|
|
434
422
|
package_description = extract_value(parsed[:package_description])
|
|
435
423
|
|
|
436
424
|
Identifiers::AddendaPackage.new(
|
|
437
|
-
|
|
425
|
+
base_identifier: base_identifier,
|
|
438
426
|
package_description: package_description,
|
|
439
427
|
)
|
|
440
428
|
end
|
|
@@ -443,15 +431,6 @@ module Pubid
|
|
|
443
431
|
# @param parsed [Hash] the parsed data
|
|
444
432
|
# @return [Hash] attributes for base identifier
|
|
445
433
|
def extract_base_attributes(parsed)
|
|
446
|
-
# Unwrap the `:base` subtree the supplement grammars nest the base
|
|
447
|
-
# document under. Builder#build does this for the plain-identifier
|
|
448
|
-
# path, but the five supplement builders that call this method all
|
|
449
|
-
# passed the WHOLE parse hash — so every lookup below missed and the
|
|
450
|
-
# base was built with nothing. 318 Errata rendered as the identical
|
|
451
|
-
# string "ASHRAE Standard Errata"; doing it here fixes all five call
|
|
452
|
-
# sites at once, rather than repeating the unwrap in each.
|
|
453
|
-
parsed = parsed[:base] if parsed.is_a?(Hash) && parsed[:base]
|
|
454
|
-
|
|
455
434
|
attributes = {}
|
|
456
435
|
|
|
457
436
|
if parsed[:publisher]
|
|
@@ -469,7 +448,7 @@ module Pubid
|
|
|
469
448
|
if parsed[:code_with_year]
|
|
470
449
|
code_year_data = parsed[:code_with_year]
|
|
471
450
|
if code_year_data && code_year_data[:code]
|
|
472
|
-
attributes[:
|
|
451
|
+
attributes[:code] =
|
|
473
452
|
extract_value(code_year_data[:code])
|
|
474
453
|
end
|
|
475
454
|
if code_year_data && code_year_data[:year]
|
|
@@ -477,7 +456,7 @@ module Pubid
|
|
|
477
456
|
extract_value(code_year_data[:year])
|
|
478
457
|
end
|
|
479
458
|
else
|
|
480
|
-
attributes[:
|
|
459
|
+
attributes[:code] = extract_value(parsed[:code]) if parsed[:code]
|
|
481
460
|
attributes[:year] = extract_value(parsed[:year]) if parsed[:year]
|
|
482
461
|
end
|
|
483
462
|
|
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
3
|
+
module Pubid
|
|
4
|
+
module Ashrae
|
|
5
|
+
module Identifier
|
|
6
|
+
# Parse an ASHRAE identifier string into an identifier object
|
|
7
|
+
# @param identifier [String] The ASHRAE identifier string to parse
|
|
8
|
+
# @return [Identifiers::Base] The appropriate identifier object
|
|
9
|
+
# @raise [Parslet::ParseFailed] If parsing fails
|
|
10
|
+
def self.parse(identifier)
|
|
11
|
+
parsed = Parser.parse(identifier)
|
|
12
|
+
Builder.build(parsed)
|
|
13
|
+
rescue Parslet::ParseFailed => e
|
|
14
|
+
raise "Failed to parse ASHRAE identifier '#{identifier}': #{e.message}"
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -14,12 +14,6 @@ module Pubid
|
|
|
14
14
|
class AddendaPackage < SupplementIdentifier
|
|
15
15
|
attribute :package_description, :string # e.g., "Addenda Supplement Package"
|
|
16
16
|
|
|
17
|
-
# See Errata.
|
|
18
|
-
def mr_supplement_suffix
|
|
19
|
-
["pkg", mr_sanitize(package_description)]
|
|
20
|
-
.compact.reject(&:empty?).join(".")
|
|
21
|
-
end
|
|
22
|
-
|
|
23
17
|
TYPED_STAGES = [
|
|
24
18
|
Components::TypedStage.new(
|
|
25
19
|
abbr: ["Addenda Supplement Package", "Addenda Package"],
|
|
@@ -33,8 +27,18 @@ module Pubid
|
|
|
33
27
|
short: "Addenda Package" }
|
|
34
28
|
end
|
|
35
29
|
|
|
30
|
+
def to_s
|
|
31
|
+
return base_identifier.to_s unless base_identifier
|
|
32
|
+
|
|
33
|
+
# Format: ASHRAE Standard 52.2-1999: Addenda Supplement Package
|
|
34
|
+
result = "ASHRAE #{base_identifier.type || 'Standard'} #{base_identifier.code}"
|
|
35
|
+
result += "-#{base_identifier.year}" if base_identifier.year
|
|
36
|
+
result += ": Addenda #{package_description}" if package_description
|
|
37
|
+
result
|
|
38
|
+
end
|
|
39
|
+
|
|
36
40
|
def copublisher
|
|
37
|
-
|
|
41
|
+
base_identifier&.copublisher
|
|
38
42
|
end
|
|
39
43
|
end
|
|
40
44
|
end
|
|
@@ -15,14 +15,6 @@ module Pubid
|
|
|
15
15
|
attribute :addendum_code, :string # a, b, c, ..., aa, ab, ..., ba, etc.
|
|
16
16
|
attribute :addendum_date, :string # Optional date (January 22, 2019)
|
|
17
17
|
|
|
18
|
-
# See Errata: the renderer must recurse into `base`. The addendum
|
|
19
|
-
# letter is what distinguishes addendum a from addendum b of one
|
|
20
|
-
# standard, so it belongs in the slug as well as in `==`.
|
|
21
|
-
def mr_supplement_suffix
|
|
22
|
-
["add", addendum_code&.to_s&.downcase]
|
|
23
|
-
.compact.reject(&:empty?).join(".")
|
|
24
|
-
end
|
|
25
|
-
|
|
26
18
|
TYPED_STAGES = [
|
|
27
19
|
Components::TypedStage.new(
|
|
28
20
|
abbr: ["Addendum", "Addenda"],
|
|
@@ -35,8 +27,27 @@ module Pubid
|
|
|
35
27
|
{ key: :addendum, title: "ASHRAE Addendum", short: "Addendum" }
|
|
36
28
|
end
|
|
37
29
|
|
|
30
|
+
def to_s
|
|
31
|
+
return base_identifier.to_s unless base_identifier
|
|
32
|
+
|
|
33
|
+
# Determine base type name for rendering
|
|
34
|
+
base_type = base_identifier.type || "Standard"
|
|
35
|
+
|
|
36
|
+
if copublisher
|
|
37
|
+
# Format: ANSI/ASHRAE Addendum a to ANSI/ASHRAE Standard 15-2019
|
|
38
|
+
result = "#{copublisher} Addendum #{addendum_code} to #{base_identifier}"
|
|
39
|
+
else
|
|
40
|
+
# Format: ASHRAE Addendum a to Standard 15-2001
|
|
41
|
+
result = "ASHRAE Addendum #{addendum_code} to #{base_type} #{base_identifier.code}"
|
|
42
|
+
result += "-#{base_identifier.year}" if base_identifier.year
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
result += " (#{addendum_date})" if addendum_date
|
|
46
|
+
result
|
|
47
|
+
end
|
|
48
|
+
|
|
38
49
|
def copublisher
|
|
39
|
-
|
|
50
|
+
base_identifier&.copublisher
|
|
40
51
|
end
|
|
41
52
|
end
|
|
42
53
|
end
|
|
@@ -2,117 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
module Pubid
|
|
4
4
|
module Ashrae
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
# relaton-index, which sorts and bsearches on `id.root.number.to_s`,
|
|
21
|
-
# keyed all 3,619 ASHRAE rows on "".
|
|
22
|
-
#
|
|
23
|
-
# It is now `attribute :number, :string` on the two single-document
|
|
24
|
-
# LEAVES (Identifiers::Standard and Identifiers::Guideline), never here:
|
|
25
|
-
# this class is inherited by BOTH SingleIdentifier and
|
|
26
|
-
# SupplementIdentifier, and redefining the parent's Components::Code-typed
|
|
27
|
-
# `number` on an inherited-from class resolves nondeterministically under
|
|
28
|
-
# multi-flavor load. The supplement types carry no number of their own —
|
|
29
|
-
# they reach it through #root, which walks `base`.
|
|
30
|
-
attribute :year, :string
|
|
31
|
-
attribute :type, :string
|
|
32
|
-
attribute :suffix, :string # R (revision), P (proposed), etc.
|
|
33
|
-
attribute :amendment, :string
|
|
34
|
-
attribute :reaffirmed, :string
|
|
35
|
-
attribute :copublisher, :string
|
|
36
|
-
|
|
37
|
-
# --- MR slug hooks -------------------------------------------------
|
|
38
|
-
#
|
|
39
|
-
# ASHRAE supplied none, and every base hook looks for something ASHRAE
|
|
40
|
-
# does not use: `mr_type` reads a typed_stage, `mr_year` reads a
|
|
41
|
-
# Components::Date. With `number` nil too, ALL 3,619 ids collapsed onto
|
|
42
|
-
# the single slug "ashrae" — the worst collapse measured in the gem, and
|
|
43
|
-
# `to_slug` is what consumers use as an output FILENAME.
|
|
44
|
-
#
|
|
45
|
-
# `type` distinguishes a Guideline from a Standard of the same number
|
|
46
|
-
# (Guideline 0 and Standard 0 are different documents), so it has to
|
|
47
|
-
# reach the slug and not only `==`.
|
|
48
|
-
def mr_type
|
|
49
|
-
type&.to_s&.downcase
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
# ASHRAE keeps its edition in a plain `year` string, not the inherited
|
|
53
|
-
# `date`, so the base hook read nil and every edition of one standard
|
|
54
|
-
# shared a slug.
|
|
55
|
-
def mr_year
|
|
56
|
-
year&.to_s
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
# `copublisher` is in `==` and in `to_s`, so by the project rule it has to
|
|
60
|
-
# reach the slug too: "ASHRAE Standard 15-2019 Addendum a" and
|
|
61
|
-
# "ANSI/ASHRAE Addendum a to ANSI/ASHRAE Standard 15-2019" have different
|
|
62
|
-
# hashes and would otherwise share a filename. (Whether those two strings
|
|
63
|
-
# ought to normalise to ONE identifier is a separate question, and not one
|
|
64
|
-
# the slug should paper over.)
|
|
65
|
-
def mr_publisher
|
|
66
|
-
mr_sanitize(copublisher || publisher)
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
# Both trailing markers are identity-bearing and must reach the slug, not
|
|
70
|
-
# only `==`: `reaffirmed` ("RA 2017") separates "ANSI/ASHRAE Standard
|
|
71
|
-
# 206-2013 (RA 2017)" from the plain "…206-2013", and `suffix` ("R" for
|
|
72
|
-
# revision, "P" for proposed) separates "ASHRAE Guideline 27-2019" from
|
|
73
|
-
# "…27-2019R". Their hashes differ, so their filenames must too.
|
|
74
|
-
# Uses the shared #mr_join rather than a bare `compact.join("-")`, so it
|
|
75
|
-
# returns nil instead of "" when nothing survives: MrString's own
|
|
76
|
-
# `compact` drops nil but not the empty string, and a blank segment
|
|
77
|
-
# yields a double dot in the joined slug.
|
|
78
|
-
def mr_number_with_part
|
|
79
|
-
mr_join(mr_sanitize(number),
|
|
80
|
-
(reaffirmed ? "ra#{mr_sanitize(reaffirmed)}" : nil),
|
|
81
|
-
mr_sanitize(suffix))
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
# An ASHRAE value can carry characters outside the [a-z0-9.-] charset
|
|
85
|
-
# Renderers::MrString documents: a comma in the code "90A,B,C", a slash
|
|
86
|
-
# in the copublisher "ANSI/ASHRAE", spaces in a package description.
|
|
87
|
-
# Filter BY CHARSET (the BIPM `mr_slug` precedent) rather than by an
|
|
88
|
-
# enumerated escape list, so a character introduced later cannot reach a
|
|
89
|
-
# filename.
|
|
90
|
-
#
|
|
91
|
-
# Public alongside the hooks above rather than tucked behind `private`,
|
|
92
|
-
# since the whole MR surface here is public, and the supplement types
|
|
93
|
-
# call it from their own mr_supplement_suffix. The output emptiness check
|
|
94
|
-
# matters: a value made only of out-of-charset characters collapses to
|
|
95
|
-
# "", which is truthy in Ruby and would reach the renderer as a blank
|
|
96
|
-
# segment, producing a double dot in the joined slug.
|
|
97
|
-
def mr_sanitize(value)
|
|
98
|
-
return nil if value.nil? || value.to_s.empty?
|
|
99
|
-
|
|
100
|
-
sanitized = value.to_s.downcase
|
|
101
|
-
.gsub(%r{[^a-z0-9.-]+}, "-").gsub(%r{\A-+|-+\z}, "")
|
|
102
|
-
sanitized.empty? ? nil : sanitized
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
# ASHRAE stores the publication year in a plain :string scalar, not a
|
|
106
|
-
# Components::Date, so the base #exclude's :year->:date remap cannot nil
|
|
107
|
-
# it. Reset the scalar directly (mirroring CSA/BIPM) so a year-less
|
|
108
|
-
# partial reference is a year wildcard under
|
|
109
|
-
# matches?(other, ignore: [:year]). super still recurses into the nested
|
|
110
|
-
# `base` of wrapper types (Errata/Addendum/…), which carry no year scalar.
|
|
111
|
-
def exclude(*args)
|
|
112
|
-
result = super
|
|
113
|
-
year_keys = args & %i[year date]
|
|
114
|
-
result.year = nil if !year_keys.empty? && result.respond_to?(:year=)
|
|
115
|
-
result
|
|
5
|
+
module Identifiers
|
|
6
|
+
# Base class for all ASHRAE identifiers
|
|
7
|
+
class Base < Pubid::Identifier
|
|
8
|
+
attribute :publisher, :string, default: "ASHRAE"
|
|
9
|
+
attribute :code, :string
|
|
10
|
+
attribute :year, :string
|
|
11
|
+
attribute :type, :string
|
|
12
|
+
attribute :suffix, :string # R (revision), P (proposed), etc.
|
|
13
|
+
attribute :amendment, :string
|
|
14
|
+
attribute :reaffirmed, :string
|
|
15
|
+
attribute :copublisher, :string
|
|
16
|
+
|
|
17
|
+
def self.parse(string)
|
|
18
|
+
Ashrae::Identifier.parse(string)
|
|
19
|
+
end
|
|
116
20
|
end
|
|
117
21
|
end
|
|
118
22
|
end
|
|
@@ -14,13 +14,6 @@ module Pubid
|
|
|
14
14
|
attribute :addendum_codes, :string # Multiple codes like "c and d"
|
|
15
15
|
attribute :connector, :string # "and" or ","
|
|
16
16
|
|
|
17
|
-
# See Errata. The whole letter list is the identity here — "Addenda a,
|
|
18
|
-
# b" and "Addenda c, d" of one standard are different documents.
|
|
19
|
-
def mr_supplement_suffix
|
|
20
|
-
["adds", mr_sanitize(addendum_codes)]
|
|
21
|
-
.compact.reject(&:empty?).join(".")
|
|
22
|
-
end
|
|
23
|
-
|
|
24
17
|
TYPED_STAGES = [
|
|
25
18
|
Components::TypedStage.new(
|
|
26
19
|
abbr: ["Addenda", "Combined Addenda"],
|
|
@@ -34,8 +27,23 @@ module Pubid
|
|
|
34
27
|
short: "Addenda" }
|
|
35
28
|
end
|
|
36
29
|
|
|
30
|
+
def to_s
|
|
31
|
+
return base_identifier.to_s unless base_identifier
|
|
32
|
+
|
|
33
|
+
base_type = base_identifier.type || "Standard"
|
|
34
|
+
if addendum_codes
|
|
35
|
+
# Format: ASHRAE Addenda c and d to Standard 15-1994
|
|
36
|
+
result = "ASHRAE Addenda #{addendum_codes} to #{base_type} #{base_identifier.code}"
|
|
37
|
+
else
|
|
38
|
+
# Format: ASHRAE Addenda to Standard 15-1994 (no specific codes)
|
|
39
|
+
result = "ASHRAE Addenda to #{base_type} #{base_identifier.code}"
|
|
40
|
+
end
|
|
41
|
+
result += "-#{base_identifier.year}" if base_identifier.year
|
|
42
|
+
result
|
|
43
|
+
end
|
|
44
|
+
|
|
37
45
|
def copublisher
|
|
38
|
-
|
|
46
|
+
base_identifier&.copublisher
|
|
39
47
|
end
|
|
40
48
|
end
|
|
41
49
|
end
|
|
@@ -13,15 +13,6 @@ module Pubid
|
|
|
13
13
|
class Errata < SupplementIdentifier
|
|
14
14
|
attribute :errata_date, :string
|
|
15
15
|
|
|
16
|
-
# Make Renderers::MrString recurse into `base` instead of slugging the
|
|
17
|
-
# supplement flat off attributes it does not have. Without it every
|
|
18
|
-
# erratum of every standard shared one filename, and `to_slug` is what
|
|
19
|
-
# consumers use as an output filename.
|
|
20
|
-
def mr_supplement_suffix
|
|
21
|
-
["errata", mr_sanitize(errata_date)]
|
|
22
|
-
.compact.reject(&:empty?).join(".")
|
|
23
|
-
end
|
|
24
|
-
|
|
25
16
|
TYPED_STAGES = [
|
|
26
17
|
Components::TypedStage.new(
|
|
27
18
|
abbr: ["Errata"],
|
|
@@ -33,6 +24,16 @@ module Pubid
|
|
|
33
24
|
def self.type
|
|
34
25
|
{ key: :errata, title: "ASHRAE Errata", short: "Errata" }
|
|
35
26
|
end
|
|
27
|
+
|
|
28
|
+
def to_s
|
|
29
|
+
return base_identifier.to_s unless base_identifier
|
|
30
|
+
|
|
31
|
+
# Format: ASHRAE Guideline 0-2005 Errata (September 28, 2011)
|
|
32
|
+
result = base_identifier.to_s
|
|
33
|
+
result += " Errata"
|
|
34
|
+
result += " (#{errata_date})" if errata_date
|
|
35
|
+
result
|
|
36
|
+
end
|
|
36
37
|
end
|
|
37
38
|
end
|
|
38
39
|
end
|
|
@@ -8,9 +8,6 @@ module Pubid
|
|
|
8
8
|
# ASHRAE Guideline identifier
|
|
9
9
|
# Example: ASHRAE Guideline 0-2019, ASHRAE Guideline 1.5
|
|
10
10
|
class Guideline < SingleIdentifier
|
|
11
|
-
# The relaton index key. Declared on the LEAF, not on the shared
|
|
12
|
-
# Identifier that SupplementIdentifier also inherits — see base.rb.
|
|
13
|
-
attribute :number, :string
|
|
14
11
|
attribute :type, :string, default: "Guideline"
|
|
15
12
|
|
|
16
13
|
TYPED_STAGES = [
|
|
@@ -11,22 +11,6 @@ module Pubid
|
|
|
11
11
|
# - Interpretations for Standard 15.2-2022
|
|
12
12
|
# - Interpretations for Standard 52.1-1992
|
|
13
13
|
class Interpretation < SupplementIdentifier
|
|
14
|
-
# Mirrors its four sibling supplement types: without it
|
|
15
|
-
# Renderers::MrString slugs the interpretation FLAT off attributes it
|
|
16
|
-
# does not have, instead of recursing into `base`.
|
|
17
|
-
#
|
|
18
|
-
# Currently unreachable, and NOT because of alternation ordering:
|
|
19
|
-
# rule(:interpretation_identifier) is reached and does match, but it
|
|
20
|
-
# never wraps its output in `.as(:interpretation_identifier)`, so
|
|
21
|
-
# Builder#build's branch for that key is dead code and the tree falls
|
|
22
|
-
# through to the plain-Standard path (pre-existing; pinned in
|
|
23
|
-
# spec/pubid/ashrae/root_number_spec.rb, hand-off
|
|
24
|
-
# ashrae-interpretation-collapses-onto-base). Added anyway so that
|
|
25
|
-
# fixing the dispatch does not silently ship malformed filenames.
|
|
26
|
-
def mr_supplement_suffix
|
|
27
|
-
"interp"
|
|
28
|
-
end
|
|
29
|
-
|
|
30
14
|
TYPED_STAGES = [
|
|
31
15
|
Components::TypedStage.new(
|
|
32
16
|
abbr: ["Interpretations"],
|
|
@@ -39,6 +23,16 @@ module Pubid
|
|
|
39
23
|
{ key: :interpretation, title: "ASHRAE Interpretations",
|
|
40
24
|
short: "Interpretations" }
|
|
41
25
|
end
|
|
26
|
+
|
|
27
|
+
def to_s
|
|
28
|
+
return base_identifier.to_s unless base_identifier
|
|
29
|
+
|
|
30
|
+
# Format: Interpretations for Standard 15.2-2022
|
|
31
|
+
base_type = base_identifier.type || "Standard"
|
|
32
|
+
result = "Interpretations for #{base_type} #{base_identifier.code}"
|
|
33
|
+
result += "-#{base_identifier.year}" if base_identifier.year
|
|
34
|
+
result
|
|
35
|
+
end
|
|
42
36
|
end
|
|
43
37
|
end
|
|
44
38
|
end
|
|
@@ -8,9 +8,6 @@ module Pubid
|
|
|
8
8
|
# ASHRAE Standard identifier
|
|
9
9
|
# Example: ASHRAE Standard 15-2024, ASHRAE Standard 90.1-2022
|
|
10
10
|
class Standard < SingleIdentifier
|
|
11
|
-
# The relaton index key. Declared on the LEAF, not on the shared
|
|
12
|
-
# Identifier that SupplementIdentifier also inherits — see base.rb.
|
|
13
|
-
attribute :number, :string
|
|
14
11
|
attribute :type, :string, default: "Standard"
|
|
15
12
|
|
|
16
13
|
TYPED_STAGES = [
|