Module: Pubid::Ieee
- Defined in:
- lib/pubid/ieee.rb,
lib/pubid/ieee/ire.rb,
lib/pubid/ieee/aiee.rb,
lib/pubid/ieee/nesc.rb,
lib/pubid/ieee_debug.rb,
lib/pubid/ieee/parser.rb,
lib/pubid/ieee/builder.rb,
lib/pubid/ieee/renderer.rb,
lib/pubid/ieee/identifier.rb,
lib/pubid/ieee/ire/parser.rb,
lib/pubid/ieee/pre_parser.rb,
lib/pubid/ieee/urn_parser.rb,
lib/pubid/ieee/aiee/parser.rb,
lib/pubid/ieee/identifiers.rb,
lib/pubid/ieee/ire/builder.rb,
lib/pubid/ieee/nesc/parser.rb,
lib/pubid/ieee/aiee/builder.rb,
lib/pubid/ieee/nesc/builder.rb,
lib/pubid/ieee/typed_stages.rb,
lib/pubid/ieee/urn_generator.rb,
lib/pubid/ieee/ire/identifier.rb,
lib/pubid/ieee/aiee/identifier.rb,
lib/pubid/ieee/components/code.rb,
lib/pubid/ieee/components/draft.rb,
lib/pubid/ieee/identifiers/base.rb,
lib/pubid/ieee/identifiers/nesc.rb,
lib/pubid/ieee/identifiers/standard.rb,
lib/pubid/ieee/identifiers/nesc/base.rb,
lib/pubid/ieee/components/typed_stage.rb,
lib/pubid/ieee/identifiers/nesc/draft.rb,
lib/pubid/ieee/components/relationship.rb,
lib/pubid/ieee/identifiers/corrigendum.rb,
lib/pubid/ieee/identifiers/si_standard.rb,
lib/pubid/ieee/identifiers/nesc/redline.rb,
lib/pubid/ieee/identifiers/nesc/handbook.rb,
lib/pubid/ieee/identifiers/nesc/standard.rb,
lib/pubid/ieee/identifiers/dual_published.rb,
lib/pubid/ieee/identifiers/dual_identifier.rb,
lib/pubid/ieee/identifiers/adopted_standard.rb,
lib/pubid/ieee/identifiers/joint_development.rb,
lib/pubid/ieee/identifiers/redlined_standard.rb,
lib/pubid/ieee/identifiers/csa_dual_published.rb,
lib/pubid/ieee/identifiers/iec_ieee_copublished.rb,
lib/pubid/ieee/identifiers/supplement_identifier.rb,
lib/pubid/ieee/identifiers/conformance_identifier.rb,
lib/pubid/ieee/identifiers/parenthetical_identifier.rb,
lib/pubid/ieee/identifiers/project_draft_identifier.rb,
lib/pubid/ieee/identifiers/interpretation_identifier.rb,
lib/pubid/ieee/identifiers/multi_numbered_identifier.rb
Defined Under Namespace
Modules: Aiee, Components, Identifier, Identifiers, Ire, Nesc, PreParser, TypedStages Classes: Builder, Parser, Renderer, UrnGenerator, UrnParser
Constant Summary collapse
- TYPED_STAGES =
Backward compatibility aliases at module level These allow code expecting Pubid::Ieee::TYPED_STAGES to still work
TypedStages::TYPED_STAGES
- DEFAULT_TYPED_STAGE =
TypedStages::DEFAULT_TYPED_STAGE
Class Method Summary collapse
-
.all_typed_stages ⇒ Array<Pubid::Components::TypedStage>
Build typed stage index from TypedStages module.
-
.identifier_types ⇒ Array<Class>
Auto-discover all identifier types from the Identifiers namespace.
-
.locate_stage(abbr) ⇒ Pubid::Components::TypedStage?
Lookup: abbreviation -> typed stage.
-
.locate_stage_by_ieee_draft(draft) ⇒ Pubid::Components::TypedStage?
Lookup: IEEE draft notation -> typed stage.
-
.locate_stage_by_iso_stage(stage) ⇒ Pubid::Components::TypedStage?
Lookup: ISO stage code -> typed stage.
-
.locate_type(code) ⇒ Class?
Lookup: type code -> identifier class.
- .parse(input) ⇒ Object
Class Method Details
.all_typed_stages ⇒ Array<Pubid::Components::TypedStage>
Build typed stage index from TypedStages module
42 43 44 |
# File 'lib/pubid/ieee.rb', line 42 def all_typed_stages @all_typed_stages ||= TypedStages::TYPED_STAGES end |
.identifier_types ⇒ Array<Class>
Auto-discover all identifier types from the Identifiers namespace
33 34 35 36 37 38 |
# File 'lib/pubid/ieee.rb', line 33 def identifier_types @identifier_types ||= Identifiers.constants .filter_map { |c| begin; Identifiers.const_get(c); rescue NameError; nil; end } .select { |c| c.is_a?(Class) && c.singleton_methods(false).include?(:type) } .select { |c| c.type.is_a?(Hash) } end |
.locate_stage(abbr) ⇒ Pubid::Components::TypedStage?
Lookup: abbreviation -> typed stage
56 57 58 59 |
# File 'lib/pubid/ieee.rb', line 56 def locate_stage(abbr) abbr_str = abbr.to_s.upcase all_typed_stages.find { |s| s.abbr.any? { |a| a.to_s.upcase == abbr_str } } end |
.locate_stage_by_ieee_draft(draft) ⇒ Pubid::Components::TypedStage?
Lookup: IEEE draft notation -> typed stage
64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/pubid/ieee.rb', line 64 def locate_stage_by_ieee_draft(draft) return nil if draft.nil? || draft.to_s.strip.empty? draft_str = draft.to_s.strip # Try exact match on abbreviation first ts = all_typed_stages.find { |t| t.abbr.include?(draft_str) } return ts if ts # Try match on ieee_draft_equivalent all_typed_stages.find { |t| t.ieee_draft_equivalent == draft_str } end |
.locate_stage_by_iso_stage(stage) ⇒ Pubid::Components::TypedStage?
Lookup: ISO stage code -> typed stage
80 81 82 83 84 |
# File 'lib/pubid/ieee.rb', line 80 def locate_stage_by_iso_stage(stage) return nil if stage.nil? || stage.to_s.strip.empty? all_typed_stages.find { |ts| ts.iso_stage_equivalent == stage.to_s.strip } end |
.locate_type(code) ⇒ Class?
Lookup: type code -> identifier class
49 50 51 |
# File 'lib/pubid/ieee.rb', line 49 def locate_type(code) identifier_types.find { |t| t.type[:key].to_s == code.to_s } end |
.parse(input) ⇒ Object
27 28 29 |
# File 'lib/pubid/ieee.rb', line 27 def parse(input) Identifier.parse(input) end |