Class: Pubid::Doi::Parser
- Inherits:
-
Parslet::Parser
- Object
- Parslet::Parser
- Pubid::Doi::Parser
- Defined in:
- lib/pubid/doi/parser.rb
Overview
Parslet grammar for Digital Object Identifiers per ISO 26324.
Accepts:
[doi:|DOI:]10.{REGISTRAR}/{SUFFIX}
https://doi.org/10.{REGISTRAR}/{SUFFIX}
SUFFIX is one-or-more chars from [A-Za-z0-9._-/()] (printable minus whitespace). The grammar is intentionally permissive on suffix chars because real DOIs cover the full printable range.
Class Method Summary collapse
Class Method Details
.parse(input) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/pubid/doi/parser.rb', line 43 def self.parse(input) # Normalize a URL resolver form to bare form before parsing. The # parser's `url_prefix.maybe >> scheme_prefix.maybe >> slash.maybe` # chain also handles this in-grammar, but pre-stripping yields a # cleaner error message for malformed URLs. new.parse(input) end |