Class: Pubid::Easc::Builder
- Inherits:
-
Object
- Object
- Pubid::Easc::Builder
- Defined in:
- lib/pubid/easc/builder.rb
Overview
Builds an EASC identifier object from the Parslet parse tree.
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.build(parsed) ⇒ Object
22 23 24 |
# File 'lib/pubid/easc/builder.rb', line 22 def self.build(parsed) new.build(parsed) end |
Instance Method Details
#build(parsed) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/pubid/easc/builder.rb', line 7 def build(parsed) series_cyr = stringify(parsed[:series])&.upcase canonical_series = series_to_canonical(series_cyr) klass = Easc.identifier_klass_for_series(canonical_series) || Identifier attrs = { series: canonical_series, variant: variant_to_canonical(stringify(parsed[:variant])), number: stringify(parsed[:number]), year: stringify(parsed[:year]), }.compact klass.new(**attrs) end |