Class: AnyStyle::Normalizer::Volume
- Inherits:
-
AnyStyle::Normalizer
- Object
- AnyStyle::Normalizer
- AnyStyle::Normalizer::Volume
- Defined in:
- lib/anystyle/normalizer/volume.rb
Instance Attribute Summary
Attributes inherited from AnyStyle::Normalizer
Instance Method Summary collapse
Methods inherited from AnyStyle::Normalizer
#append, #each_value, #initialize, #keys_for, #map_values, #name, #skip?
Constructor Details
This class inherits a constructor from AnyStyle::Normalizer
Instance Method Details
#normalize(item, **opts) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/anystyle/normalizer/volume.rb', line 6 def normalize(item, **opts) map_values(item, [:volume]) do |_, volume| case volume when /(\p{Lu}?\d+)\s?\(([^)]+)\)/ append item, :issue, $2 $1 when /(?:(\p{Lu}?\d+)[\p{P}\s]+)?(?:nos?|nr|n°|nº|iss?)\.?\s?(.+)$/i volume = $1 append item, :issue, $2.sub(/\p{P}$/, '') volume else volume .sub(/^[\p{P}\s]+/, '') .sub(/.*vol(ume)?[\p{P}\s]+/i, '') .sub(/\p{P}$/, '') end end end |