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
|
@@ -13,58 +13,21 @@ module Pubid
|
|
|
13
13
|
#
|
|
14
14
|
# @example Standard format
|
|
15
15
|
# nesc = Pubid::Ieee.parse("C2-1997 National Electric Safety Code")
|
|
16
|
-
# nesc.code.
|
|
17
|
-
# nesc.year
|
|
16
|
+
# nesc.code.value # => "C2"
|
|
17
|
+
# nesc.year.year # => 1997
|
|
18
18
|
#
|
|
19
19
|
# @example Handbook format
|
|
20
20
|
# nesc = Pubid::Ieee.parse("2017 NESC Handbook, Premier Edition")
|
|
21
|
-
# nesc.year
|
|
21
|
+
# nesc.year.year # => 2017
|
|
22
22
|
# nesc.variant # => "Handbook"
|
|
23
23
|
# nesc.edition # => "Premier Edition"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
# `code` -> travels as the runtime `code_obj` (base #code returns
|
|
32
|
-
# it); the concrete leaves serialize the flat split
|
|
33
|
-
# columns via the CodeNumber mixin.
|
|
34
|
-
# `year` -> the base's plain `:string` year (was a
|
|
35
|
-
# Pubid::Components::Date), matching IEEE's scalar-date
|
|
36
|
-
# convention. `nesc.year` is now "2017", not a component.
|
|
37
|
-
# `draft` -> dropped; the base declares a `:string` `draft` (the draft
|
|
38
|
-
# *designator*), so a boolean here would corrupt it. Test
|
|
39
|
-
# draft-ness with `#draft?` / the Nesc::Draft class.
|
|
40
|
-
#
|
|
41
|
-
# This class is abstract and enforces it in #initialize: the builder
|
|
42
|
-
# always instantiates a concrete leaf (Nesc::Edition for the plain
|
|
43
|
-
# year-first form), because only leaves may redefine `number` as a
|
|
44
|
-
# :string (see the CodeNumber mixin) and only leaves declare the
|
|
45
|
-
# NESC-specific `polymorphic_name` that from_hash routes on.
|
|
46
|
-
class Base < Pubid::Ieee::Identifier
|
|
47
|
-
attribute :variant, :string # Handbook, Redline, etc.
|
|
48
|
-
# Registered-trademark "(R)" after the full name or abbreviation
|
|
49
|
-
attribute :registered, :boolean
|
|
50
|
-
# Whether the "(NESC)"/"(NESC(R))" abbreviation suffix was present
|
|
51
|
-
attribute :abbr_suffix, :boolean
|
|
52
|
-
# Registered-trademark "(R)" inside the "(NESC(R))" suffix
|
|
53
|
-
attribute :abbr_suffix_registered, :boolean
|
|
54
|
-
|
|
55
|
-
# Guards the abstract contract — see the class docs. Ruby has no
|
|
56
|
-
# `abstract`, and an instantiated Base would carry the derived
|
|
57
|
-
# `_type` "pubid:ieee:base" (which from_hash cannot resolve back to
|
|
58
|
-
# NESC) and a nil `number` (the empty relaton index key).
|
|
59
|
-
def initialize(args = {}, **kwargs)
|
|
60
|
-
if instance_of?(Base)
|
|
61
|
-
raise NotImplementedError,
|
|
62
|
-
"#{self.class} is abstract; instantiate a concrete NESC " \
|
|
63
|
-
"type (Standard, Edition, Handbook, Redline, Draft)"
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
super
|
|
67
|
-
end
|
|
24
|
+
class Base < Lutaml::Model::Serializable
|
|
25
|
+
attribute :code, Pubid::Ieee::Components::Code # "C2" code designation
|
|
26
|
+
attribute :year, Pubid::Components::Date # Publication year
|
|
27
|
+
attribute :variant, :string # Handbook, Redline, etc.
|
|
28
|
+
attribute :edition, :string # Edition notation
|
|
29
|
+
attribute :draft, :boolean # Draft flag
|
|
30
|
+
attribute :month, :string # For draft identifiers
|
|
68
31
|
|
|
69
32
|
# Publisher portion for NESC identifiers
|
|
70
33
|
#
|
|
@@ -73,52 +36,18 @@ module Pubid
|
|
|
73
36
|
"NESC"
|
|
74
37
|
end
|
|
75
38
|
|
|
76
|
-
#
|
|
77
|
-
# of its own (the base's `draft` is the draft designator string), so
|
|
78
|
-
# draft-ness lives in the class.
|
|
79
|
-
#
|
|
80
|
-
# @return [Boolean]
|
|
81
|
-
def draft?
|
|
82
|
-
is_a?(Nesc::Draft)
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
# Rendering for year-first NESC identifiers (the C2-code standard form
|
|
86
|
-
# overrides this in Nesc::Standard). IEEE catalogues the year-first
|
|
87
|
-
# editions with the "IEEE Std" prefix, so it is prepended here.
|
|
39
|
+
# Base rendering - override in subclasses
|
|
88
40
|
#
|
|
89
|
-
# @param trademark [Boolean] append the IEEE trademark symbol (™/®)
|
|
90
41
|
# @return [String] String representation
|
|
91
|
-
def to_s
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
# Trademark symbol for this document's own code. A NESC string starts
|
|
98
|
-
# with the publication *year*, so the string-scanning
|
|
99
|
-
# Pubid::Ieee.trademark_symbol would pick the wrong field — an
|
|
100
|
-
# edition year of 2030 would silently render ®.
|
|
101
|
-
#
|
|
102
|
-
# @return [String] "®" or "™"
|
|
103
|
-
def trademark_symbol
|
|
104
|
-
Pubid::Ieee.trademark_symbol_for(code_obj&.number,
|
|
105
|
-
code_obj&.prefix,
|
|
106
|
-
publishers: [publisher])
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
# The document-name portion, including the registered marks and the
|
|
110
|
-
# optional "(NESC(R))" abbreviation suffix.
|
|
111
|
-
#
|
|
112
|
-
# @return [String] e.g. "National Electrical Safety Code(R) (NESC(R))"
|
|
113
|
-
def name_portion
|
|
114
|
-
name = "National Electrical Safety Code"
|
|
115
|
-
name += "(R)" if registered
|
|
116
|
-
if abbr_suffix
|
|
117
|
-
suffix = "NESC"
|
|
118
|
-
suffix += "(R)" if abbr_suffix_registered
|
|
119
|
-
name += " (#{suffix})"
|
|
42
|
+
def to_s
|
|
43
|
+
parts = []
|
|
44
|
+
if code && year
|
|
45
|
+
parts << "#{code}-#{year.year}"
|
|
46
|
+
elsif year
|
|
47
|
+
parts << year.year.to_s
|
|
120
48
|
end
|
|
121
|
-
|
|
49
|
+
parts << "National Electrical Safety Code"
|
|
50
|
+
parts.join(" ")
|
|
122
51
|
end
|
|
123
52
|
end
|
|
124
53
|
end
|
|
@@ -10,31 +10,16 @@ module Pubid
|
|
|
10
10
|
# that are under development or review.
|
|
11
11
|
#
|
|
12
12
|
# @example
|
|
13
|
-
# nesc = Pubid::Ieee.parse("Draft
|
|
14
|
-
# nesc.to_s
|
|
15
|
-
# # => "Draft National Electrical Safety Code, June 2011"
|
|
16
|
-
#
|
|
17
|
-
# NOTE: the spelled-out "Draft National Electrical Safety Code, …" form
|
|
18
|
-
# is claimed by the generic IEEE grammar before it reaches the NESC
|
|
19
|
-
# sub-parser, so it does not currently build this class. Pre-existing
|
|
20
|
-
# dispatcher gap, pinned in spec/pubid/ieee/ire_nesc_roundtrip_spec.rb.
|
|
13
|
+
# nesc = Pubid::Ieee.parse("Draft National Electrical Safety Code, January 2016")
|
|
14
|
+
# nesc.to_s # => "Draft National Electrical Safety Code, January 2016"
|
|
21
15
|
class Draft < Base
|
|
22
|
-
include Pubid::Ieee::Identifiers::CodeNumber
|
|
23
|
-
|
|
24
|
-
def self.polymorphic_name
|
|
25
|
-
"pubid:ieee:nesc-draft"
|
|
26
|
-
end
|
|
27
|
-
|
|
28
16
|
# Render draft identifier
|
|
29
17
|
#
|
|
30
|
-
# @param trademark [Boolean] append the IEEE trademark symbol (™/®)
|
|
31
18
|
# @return [String] Draft format with optional month and year
|
|
32
|
-
def to_s
|
|
19
|
+
def to_s
|
|
33
20
|
parts = ["Draft National Electrical Safety Code"]
|
|
34
|
-
parts << ", #{month} #{year}" if month && year
|
|
35
|
-
|
|
36
|
-
result += trademark_symbol if trademark
|
|
37
|
-
annotate_plain_render(result, **opts)
|
|
21
|
+
parts << ", #{month} #{year.year}" if month && year
|
|
22
|
+
parts.join
|
|
38
23
|
end
|
|
39
24
|
end
|
|
40
25
|
end
|
|
@@ -11,30 +11,19 @@ module Pubid
|
|
|
11
11
|
#
|
|
12
12
|
# @example Basic handbook
|
|
13
13
|
# nesc = Pubid::Ieee.parse("2012 NESC Handbook")
|
|
14
|
-
# nesc.to_s # => "
|
|
14
|
+
# nesc.to_s # => "2012 NESC Handbook"
|
|
15
15
|
#
|
|
16
16
|
# @example With edition
|
|
17
17
|
# nesc = Pubid::Ieee.parse("2017 NESC Handbook, Premier Edition")
|
|
18
|
-
# nesc.to_s # => "
|
|
18
|
+
# nesc.to_s # => "2017 NESC Handbook, Premier Edition"
|
|
19
19
|
class Handbook < Base
|
|
20
|
-
include Pubid::Ieee::Identifiers::CodeNumber
|
|
21
|
-
|
|
22
|
-
def self.polymorphic_name
|
|
23
|
-
"pubid:ieee:nesc-handbook"
|
|
24
|
-
end
|
|
25
|
-
|
|
26
20
|
# Render handbook identifier
|
|
27
21
|
#
|
|
28
|
-
# @param trademark [Boolean] append the IEEE trademark symbol (™/®)
|
|
29
22
|
# @return [String] YYYY NESC Handbook format with optional edition
|
|
30
|
-
def to_s
|
|
31
|
-
|
|
32
|
-
abbr += "(R)" if registered
|
|
33
|
-
parts = [["IEEE Std", year, "#{abbr} Handbook"].compact.join(" ")]
|
|
23
|
+
def to_s
|
|
24
|
+
parts = ["#{year.year} NESC Handbook"]
|
|
34
25
|
parts << ", #{edition}" if edition
|
|
35
|
-
|
|
36
|
-
result += trademark_symbol if trademark
|
|
37
|
-
annotate_plain_render(result, **opts)
|
|
26
|
+
parts.join
|
|
38
27
|
end
|
|
39
28
|
end
|
|
40
29
|
end
|
|
@@ -13,20 +13,11 @@ module Pubid
|
|
|
13
13
|
# nesc = Pubid::Ieee.parse("2017 NESC Redline")
|
|
14
14
|
# nesc.to_s # => "2017 NESC Redline"
|
|
15
15
|
class Redline < Base
|
|
16
|
-
include Pubid::Ieee::Identifiers::CodeNumber
|
|
17
|
-
|
|
18
|
-
def self.polymorphic_name
|
|
19
|
-
"pubid:ieee:nesc-redline"
|
|
20
|
-
end
|
|
21
|
-
|
|
22
16
|
# Render redline identifier
|
|
23
17
|
#
|
|
24
|
-
# @param trademark [Boolean] append the IEEE trademark symbol (™/®)
|
|
25
18
|
# @return [String] YYYY NESC Redline format
|
|
26
|
-
def to_s
|
|
27
|
-
|
|
28
|
-
result += trademark_symbol if trademark
|
|
29
|
-
annotate_plain_render(result, **opts)
|
|
19
|
+
def to_s
|
|
20
|
+
"#{year.year} NESC Redline"
|
|
30
21
|
end
|
|
31
22
|
end
|
|
32
23
|
end
|
|
@@ -13,26 +13,11 @@ module Pubid
|
|
|
13
13
|
# nesc = Pubid::Ieee.parse("C2-1997 National Electric Safety Code")
|
|
14
14
|
# nesc.to_s # => "C2-1997 National Electrical Safety Code"
|
|
15
15
|
class Standard < Base
|
|
16
|
-
include Pubid::Ieee::Identifiers::CodeNumber
|
|
17
|
-
|
|
18
|
-
# Distinct from Identifiers::Standard, whose derived polymorphic name
|
|
19
|
-
# is also "pubid:ieee:standard".
|
|
20
|
-
def self.polymorphic_name
|
|
21
|
-
"pubid:ieee:nesc-standard"
|
|
22
|
-
end
|
|
23
|
-
|
|
24
16
|
# Render standard NESC identifier
|
|
25
17
|
#
|
|
26
|
-
# @
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def to_s(trademark: false, **opts)
|
|
30
|
-
# Unlike the year-first NESC editions, this form renders a code, so
|
|
31
|
-
# the mark goes after it and before the year — as everywhere else.
|
|
32
|
-
code_part = "C2"
|
|
33
|
-
code_part += trademark_symbol if trademark
|
|
34
|
-
code_part += "-#{year}" if year
|
|
35
|
-
annotate_plain_render("#{code_part} National Electrical Safety Code", **opts)
|
|
18
|
+
# @return [String] C2-YYYY format
|
|
19
|
+
def to_s
|
|
20
|
+
"C2-#{year.year} National Electrical Safety Code"
|
|
36
21
|
end
|
|
37
22
|
end
|
|
38
23
|
end
|
|
@@ -6,7 +6,6 @@ module Pubid
|
|
|
6
6
|
module Nesc
|
|
7
7
|
autoload :Base, "#{__dir__}/nesc/base"
|
|
8
8
|
autoload :Draft, "#{__dir__}/nesc/draft"
|
|
9
|
-
autoload :Edition, "#{__dir__}/nesc/edition"
|
|
10
9
|
autoload :Handbook, "#{__dir__}/nesc/handbook"
|
|
11
10
|
autoload :Redline, "#{__dir__}/nesc/redline"
|
|
12
11
|
autoload :Standard, "#{__dir__}/nesc/standard"
|
|
@@ -5,9 +5,15 @@ module Pubid
|
|
|
5
5
|
module Identifiers
|
|
6
6
|
# Parenthetical Identifier - wraps identifier with parenthetical annotation
|
|
7
7
|
# Example: "IEEE Standard No 18-1968 (ANSI C55.1-1968)"
|
|
8
|
-
class ParentheticalIdentifier <
|
|
9
|
-
attribute :
|
|
10
|
-
attribute :parenthetical_identifier,
|
|
8
|
+
class ParentheticalIdentifier < Base
|
|
9
|
+
attribute :base_identifier, Base, polymorphic: true
|
|
10
|
+
attribute :parenthetical_identifier, Base, polymorphic: true
|
|
11
|
+
|
|
12
|
+
def to_s
|
|
13
|
+
result = base_identifier.to_s
|
|
14
|
+
result += " (#{parenthetical_identifier})" if parenthetical_identifier
|
|
15
|
+
result
|
|
16
|
+
end
|
|
11
17
|
end
|
|
12
18
|
end
|
|
13
19
|
end
|
|
@@ -8,40 +8,17 @@ module Pubid
|
|
|
8
8
|
# where P1234 is the project number and D5 is the draft version
|
|
9
9
|
# This is distinct from a StandardIdentifier - the "P" indicates project status,
|
|
10
10
|
# not a code prefix like "C" in "C57.12"
|
|
11
|
-
class ProjectDraftIdentifier <
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
|
|
15
|
-
include CodeNumber
|
|
16
|
-
|
|
17
|
-
TYPED_STAGES = [
|
|
18
|
-
Components::TypedStage.new(
|
|
19
|
-
abbr: ["P"],
|
|
20
|
-
stage_code: "draft",
|
|
21
|
-
type_code: "draft",
|
|
22
|
-
ieee_draft_equivalent: "P",
|
|
23
|
-
approval_status: "unapproved",
|
|
24
|
-
project_status: true,
|
|
25
|
-
),
|
|
26
|
-
].freeze
|
|
27
|
-
|
|
28
|
-
def self.type
|
|
29
|
-
{ key: :P, title: "Project Draft", short: "P" }
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
# Override initialize to strip "P" prefix from code before creating Code
|
|
33
|
-
# object. The "P" is reflected in the typed_stage, not in the Code
|
|
34
|
-
# component itself. Accepts keyword args or a single positional hash (the
|
|
35
|
-
# base #exclude/matching rebuild passes the latter).
|
|
36
|
-
def initialize(args = {}, **kwargs)
|
|
37
|
-
args = kwargs.empty? ? args.dup : args.merge(kwargs)
|
|
11
|
+
class ProjectDraftIdentifier < Base
|
|
12
|
+
# Override initialize to strip "P" prefix from code before creating Code object
|
|
13
|
+
# The "P" is reflected in the typed_stage, not in the Code component itself
|
|
14
|
+
def initialize(**args)
|
|
38
15
|
# If code is provided with "P" prefix (e.g., "P1234"), strip it
|
|
39
16
|
if args[:code].is_a?(String) && args[:code].start_with?("P")
|
|
40
17
|
args[:code] = args[:code][1..] # Strip leading "P"
|
|
41
18
|
end
|
|
42
19
|
|
|
43
|
-
# Call parent initialize with modified code
|
|
44
|
-
super
|
|
20
|
+
# Call parent initialize with modified code
|
|
21
|
+
super
|
|
45
22
|
end
|
|
46
23
|
end
|
|
47
24
|
end
|
|
@@ -7,18 +7,25 @@ module Pubid
|
|
|
7
7
|
# IEEE standard with optional revision note, marked as redline
|
|
8
8
|
# Example: "IEEE Std 1018-2013 (Revison of IEEE Std 1018-2004) - Redline"
|
|
9
9
|
# Contains: base standard + optional revision standard + redline flag
|
|
10
|
-
class RedlinedStandard <
|
|
10
|
+
class RedlinedStandard < Base
|
|
11
11
|
# The current standard identifier
|
|
12
|
-
attribute :
|
|
12
|
+
attribute :base_identifier, Base, polymorphic: true
|
|
13
13
|
|
|
14
14
|
# Optional: the standard this revises
|
|
15
|
-
attribute :revision_of,
|
|
15
|
+
attribute :revision_of, Base, polymorphic: true
|
|
16
16
|
|
|
17
17
|
# Redline flag (always true for this class)
|
|
18
18
|
attribute :redline, :boolean, default: -> { true }
|
|
19
19
|
|
|
20
|
+
def to_s
|
|
21
|
+
result = base_identifier.to_s
|
|
22
|
+
result += " (Revision of #{revision_of})" if revision_of
|
|
23
|
+
result += " - Redline" if redline
|
|
24
|
+
result
|
|
25
|
+
end
|
|
26
|
+
|
|
20
27
|
def publisher
|
|
21
|
-
|
|
28
|
+
base_identifier&.publisher || "IEEE"
|
|
22
29
|
end
|
|
23
30
|
end
|
|
24
31
|
end
|
|
@@ -8,10 +8,7 @@ module Pubid
|
|
|
8
8
|
# Handles both:
|
|
9
9
|
# - SI: Published standards (IEEE/ASTM SI 10-1997)
|
|
10
10
|
# - PSI: Proposed SI (drafts: IEEE/ASTM PSI 10/D2, October 2015)
|
|
11
|
-
class SiStandard <
|
|
12
|
-
# Reliable string `number` for relaton's index key (see CodeNumber).
|
|
13
|
-
include CodeNumber
|
|
14
|
-
|
|
11
|
+
class SiStandard < Base
|
|
15
12
|
# TYPED_STAGES for SI standards
|
|
16
13
|
TYPED_STAGES = [
|
|
17
14
|
Components::TypedStage.new(
|
|
@@ -32,6 +29,44 @@ module Pubid
|
|
|
32
29
|
|
|
33
30
|
# Use proper Draft component (Lutaml::Model object)
|
|
34
31
|
attr_accessor :draft_obj
|
|
32
|
+
|
|
33
|
+
def to_s
|
|
34
|
+
parts = []
|
|
35
|
+
|
|
36
|
+
# Publisher (IEEE/ASTM)
|
|
37
|
+
parts << "IEEE/ASTM"
|
|
38
|
+
|
|
39
|
+
# Type (SI or PSI based on typed_stage)
|
|
40
|
+
parts << if typed_stage&.abbr&.include?("PSI")
|
|
41
|
+
"PSI"
|
|
42
|
+
else
|
|
43
|
+
"SI"
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Code (number) with draft version for PSI
|
|
47
|
+
code_part = code.to_s
|
|
48
|
+
if draft_obj
|
|
49
|
+
# Use Draft component's version attribute
|
|
50
|
+
code_part += "/D#{draft_obj.version}"
|
|
51
|
+
end
|
|
52
|
+
parts << code_part if code
|
|
53
|
+
|
|
54
|
+
# Date
|
|
55
|
+
if month && year
|
|
56
|
+
parts << ", #{month} #{year}"
|
|
57
|
+
elsif year
|
|
58
|
+
parts << "-#{year}"
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Relationships (if present)
|
|
62
|
+
result = parts.join(" ")
|
|
63
|
+
if relationships && !relationships.empty?
|
|
64
|
+
rel_strs = relationships.map(&:to_s)
|
|
65
|
+
result += " (#{rel_strs.join(' / ')})"
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
result
|
|
69
|
+
end
|
|
35
70
|
end
|
|
36
71
|
end
|
|
37
72
|
end
|
|
@@ -17,10 +17,7 @@ module Pubid
|
|
|
17
17
|
# std = Pubid::Ieee.parse("ANSI/IEEE Std 500-1984")
|
|
18
18
|
# std.publisher # => "IEEE"
|
|
19
19
|
# std.copublisher # => ["ANSI"]
|
|
20
|
-
class Standard <
|
|
21
|
-
# Reliable string `number` for relaton's index key (see CodeNumber).
|
|
22
|
-
include CodeNumber
|
|
23
|
-
|
|
20
|
+
class Standard < Base
|
|
24
21
|
# TYPED_STAGES for published IEEE standards
|
|
25
22
|
# Standards use "Std" abbreviation for published state
|
|
26
23
|
TYPED_STAGES = [
|
|
@@ -32,7 +29,7 @@ module Pubid
|
|
|
32
29
|
].freeze
|
|
33
30
|
|
|
34
31
|
def self.type
|
|
35
|
-
{ key: :std,
|
|
32
|
+
{ key: :std, title: "Standard", short: "Std" }
|
|
36
33
|
end
|
|
37
34
|
|
|
38
35
|
# Render standard IEEE format
|
|
@@ -3,38 +3,19 @@
|
|
|
3
3
|
module Pubid
|
|
4
4
|
module Ieee
|
|
5
5
|
module Identifiers
|
|
6
|
-
#
|
|
6
|
+
# Base class for supplement identifiers (amendments, corrigenda, interpretations, etc.)
|
|
7
7
|
# Supplements modify or add to a base document
|
|
8
|
-
class SupplementIdentifier <
|
|
9
|
-
attribute :
|
|
8
|
+
class SupplementIdentifier < Base
|
|
9
|
+
attribute :base_identifier, Base, polymorphic: true
|
|
10
10
|
|
|
11
|
-
# Delegate publisher to
|
|
11
|
+
# Delegate publisher to base_identifier
|
|
12
12
|
def publisher
|
|
13
|
-
|
|
13
|
+
base_identifier&.publisher
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
-
# Delegate code to
|
|
16
|
+
# Delegate code to base_identifier if not overridden
|
|
17
17
|
def code
|
|
18
|
-
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
# `publisher` is a pure delegation to `base`, so it must never be
|
|
22
|
-
# serialized independently on the wrapper. lutaml's default-tracking
|
|
23
|
-
# otherwise emits it asymmetrically — omitted on the parse path (the
|
|
24
|
-
# wrapper's own attribute is never assigned) but present after
|
|
25
|
-
# `from_hash` (deserialization assigns it) — which breaks the canonical
|
|
26
|
-
# `to_hash` round-trip for a supplement whose base carries a non-default
|
|
27
|
-
# publisher (e.g. an ANSI/ISO corrigendum). The truth lives in `base`.
|
|
28
|
-
def to_hash(*args)
|
|
29
|
-
hash = super
|
|
30
|
-
if hash.is_a?(::Hash)
|
|
31
|
-
# `publisher` and `code` are delegated to `base`; never serialize
|
|
32
|
-
# them on the wrapper (they'd duplicate base.publisher/base.number
|
|
33
|
-
# and, for publisher, desync across parse vs from_hash).
|
|
34
|
-
hash.delete("publisher")
|
|
35
|
-
hash.delete("code")
|
|
36
|
-
end
|
|
37
|
-
hash
|
|
18
|
+
base_identifier&.code
|
|
38
19
|
end
|
|
39
20
|
end
|
|
40
21
|
end
|
|
@@ -4,10 +4,9 @@ module Pubid
|
|
|
4
4
|
module Ieee
|
|
5
5
|
module Identifiers
|
|
6
6
|
autoload :AdoptedStandard, "#{__dir__}/identifiers/adopted_standard"
|
|
7
|
-
autoload :
|
|
7
|
+
autoload :Base, "#{__dir__}/identifiers/base"
|
|
8
8
|
autoload :ConformanceIdentifier,
|
|
9
9
|
"#{__dir__}/identifiers/conformance_identifier"
|
|
10
|
-
autoload :CodeNumber, "#{__dir__}/identifiers/code_number"
|
|
11
10
|
autoload :Corrigendum, "#{__dir__}/identifiers/corrigendum"
|
|
12
11
|
autoload :CsaDualPublished, "#{__dir__}/identifiers/csa_dual_published"
|
|
13
12
|
autoload :DualIdentifier, "#{__dir__}/identifiers/dual_identifier"
|
|
@@ -14,12 +14,11 @@ module Pubid
|
|
|
14
14
|
# Extract type
|
|
15
15
|
attributes[:type] = extract_value(parsed[:type])
|
|
16
16
|
|
|
17
|
-
# Extract
|
|
18
|
-
# initializer parses it into `code_obj` and the CodeNumber mixin
|
|
19
|
-
# hoists the flat split columns (number/prefix/parts/separator) that
|
|
20
|
-
# relaton indexes on.
|
|
17
|
+
# Extract number
|
|
21
18
|
number_str = extract_value(parsed[:number])
|
|
22
|
-
|
|
19
|
+
if number_str
|
|
20
|
+
attributes[:number] = Components::Code.parse(number_str)
|
|
21
|
+
end
|
|
23
22
|
|
|
24
23
|
# Extract year - handle both short (52) and full (1952) formats
|
|
25
24
|
year_str = extract_value(parsed[:year])
|
|
@@ -29,13 +28,13 @@ module Pubid
|
|
|
29
28
|
if year_int.between?(12, 63)
|
|
30
29
|
year_int += 1900
|
|
31
30
|
end
|
|
32
|
-
attributes[:year] = year_int
|
|
31
|
+
attributes[:year] = year_int
|
|
33
32
|
end
|
|
34
33
|
|
|
35
34
|
# Override with full_year if present
|
|
36
35
|
full_year_str = extract_value(parsed[:full_year])
|
|
37
36
|
if full_year_str
|
|
38
|
-
attributes[:year] = full_year_str.to_i
|
|
37
|
+
attributes[:year] = full_year_str.to_i
|
|
39
38
|
end
|
|
40
39
|
|
|
41
40
|
# Create identifier
|
|
@@ -5,36 +5,32 @@ require "lutaml/model"
|
|
|
5
5
|
module Pubid
|
|
6
6
|
module Ieee
|
|
7
7
|
module Ire
|
|
8
|
-
#
|
|
9
|
-
#
|
|
10
|
-
|
|
11
|
-
# same reasons AIEE was (see Pubid::Ieee::Aiee::Identifier): descending
|
|
12
|
-
# from bare Lutaml::Model::Serializable left IRE without `#root` (relaton
|
|
13
|
-
# keys its index on `id.root.number.to_s` -> NoMethodError), without a
|
|
14
|
-
# polymorphic `_type` (so `from_hash` could not route back), and — because
|
|
15
|
-
# an IRE object was not a ::Pubid::Identifier — unassignable to
|
|
16
|
-
# Identifiers::AdoptedStandard#adopted_identifiers, which raised
|
|
17
|
-
# Lutaml::Model::IncorrectModelError on `to_hash` for the IRE-adopted
|
|
18
|
-
# forms ("IEEE Std 159-1972 (52 IRE 7 S2)").
|
|
19
|
-
#
|
|
20
|
-
# The document designation ("7.S2") is carried in the shared `code_obj`
|
|
21
|
-
# and serialized as the flat split columns (number/prefix/parts/
|
|
22
|
-
# separator); the publication year uses the base's plain `:string` `year`
|
|
23
|
-
# (IRE previously declared its own `:integer` one, which would collide).
|
|
24
|
-
class Identifier < Pubid::Ieee::Identifier
|
|
25
|
-
include Pubid::Ieee::Identifiers::CodeNumber
|
|
26
|
-
|
|
8
|
+
# Base class for IRE identifiers
|
|
9
|
+
# IRE (Institute of Radio Engineers): 1912-1963
|
|
10
|
+
class Identifier < Lutaml::Model::Serializable
|
|
27
11
|
attribute :publisher, :string, default: -> { "IRE" }
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
12
|
+
attribute :type, :string # "Trans.", "Standard", "Std"
|
|
13
|
+
attribute :number, Components::Code
|
|
14
|
+
attribute :year, :integer
|
|
15
|
+
|
|
16
|
+
def initialize(**args)
|
|
17
|
+
super()
|
|
18
|
+
|
|
19
|
+
# Handle number as string or Code object
|
|
20
|
+
if args[:number].is_a?(String)
|
|
21
|
+
self.number = Components::Code.parse(args[:number])
|
|
22
|
+
elsif args[:number]
|
|
23
|
+
self.number = args[:number]
|
|
24
|
+
end
|
|
32
25
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
26
|
+
# Set other attributes
|
|
27
|
+
attrs = self.class.attributes
|
|
28
|
+
args.each do |key, value|
|
|
29
|
+
next if key == :number
|
|
30
|
+
|
|
31
|
+
setter = :"#{key}="
|
|
32
|
+
public_send(setter, value) if attrs.key?(key)
|
|
33
|
+
end
|
|
38
34
|
end
|
|
39
35
|
|
|
40
36
|
# Parse IRE identifier string
|
|
@@ -44,28 +40,17 @@ module Pubid
|
|
|
44
40
|
builder.build(parsed)
|
|
45
41
|
end
|
|
46
42
|
|
|
47
|
-
def to_s
|
|
43
|
+
def to_s
|
|
44
|
+
parts = []
|
|
48
45
|
# Year comes FIRST in IRE format - render as 2-digit short year
|
|
49
|
-
|
|
50
|
-
.
|
|
51
|
-
|
|
52
|
-
# the code boundary — but the symbol is picked from the code, not by
|
|
53
|
-
# scanning the string (which starts with the year).
|
|
54
|
-
if trademark
|
|
55
|
-
result += Pubid::Ieee.trademark_symbol_for(code_obj&.number,
|
|
56
|
-
code_obj&.prefix,
|
|
57
|
-
publishers: [publisher])
|
|
46
|
+
if year
|
|
47
|
+
short_year = year.between?(1900, 1999) ? year - 1900 : year
|
|
48
|
+
parts << short_year.to_s
|
|
58
49
|
end
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
# IRE prints the publication year first, abbreviated to two digits for
|
|
65
|
-
# the 20th century ("1952" => "52").
|
|
66
|
-
def short_year
|
|
67
|
-
value = year.to_i
|
|
68
|
-
(value.between?(1900, 1999) ? value - 1900 : value).to_s
|
|
50
|
+
parts << publisher
|
|
51
|
+
parts << type if type
|
|
52
|
+
parts << number.to_s if number
|
|
53
|
+
parts.join(" ")
|
|
69
54
|
end
|
|
70
55
|
end
|
|
71
56
|
end
|
|
@@ -7,7 +7,7 @@ module Pubid
|
|
|
7
7
|
module Ire
|
|
8
8
|
# Parser for IRE (Institute of Radio Engineers) identifiers
|
|
9
9
|
# Historical period: 1912-1963 (merged into IEEE in 1963)
|
|
10
|
-
class Parser < ::
|
|
10
|
+
class Parser < Parslet::Parser
|
|
11
11
|
# Basic building blocks
|
|
12
12
|
rule(:space) { str(" ") }
|
|
13
13
|
rule(:space?) { space.maybe }
|