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
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e650437c35c0d8e6ba019b07ae835ca224bd620415bd9c9d27c20a36a1b82589
|
|
4
|
+
data.tar.gz: 3d8d15f420d6cff7dbba69007218d670cde06511fc00df7b7dcfd957493600cb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f231838d92fd52c9d8fb298899a6f62018c29872d0d67104ea064ea70ea5cd4e115490876e2e83ba9601da87aeb9060d9f28e34535d0495ca680bc93ad6801ec
|
|
7
|
+
data.tar.gz: de691a34d6783e9df75f4304315d6791eb30e68b7788177f8e04285aa8f88372e38ce9754527eb8479db0926ef9276ddef7c6fae1ede170380541459c150a823
|
data/README.adoc
CHANGED
|
@@ -1,15 +1,54 @@
|
|
|
1
1
|
= PubID: Interoperable identifiers for information resources
|
|
2
2
|
|
|
3
|
-
image:https://img.shields.io/gem/v/pubid.svg["pubid Gem Version", link="https://rubygems.org/gems/pubid"]
|
|
3
|
+
image:https://img.shields.io/gem/v/pubid-core.svg["pubid-core Gem Version", link="https://rubygems.org/gems/pubid-core"]
|
|
4
4
|
image:https://github.com/metanorma/pubid/actions/workflows/rake.yml/badge.svg["Build Status", link="https://github.com/metanorma/pubid/actions/workflows/rake.yml"]
|
|
5
5
|
image:https://img.shields.io/github/issues-pr-raw/metanorma/pubid.svg["Pull Requests", link="https://github.com/metanorma/pubid/pulls"]
|
|
6
6
|
image:https://img.shields.io/github/commits-since/metanorma/pubid/latest.svg["Commits since latest",link="https://github.com/metanorma/pubid/releases"]
|
|
7
7
|
|
|
8
|
+
== Badges
|
|
9
|
+
|
|
10
|
+
[cols="3*", options="header"]
|
|
11
|
+
|===
|
|
12
|
+
| Core & Meta | Standards Organizations | Regional Standards
|
|
13
|
+
|
|
14
|
+
| pubid image:https://img.shields.io/gem/v/pubid.svg["pubid", link="https://rubygems.org/gems/pubid"]
|
|
15
|
+
| pubid-iso image:https://img.shields.io/gem/v/pubid-iso.svg["pubid-iso", link="https://rubygems.org/gems/pubid-iso"]
|
|
16
|
+
| pubid-cen image:https://img.shields.io/gem/v/pubid-cen.svg["pubid-cen", link="https://rubygems.org/gems/pubid-cen"]
|
|
17
|
+
|
|
18
|
+
| pubid-core image:https://img.shields.io/gem/v/pubid-core.svg["pubid-core", link="https://rubygems.org/gems/pubid-core"]
|
|
19
|
+
| pubid-iec image:https://img.shields.io/gem/v/pubid-iec.svg["pubid-iec", link="https://rubygems.org/gems/pubid-iec"]
|
|
20
|
+
| pubid-bsi image:https://img.shields.io/gem/v/pubid-bsi.svg["pubid-bsi", link="https://rubygems.org/gems/pubid-bsi"]
|
|
21
|
+
|
|
22
|
+
|
|
|
23
|
+
| pubid-ieee image:https://img.shields.io/gem/v/pubid-ieee.svg["pubid-ieee", link="https://rubygems.org/gems/pubid-ieee"]
|
|
24
|
+
| pubid-jis image:https://img.shields.io/gem/v/pubid-jis.svg["pubid-jis", link="https://rubygems.org/gems/pubid-jis"]
|
|
25
|
+
|
|
26
|
+
|
|
|
27
|
+
| pubid-nist image:https://img.shields.io/gem/v/pubid-nist.svg["pubid-nist", link="https://rubygems.org/gems/pubid-nist"]
|
|
28
|
+
|
|
|
29
|
+
|
|
30
|
+
|
|
|
31
|
+
| pubid-etsi image:https://img.shields.io/gem/v/pubid-etsi.svg["pubid-etsi", link="https://rubygems.org/gems/pubid-etsi"]
|
|
32
|
+
|
|
|
33
|
+
|
|
34
|
+
|
|
|
35
|
+
| pubid-itu image:https://img.shields.io/gem/v/pubid-itu.svg["pubid-itu", link="https://rubygems.org/gems/pubid-itu"]
|
|
36
|
+
|
|
|
37
|
+
|
|
38
|
+
|
|
|
39
|
+
| pubid-ccsds image:https://img.shields.io/gem/v/pubid-ccsds.svg["pubid-ccsds", link="https://rubygems.org/gems/pubid-ccsds"]
|
|
40
|
+
|
|
|
41
|
+
|
|
42
|
+
|
|
|
43
|
+
| pubid-plateau image:https://img.shields.io/gem/v/pubid-plateau.svg["pubid-plateau", link="https://rubygems.org/gems/pubid-plateau"]
|
|
44
|
+
|
|
|
45
|
+
|===
|
|
46
|
+
|
|
8
47
|
== Quick Start
|
|
9
48
|
|
|
10
49
|
[source,ruby]
|
|
11
50
|
----
|
|
12
|
-
gem install pubid
|
|
51
|
+
gem install pubid-core
|
|
13
52
|
|
|
14
53
|
require 'pubid/iso'
|
|
15
54
|
|
|
@@ -253,46 +292,6 @@ base.root.equal?(base) # => true
|
|
|
253
292
|
* ✅ **Works with supplements** - Traverses supplement chains correctly
|
|
254
293
|
|
|
255
294
|
|
|
256
|
-
== Flavor Prefix Routing
|
|
257
|
-
|
|
258
|
-
Every flavor exposes a static `prefixes` method returning the *leading
|
|
259
|
-
identifier prefix tokens* it recognizes — the tokens a printed identifier can
|
|
260
|
-
start with such that the string belongs to that SDO. This is the routing key a
|
|
261
|
-
consumer (such as relaton) uses to dispatch a reference string to the right
|
|
262
|
-
backend, without parsing.
|
|
263
|
-
|
|
264
|
-
[source,ruby]
|
|
265
|
-
----
|
|
266
|
-
require 'pubid'
|
|
267
|
-
|
|
268
|
-
Pubid::Iso.prefixes
|
|
269
|
-
# => ["ISO", "ISO/IEC", "IEC/ISO", "ISO/IEC/IEEE"]
|
|
270
|
-
|
|
271
|
-
Pubid::Bsi.prefixes
|
|
272
|
-
# => ["BS", "BSI", "DD", "PD", "PAS", "NA", "TS", "HB", ... , "BS EN ISO"]
|
|
273
|
-
|
|
274
|
-
# Look up a single flavor by name
|
|
275
|
-
Pubid.prefixes(:iec)
|
|
276
|
-
# => ["IEC", "CISPR", "IECEE", "IECEx", "IECQ", "ISO/IEC", "IEC/ISO", "ISO/IEC/IEEE"]
|
|
277
|
-
|
|
278
|
-
# Reverse index: prefix token => owning flavor(s)
|
|
279
|
-
Pubid.prefix_flavors["ISO/IEC"] # => [:iec, :iso]
|
|
280
|
-
Pubid.prefix_flavors["ISO/IEC/IEEE"] # => [:iec, :ieee, :iso]
|
|
281
|
-
Pubid.prefix_flavors["DD"] # => [:bsi]
|
|
282
|
-
----
|
|
283
|
-
|
|
284
|
-
**Semantics** (see `Pubid::PrefixesSupport` for the full contract):
|
|
285
|
-
|
|
286
|
-
* **Static** — no identifier string is parsed; callable at startup.
|
|
287
|
-
* **Uniform** — every registered flavor returns a plain `Array<String>`.
|
|
288
|
-
* **Symmetric joints** — a co-published prefix is listed by every co-publisher
|
|
289
|
-
(`"ISO/IEC"` is in both `Pubid::Iso.prefixes` and `Pubid::Iec.prefixes`).
|
|
290
|
-
* **Inclusion** — publisher prefixes (`ISO`, `NIST`, `BS`…) and leading
|
|
291
|
-
series/type tokens that can *begin* a reference (BSI `DD`/`PD`, NIST `FIPS`).
|
|
292
|
-
* **Exclusion** — pure sub-series that never lead a reference and
|
|
293
|
-
dangerously-ambiguous single letters (e.g. BSI aerospace `A`/`B`/`C`).
|
|
294
|
-
|
|
295
|
-
|
|
296
295
|
== Advanced Rendering Styles
|
|
297
296
|
|
|
298
297
|
ISO and IEC identifiers support multiple abbreviation forms for supplements to maintain round-trip fidelity with different official formats.
|
|
@@ -639,13 +638,15 @@ lib/tasks/export.rake # Rake tasks: export:website_data, export:a
|
|
|
639
638
|
|
|
640
639
|
== Repository
|
|
641
640
|
|
|
642
|
-
This repository
|
|
641
|
+
This repository is a monorepo for the PubID Ruby gems, which implement the PubID
|
|
643
642
|
identifier data model and its various components.
|
|
644
643
|
|
|
645
|
-
The
|
|
646
|
-
making it easier for developers to work with them in their applications.
|
|
647
|
-
|
|
648
|
-
|
|
644
|
+
The PubID Ruby gems implement identifiers from multiple standards organizations,
|
|
645
|
+
making it easier for developers to work with them in their applications.
|
|
646
|
+
|
|
647
|
+
This repository contains all the `pubid-*` gems consolidated into a single
|
|
648
|
+
monorepo for easier development and maintenance while preserving individual gem
|
|
649
|
+
releases.
|
|
649
650
|
|
|
650
651
|
== Structure
|
|
651
652
|
|
|
@@ -670,11 +671,11 @@ The repository is organized as follows:
|
|
|
670
671
|
├── spec/ # Tests
|
|
671
672
|
│ ├── pubid/ # Per-flavor tests
|
|
672
673
|
│ ├── fixtures/ # Bulk test fixtures
|
|
673
|
-
│ └── integration/ # Cross-
|
|
674
|
+
│ └── integration/ # Cross-gem tests
|
|
674
675
|
├── docs/ # Documentation
|
|
675
676
|
├── .github/workflows/ # CI/CD workflows
|
|
676
677
|
├── Gemfile # Root Gemfile for development
|
|
677
|
-
├── Rakefile #
|
|
678
|
+
├── Rakefile # Monorepo management tasks
|
|
678
679
|
├── .rubocop.yml # Shared RuboCop configuration
|
|
679
680
|
└── LICENSE.txt # Shared license
|
|
680
681
|
----
|
|
@@ -1728,13 +1729,9 @@ The V2 implementation strictly follows these design principles:
|
|
|
1728
1729
|
|
|
1729
1730
|
Object-Oriented Design:: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion
|
|
1730
1731
|
MECE Organization:: Mutually Exclusive (no overlap), Collectively Exhaustive (full coverage), clear boundaries
|
|
1731
|
-
Separation of Concerns:: Parser handles syntax only, Builder handles transformation only,
|
|
1732
|
-
Self-Describing Types:: Each identifier class IS the type definition — no central registry required for type metadata
|
|
1733
|
-
Renderer Pattern:: Dedicated per-flavor Renderer classes handle human-readable output; identifier `to_s` delegates to `render(format: :human)` via `FormatRegistry`
|
|
1734
|
-
Single Source of Truth:: Series matching, type metadata, and rendering logic live in exactly one place per concern
|
|
1732
|
+
Separation of Concerns:: Parser handles syntax only, Builder handles transformation only, Identifier handles rendering only
|
|
1735
1733
|
Extensibility:: Use inheritance and polymorphism, plugin/registry architecture, avoid hardcoding
|
|
1736
1734
|
Test Quality:: Each class has dedicated spec file, no lowering pass thresholds, test actual behavior
|
|
1737
|
-
Autoload Everywhere:: Ruby autoload replaces `require_relative` for internal library code — lazy loading, no circular dependency risk
|
|
1738
1735
|
|
|
1739
1736
|
=== Pre-parser Normalization (update_codes.yaml)
|
|
1740
1737
|
|
data/data/iec/update_codes.yaml
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
IECEx TRF 60079-11v3-4:2002: IECEx TRF 60079-11v4C:2002
|
|
2
|
-
# IECEE TRF data-source anomaly: the OD-010-1 ampersand separator (&) was
|
|
3
|
-
# mistyped as a semicolon (;) in IEC's source data. See pubid/pubid#239.
|
|
4
|
-
IECEE TRF 60335-2-4;7F:2012: IECEE TRF 60335-2-4&7F:2012
|
|
5
2
|
IECEE TRF cispr 15N:2022: IECEE TRF CISPR 15N:2022
|
|
6
3
|
IECEE TRF cispr 15M:2021: IECEE TRF CISPR 15M:2021
|
|
7
4
|
IECEE TRF cispr 15L:2020: IECEE TRF CISPR 15L:2020
|
data/data/ieee/update_codes.yaml
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
IEEE Unapproved Draft Std PC37.110/D911Oct 07: IEEE Unapproved Draft Std PC37.110/D711, Oct 07
|
|
2
|
-
# Issue #206: "IEEE Unapproved Draft Std P15289, 06" — the ", 06" suffix
|
|
3
|
-
# has no clear meaning in IEEE's own grammar. Treating it as a draft
|
|
4
|
-
# iteration number (D6) gives a parseable form. Conservative targeted
|
|
5
|
-
# normalization rather than a general rule; revisit if more cases surface.
|
|
6
|
-
IEEE Unapproved Draft Std P15289, 06: IEEE Unapproved Draft Std P15289/D6
|
|
7
2
|
IEEE C57.139/D14June 2010: IEEE C57.139/D14, June 2010
|
|
8
3
|
IEEE P1653.5/D7d1 November, 2019: IEEE P1653.5/D7.1 November, 2019
|
|
9
4
|
IEEE P1017/D062012: P1017/D062012, Jun 2012
|
|
@@ -37,13 +32,7 @@ ISO/IEC/IEEE P26515 FDIS, May 2018: ISO/IEC/IEEE FDIS P26515, May 2018
|
|
|
37
32
|
IEEE Std Std 1139-2008: IEEE Std 1139-2008
|
|
38
33
|
IEC/IEEE P60214-2, FDIS 2018: IEC/IEEE FDIS P60214-2-2018(E)
|
|
39
34
|
IEC/IEEE P62582-6, FDIS 2018: IEC/IEEE FDIS P62582-6-2018(E)
|
|
40
|
-
|
|
41
|
-
# DIS draft — ".2" is a draft version, not a part, so the prior mapping
|
|
42
|
-
# to "ISO/IEC DIS P26511-2" produced a phantom document that doesn't exist
|
|
43
|
-
# (ISO/IEC 26511 has no part 2). The ISO parser doesn't yet support the
|
|
44
|
-
# IEEE-style "P" prefix or the ", Month Year" date suffix on ISO/IEC DIS
|
|
45
|
-
# citations, so normalize to the bare DIS base + year. See pubid/pubid#212.
|
|
46
|
-
ISO/IEC DIS P26511.2, May 2017: ISO/IEC DIS 26511.2:2017
|
|
35
|
+
ISO/IEC DIS P26511.2, May 2017: ISO/IEC DIS P26511-2, May 2017
|
|
47
36
|
ISO/IEC/IEEE P90003_FDIS, August 2018: ISO/IEC/IEEE FDIS P90003, August 2018
|
|
48
37
|
ISO/IEC/IEEE P29119-1/FDIS, September 2021: ISO/IEC/IEEE FDIS P29119-1, September 2021
|
|
49
38
|
ISO/IEC/IEEE/ P12207-2/D3_FDIS, July 2020: ISO/IEC/IEEE FDIS P12207-2/D3, July 2020
|
|
@@ -113,98 +102,3 @@ IEEE Unapproved Draft Std P1635/ASHRAE 21_D4, Jan 2010: IEEE Unapproved Draft St
|
|
|
113
102
|
IEC/IEEE 62582-1:2011 Edition 1.0 2011-08: IEC/IEEE 62582-1-2011 Edition 1.0 2011-08
|
|
114
103
|
ISO/IEC/IEEE CD P26513/D1, August 2015: ISO/IEC/IEEE P26513/D1, August 2015
|
|
115
104
|
/C37.0I0d-1984/: C37.010d-1984
|
|
116
|
-
|
|
117
|
-
# --- month spellings pubid rejects -> canonical (relaton-ieee normtitles) ---
|
|
118
|
-
# Surgical, case-sensitive: only forms the grammar genuinely REJECTS. Do NOT
|
|
119
|
-
# add full-name->abbr rules (pubid accepts "June"/"September") or a blanket
|
|
120
|
-
# underscore rule — a broader ruleset regressed 12 already-parsing normtitles.
|
|
121
|
-
# Validated over relaton's 8,767 normtitles: +33 gained, 0 regressions.
|
|
122
|
-
# 4-letter abbreviation
|
|
123
|
-
/\bSept\b/: Sep
|
|
124
|
-
# OCR typos seen in the IEEE rawbib feed
|
|
125
|
-
/\bFeburary\b/: Feb
|
|
126
|
-
/\bNovemer\b/: Nov
|
|
127
|
-
/\bOctobor\b/: Oct
|
|
128
|
-
/\bJanurary\b/: Jan
|
|
129
|
-
# lowercase-only month words -> proper case (case-sensitive: leaves correct case alone)
|
|
130
|
-
/\bjanuary\b/: January
|
|
131
|
-
/\bfebruary\b/: February
|
|
132
|
-
/\bmarch\b/: March
|
|
133
|
-
/\bapril\b/: April
|
|
134
|
-
/\bjune\b/: June
|
|
135
|
-
/\bjuly\b/: July
|
|
136
|
-
/\baugust\b/: August
|
|
137
|
-
/\bseptember\b/: September
|
|
138
|
-
/\boctober\b/: October
|
|
139
|
-
/\bnovember\b/: November
|
|
140
|
-
/\bdecember\b/: December
|
|
141
|
-
|
|
142
|
-
# --- one-off IEEE normtitles migrated from relaton-ieee RawbibIdParser ---
|
|
143
|
-
# Exact-match, anchored (plain keys compile to /^…$/), zero-regression: each
|
|
144
|
-
# maps a specific malformed catalog string to relaton's canonical id, which
|
|
145
|
-
# pubid parses losslessly. (hand-off: ieee-update-codes-oneoffs.) Group 1
|
|
146
|
-
# parses on its own; the "dotted-draft" group relies on the verbatim-draft fix.
|
|
147
|
-
"IEEE Std P1073.1.3.4/D3.0": "IEEE Std P11073.00101"
|
|
148
|
-
"IEEE P802.1Qbu/03.0, July 2015": "IEEE P802.1Qbu/D-3.0-2015"
|
|
149
|
-
"IEEE P802.11aqTM/013.0 October 2017": "IEEE P802.11aqTM/D-13.0-2017"
|
|
150
|
-
"IEC/IEEE P62271-37-013:2015 D13.4": "IEC/IEEE P62271.37-013/D-13.4-2015"
|
|
151
|
-
"ISO/IEC/IEEE DIS P42020:201x(E), June 2017": "ISO/IEC/IEEE DIS P42020-2017-06"
|
|
152
|
-
"ISO/IEC/IEEE DIS P16326/201x, December 2018": "ISO/IEC/IEEE DIS P16326-2018-12"
|
|
153
|
-
"ISO/IEC/IEEE/P21839, 2019(E)": "ISO/IEC/IEEE P21839-2019"
|
|
154
|
-
"ISO/IEC/IEEE CD2 P12207-2: 201x(E), February 2019": "ISO/IEC/IEEE CD2 P12207.2-2019-02"
|
|
155
|
-
"ISO/IEC/IEEE P42010.WD4:2019(E)": "ISO/IEC/IEEE P42010/D-4-2019"
|
|
156
|
-
"IEC/IEEE P63195_CDV/V3, February 2020": "IEC/IEEE CDV P63195-2020-02"
|
|
157
|
-
"ISO/IEC/IEEE/P16085_DIS, March 2020": "ISO/IEC/IEEE DIS P16085-2020-03"
|
|
158
|
-
"ANSI/IEEE Std: Outdoor Apparatus Bushings": "ANSI/IEEE Std 21-1976-11"
|
|
159
|
-
"Draft National Electrical Safety Code, January 2016": "IEEE PC2-2016-01"
|
|
160
|
-
"International Standard ISO/IEC 8802-9: 1996(E) ANSI/IEEE Std 802.9, 1996 Edition": "ISO/IEC/IEEE Std 802.9-1996"
|
|
161
|
-
"ISO/IEC13210: 1994 (E) ANSI/IEEE Std 1003.3-1991": "ISO/IEC/IEEE 13210-1994"
|
|
162
|
-
"J-STD-016-1995": "IEEE 016-1995"
|
|
163
|
-
"Nuclear EQ Sourcebook and Supplement": "IEEE 7438946"
|
|
164
|
-
"PC37.30.2/D043 Rev 18, May 2015": "IEEE PC37.30-2/D-043/R-18-2015"
|
|
165
|
-
"IEEE/IEC P62582 CD2 proposal, May 2017": "IEEE/IEC CD2 P62582-2017-05"
|
|
166
|
-
"ISO/IEC/IEEE P16326:201x WD.4a, July 2017": "ISO/IEC/IEEE P16326/D-4a-2017-07"
|
|
167
|
-
"ISO/IEC/IEEE CD.1 P21839, October 2017": "ISO/IEC/IEEE CD1 P21839-2017-10"
|
|
168
|
-
"ISO/IEC/IEEE P16326:201x WD5, December 2017": "ISO/IEC/IEEE P16326/D-5-2017-12"
|
|
169
|
-
"IEEE/ISO/IEC P42010.CD1-V1.0, April 2020": "IEEE/ISO/IEC CD1 P42010-2020-04"
|
|
170
|
-
"Unapproved Draft Std ISO/IEC FDIS 15288:2007(E) IEEE P15288/D3,": "ISO/IEC/IEEE FDIS Std P15288/D-3-2007"
|
|
171
|
-
"IS0/IEC/IEEE 8802-11:2012/Amd.5:2015(E) (Adoption of IEEE Std 802.11af-2014)": "ISO/IEC/IEEE 802.11/Amd5-2012"
|
|
172
|
-
# `/D-` corrupted IEEE draft docids — malformed draft designations emitted by
|
|
173
|
-
# relaton-ieee's RawbibIdParser fallback rendering (the `/D-`, `_CDV_`, `.pdf`,
|
|
174
|
-
# `201x`, stray dots/spaces). Each maps to a canonical parseable form that
|
|
175
|
-
# retains number/part/draft/stage/date in the hash (the relaton index-v2 gate
|
|
176
|
-
# is the hash round-trip + non-empty root.number, not `to_s == input`).
|
|
177
|
-
# Interim measure; the durable fix is upstream in RawbibIdParser. See
|
|
178
|
-
# HANDOFFS/metanorma__pubid__ieee-update-codes-dashD-drafts.md.
|
|
179
|
-
# --- 8 pre-verified ---
|
|
180
|
-
"IEEE Approved Std P1609.3/D-23.pdf-2007-02": "IEEE Approved Std P1609.3/D23, 02 2007"
|
|
181
|
-
"IEEE P3004.5/D-6.2.": "IEEE P3004.5/D6.2"
|
|
182
|
-
"IEEE P730/D-0.16.-2025": "IEEE P730/D0.16-2025"
|
|
183
|
-
"IEEE PC37.107/D-4.-2023-11": "IEEE PC37.107/D4, 11 2023"
|
|
184
|
-
"IEEE PC37.113/D-8.0.-2015-08": "IEEE PC37.113/D8.0, 08 2015"
|
|
185
|
-
"IEEE PC37.98/D-5.1D-2013": "IEEE PC37.98/D5.1D-2013"
|
|
186
|
-
"IEEE PC57.637/D-6.2.-2014-03": "IEEE PC57.637/D6.2, 03 2014"
|
|
187
|
-
"IEEE Std P650/D-9.-2006": "IEEE Std P650/D9-2006"
|
|
188
|
-
# --- 21 derived (revision markers dropped, corrigendum reordered, joint
|
|
189
|
-
# stage+draft repositions year onto number with stage moved front) ---
|
|
190
|
-
"IEC/IEEE P63198.2775/D-6.1_CDV_March-2022": "IEC/IEEE CDV P63198.2775/D6.1, March 2022"
|
|
191
|
-
"IEEE 3.Rev.B/D-4.0-2023-01": "IEEE P3/D4.0, 01 2023"
|
|
192
|
-
"IEEE 3.Rev.B/D-5.0-2023-03": "IEEE P3/D5.0, 03 2023"
|
|
193
|
-
"IEEE P1003.1/D-5/Cor1-201x-2012-04": "IEEE P1003.1/Cor 1/D5, 04 2012"
|
|
194
|
-
"IEEE P1003.1/D-5/Cor1-201x-2012-08": "IEEE P1003.1/Cor 1/D5, 08 2012"
|
|
195
|
-
"IEEE P1127/D-4.1_July-2023": "IEEE P1127/D4.1, July 2023"
|
|
196
|
-
"IEEE P2660_1/D-2-2020-06": "IEEE P2660.1/D2, 06 2020"
|
|
197
|
-
"IEEE P802.1AE/D-1.0/R-/Cor1": "IEEE P802.1AE/Cor 1/D1.0"
|
|
198
|
-
"IEEE P802.1AE_Rev/D-1.2-2018": "IEEE P802.1AE/D1.2-2018"
|
|
199
|
-
"IEEE P802.1AE_Rev/D-1.3-2018": "IEEE P802.1AE/D1.3-2018"
|
|
200
|
-
"IEEE Unapproved Std P802.16Rev2/D-9-2009-01": "IEEE Unapproved Std P802.16Rev2/D9-2009"
|
|
201
|
-
"IEEE Unapproved Std P802.1X_REV/D-4.5-2009": "IEEE Unapproved Std P802.1X/D4.5-2009"
|
|
202
|
-
"IEEE Unapproved Std PC37.91/D-8-2007-20": "IEEE Unapproved Std PC37.91/D8-2007"
|
|
203
|
-
"IEEEE P1243/D-3-2023-02": "IEEE P1243/D3, 02 2023"
|
|
204
|
-
"ISO/IEC/IEEE FDIS P15289./E-3/D-2-2016": "ISO/IEC/IEEE FDIS P15289-2016/D2"
|
|
205
|
-
"ISO/IEC/IEEE P24641/D-2_CD-2020": "ISO/IEC/IEEE CD P24641-2020/D2"
|
|
206
|
-
"ISO/IEC/IEEE P24641/D-3_CD2": "ISO/IEC/IEEE CD2 P24641/D3"
|
|
207
|
-
"ISO/IEC/IEEE P24748.3/D-3_FDIS-2020": "ISO/IEC/IEEE FDIS P24748.3-2020/D3"
|
|
208
|
-
"ISO/IEC/IEEE/ P12207.2/D-3_FDIS-2020": "ISO/IEC/IEEE FDIS P12207.2-2020/D3"
|
|
209
|
-
"ISO/IEC/IEEE/ P24748.3/D-IS-2019": "ISO/IEC/IEEE DIS P24748.3-2019"
|
|
210
|
-
"P1635/D10/ASHARE 21/D-10-2016": "IEEE P1635/D10-2016"
|
data/data/nist/update_codes.yaml
CHANGED
|
@@ -1,40 +1,7 @@
|
|
|
1
|
-
# NIST pre-parser normalization rules.
|
|
2
|
-
#
|
|
3
|
-
# This file is applied to every NIST identifier string BEFORE any Ruby
|
|
4
|
-
# preprocessing (see lib/pubid/nist/preprocessor.rb). Each entry is one
|
|
5
|
-
# of:
|
|
6
|
-
#
|
|
7
|
-
# "plain string": "replacement"
|
|
8
|
-
# Full-line match (^...$), literal. Use for specific malformed IDs
|
|
9
|
-
# that have a single canonical form.
|
|
10
|
-
#
|
|
11
|
-
# "/regex/": "replacement" (no flags)
|
|
12
|
-
# "/regex/imx": "replacement" (i = IGNORECASE, m = MULTILINE,
|
|
13
|
-
# x = EXTENDED)
|
|
14
|
-
# Applied via gsub. Use for general patterns that are pure
|
|
15
|
-
# string→string substitutions.
|
|
16
|
-
#
|
|
17
|
-
# Design split (MECE):
|
|
18
|
-
# - This file: data-driven lookups and pure subs that any maintainer
|
|
19
|
-
# (including non-Rubyists) can extend safely.
|
|
20
|
-
# - Preprocessor (Ruby): stateful or interdependent transformations
|
|
21
|
-
# where stage order, conditional logic, or external state (e.g.,
|
|
22
|
-
# Roman numeral conversion, year-range reverts) make YAML unsuitable.
|
|
23
|
-
#
|
|
24
|
-
# Reorder entries with care — later entries often match patterns produced
|
|
25
|
-
# by earlier ones. Run `bundle exec rspec spec/pubid/nist/` after edits.
|
|
26
1
|
NBS MN: NBS MONO
|
|
27
2
|
NIST MN: NIST MONO
|
|
28
|
-
# Long-form series names — normalize to the abbreviated form the parser expects.
|
|
29
|
-
/\bMonograph\b/: MONO
|
|
30
|
-
# Citation-form comma before long parameter prefixes — strip so the parser's
|
|
31
|
-
# " Rev. " / " Part. " / " Vol. " prefix rules match (issue #197).
|
|
32
|
-
'/,\s+(Rev\.|Part\.|Vol\.|Revision|Volume|Part)(?=\s|\d)/': ' \1'
|
|
33
3
|
NIST MP: NBS MP
|
|
34
4
|
NIST SP 260-162 2006ed.: NIST SP 260-162e2006
|
|
35
|
-
# Doubled publisher+series prefix — an error in the NIST Tech Pubs source data
|
|
36
|
-
# (pubid/pubid#152). Collapse the repeated "NIST AI" so the remainder parses.
|
|
37
|
-
NIST AI NIST AI 100-2e2023 ipd: NIST AI 100-2e2023 ipd
|
|
38
5
|
NBS CIRC 154suprev: NBS CIRC 154r1sup
|
|
39
6
|
NBS CIRC supJun1925-Jun1926: NBS CIRC 24e7sup2
|
|
40
7
|
NBS CIRC supJun1925-Jun1927: NBS CIRC 24e7sup3
|
|
@@ -59,9 +26,7 @@ NIST.CSWP.01162020pt: NIST.CSWP.01162020(por)
|
|
|
59
26
|
FIPS PUB: FIPS
|
|
60
27
|
NBS CRPL c4-4: NBS CRPL 4-4
|
|
61
28
|
NIST AMS 300-8r1 (February 2021 update): NIST AMS 300-8r1/Upd1-202102
|
|
62
|
-
NIST AMS 300-8r1/upd: NIST AMS 300-8r1/Upd1-202102
|
|
63
29
|
NIST IR 8115r1-upd: NIST IR 8115r1/Upd1-202103
|
|
64
|
-
NIST IR 8170-upd: NIST IR 8170/Upd1-202003
|
|
65
30
|
NIST TN 2150-upd: NIST TN 2150/Upd1-202102
|
|
66
31
|
NBS IR 73-197r: NBS IR 73-197r1
|
|
67
32
|
NBS.HB.105-1r1990: NIST.HB.105-1r1990
|
data/lib/pubid/amca/builder.rb
CHANGED
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
module Pubid
|
|
4
4
|
module Amca
|
|
5
5
|
# Builder class for constructing ACMA 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
|
|
@@ -46,7 +46,7 @@ module Pubid
|
|
|
46
46
|
|
|
47
47
|
# Class method to build an identifier from parsed data
|
|
48
48
|
# @param parsed [Hash, Array] the parsed identifier data
|
|
49
|
-
# @return [
|
|
49
|
+
# @return [Identifiers::Base] the constructed identifier object
|
|
50
50
|
def self.build(parsed)
|
|
51
51
|
new.build(parsed)
|
|
52
52
|
end
|
|
@@ -78,7 +78,7 @@ module Pubid
|
|
|
78
78
|
if parsed[:code_with_year]
|
|
79
79
|
code_year_data = parsed[:code_with_year]
|
|
80
80
|
if code_year_data && code_year_data[:code]
|
|
81
|
-
attributes[:
|
|
81
|
+
attributes[:code] =
|
|
82
82
|
extract_value(code_year_data[:code])
|
|
83
83
|
end
|
|
84
84
|
if code_year_data && code_year_data[:year]
|
|
@@ -86,7 +86,7 @@ module Pubid
|
|
|
86
86
|
extract_value(code_year_data[:year])
|
|
87
87
|
end
|
|
88
88
|
elsif parsed[:code]
|
|
89
|
-
attributes[:
|
|
89
|
+
attributes[:code] = extract_value(parsed[:code])
|
|
90
90
|
end
|
|
91
91
|
|
|
92
92
|
# Extract year if not already extracted from code_with_year
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
module Pubid
|
|
4
|
+
module Amca
|
|
5
|
+
module Identifier
|
|
6
|
+
# Parse an ACMA identifier string into an identifier object
|
|
7
|
+
# @param identifier [String] The ACMA identifier string to parse
|
|
8
|
+
# @return [Pubid::Amca::Identifier] 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 ACMA identifier '#{identifier}': #{e.message}"
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -2,90 +2,62 @@
|
|
|
2
2
|
|
|
3
3
|
module Pubid
|
|
4
4
|
module Amca
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
module Identifiers
|
|
6
|
+
# Base identifier class for ACMA identifiers
|
|
7
|
+
# Single Responsibility: Common functionality for all ACMA identifier types
|
|
8
|
+
class Base < Pubid::Identifier
|
|
9
|
+
# Override base_hash to handle AMCA-specific copublisher format (string, not array)
|
|
10
|
+
def base_hash
|
|
11
|
+
hash = super
|
|
12
|
+
# AMCA's copublisher is a string, not an array, so remove it from copublishers
|
|
13
|
+
hash.delete(:copublishers) if hash[:copublishers]
|
|
14
|
+
hash
|
|
14
15
|
end
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
attribute :copublisher, :string
|
|
18
|
+
attribute :code, Components::Code
|
|
19
|
+
attribute :year, Components::Date
|
|
20
|
+
attribute :suffix, :string
|
|
21
|
+
attribute :reaffirmed, :string
|
|
22
|
+
|
|
23
|
+
# AMCA uses a fixed publisher string
|
|
24
|
+
def publisher
|
|
25
|
+
"AMCA"
|
|
18
26
|
end
|
|
19
27
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
28
|
+
# Render the identifier as a string
|
|
29
|
+
def to_s
|
|
30
|
+
parts = []
|
|
31
|
+
parts << copublisher if copublisher
|
|
32
|
+
# type is a hash, get the title
|
|
33
|
+
t = self.class.attributes.key?(:type) ? type : nil
|
|
34
|
+
if t.is_a?(Hash) && t[:title]
|
|
35
|
+
parts << t[:title].to_s
|
|
36
|
+
end
|
|
37
|
+
parts << code.to_s
|
|
38
|
+
parts << "-#{year}" if year
|
|
23
39
|
|
|
24
|
-
|
|
25
|
-
# to_hash/from_hash. Was a `def publisher` method, which made lutaml
|
|
26
|
-
# serialize a String against the Components::Publisher attribute and raise.
|
|
27
|
-
attribute :publisher, :string, default: -> { "AMCA" }
|
|
28
|
-
attribute :copublisher, :string
|
|
29
|
-
# The document number used to live in AMCA's own `code` attribute, leaving
|
|
30
|
-
# the `number` inherited from ::Pubid::Identifier nil — so relaton-index,
|
|
31
|
-
# which sorts and bsearches on `id.root.number.to_s`, keyed every AMCA row
|
|
32
|
-
# on "". `code` is gone; each LEAF now declares `attribute :number,
|
|
33
|
-
# :string` (see standard.rb / publication.rb / interpretation.rb).
|
|
34
|
-
#
|
|
35
|
-
# It is declared on the leaves, never here: this class is inherited by all
|
|
36
|
-
# three of them, and redefining the parent's Components::Code-typed
|
|
37
|
-
# `number` on an inherited-from class resolves nondeterministically under
|
|
38
|
-
# multi-flavor load. Do not reintroduce `code`, and do not move `number`
|
|
39
|
-
# up here.
|
|
40
|
-
#
|
|
41
|
-
# A bare 2-digit edition year ("21", "02"). Declared :string, not
|
|
42
|
-
# Components::Date: the builder assigns a String and lutaml does not cast
|
|
43
|
-
# it, so a Date declaration left the PARSE path holding a String while
|
|
44
|
-
# from_hash produced a Components::Date — making
|
|
45
|
-
# `parse(x) == from_hash(parse(x).to_hash)` false for every AMCA id and
|
|
46
|
-
# breaking #matches?, which is built on ==. to_hash and to_s agreed, so
|
|
47
|
-
# the relaton index gate never caught it.
|
|
48
|
-
attribute :year, :string
|
|
49
|
-
attribute :suffix, :string
|
|
50
|
-
attribute :reaffirmed, :string
|
|
40
|
+
result = parts.compact.join(" ")
|
|
51
41
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
key_value do
|
|
58
|
-
map "_type", to: :_type
|
|
59
|
-
map "publisher", to: :publisher
|
|
60
|
-
map "copublisher", to: :copublisher
|
|
61
|
-
map "number", to: :number
|
|
62
|
-
map "year", to: :year
|
|
63
|
-
map "suffix", to: :suffix
|
|
64
|
-
map "reaffirmed", to: :reaffirmed
|
|
65
|
-
end
|
|
42
|
+
# Handle additional copublisher after year (e.g., /ASHRAE 51-16)
|
|
43
|
+
if copublisher&.include?("/") && year
|
|
44
|
+
type_title = t.is_a?(Hash) ? t[:title].to_s : ""
|
|
45
|
+
result = "#{copublisher} #{type_title} #{code}-#{year}"
|
|
46
|
+
end
|
|
66
47
|
|
|
67
|
-
|
|
68
|
-
UrnGenerator.new(self).generate
|
|
69
|
-
end
|
|
48
|
+
result += " (#{reaffirmed})" if reaffirmed
|
|
70
49
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
# interpretation and the standard it interprets share a slug — and
|
|
74
|
-
# `to_slug` is an output FILENAME. Before the index columns landed the
|
|
75
|
-
# whole flavor collapsed onto two slugs ("amca" and "").
|
|
76
|
-
def mr_type
|
|
77
|
-
return nil unless self.class.respond_to?(:type)
|
|
50
|
+
result
|
|
51
|
+
end
|
|
78
52
|
|
|
79
|
-
self.
|
|
80
|
-
|
|
53
|
+
def self.parse(string)
|
|
54
|
+
Amca::Identifier.parse(string)
|
|
55
|
+
end
|
|
81
56
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
# CLAUDE.md.
|
|
87
|
-
def mr_year
|
|
88
|
-
year&.to_s
|
|
57
|
+
def to_urn
|
|
58
|
+
require_relative "../urn_generator"
|
|
59
|
+
UrnGenerator.new(self).generate
|
|
60
|
+
end
|
|
89
61
|
end
|
|
90
62
|
end
|
|
91
63
|
end
|
|
@@ -8,29 +8,42 @@ module Pubid
|
|
|
8
8
|
# - AMCA 99 JW Interp
|
|
9
9
|
# - AMCA 204 – 1
|
|
10
10
|
# - ANSI/AMCA 204 Interp
|
|
11
|
-
class Interpretation <
|
|
12
|
-
|
|
11
|
+
class Interpretation < Base
|
|
12
|
+
attr_reader :interpretation_code
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
def initialize(code:, year: nil, copublisher: nil, suffix: nil,
|
|
15
|
+
reaffirmed: nil, interpretation_code: nil)
|
|
16
|
+
@code = Components::Code.new(value: code.to_s)
|
|
17
|
+
@year = Components::Date.new(year: year.to_s) if year
|
|
18
|
+
@copublisher = copublisher
|
|
19
|
+
@suffix = suffix
|
|
20
|
+
@reaffirmed = reaffirmed
|
|
21
|
+
@interpretation_code = interpretation_code
|
|
22
|
+
end
|
|
18
23
|
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
def self.type
|
|
25
|
+
{ key: :interpretation, title: "Interpretation", short: "Interp" }
|
|
21
26
|
end
|
|
22
27
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
# different documents, and #== agrees). It is in `==` and in `to_s`, so
|
|
26
|
-
# it must reach the slug too, or three interpretations of standard 99
|
|
27
|
-
# share one filename.
|
|
28
|
-
def mr_number_with_part
|
|
29
|
-
mr_join(super, interpretation_code&.to_s&.downcase)
|
|
28
|
+
def type
|
|
29
|
+
Interpretation.type
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
# @return [String] the rendered interpretation identifier
|
|
33
|
+
def to_s
|
|
34
|
+
parts = []
|
|
35
|
+
parts << @copublisher if @copublisher
|
|
36
|
+
parts << @code.to_s
|
|
37
|
+
|
|
38
|
+
if @interpretation_code
|
|
39
|
+
parts << "– #{@interpretation_code}"
|
|
40
|
+
elsif @year
|
|
41
|
+
parts << "-#{@year}"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
parts << " #{@suffix}" if @suffix
|
|
45
|
+
|
|
46
|
+
parts.join(" ").squeeze(" ")
|
|
34
47
|
end
|
|
35
48
|
end
|
|
36
49
|
end
|