class AnyStyle::Normalizer::Page
Public Instance Methods
normalize(item, **opts)
click to toggle source
# File lib/anystyle/normalizer/page.rb 6 def normalize(item, **opts) 7 map_values(item) do |_, value| 8 pages = case value 9 when /(\d+)(?:\.(\d+))?(?:\((\d{4})\))?:(\d.*)/ 10 # "volume.issue(year):pp" 11 append(item, :volume, $1.to_i) 12 append(item, :issue, $2.to_i) unless $2.nil? 13 append(item, :year, $3.to_i) unless $3.nil? 14 $4 15 else 16 value 17 end 18 19 # TODO chap. 5, pp. 195-234. 20 21 pages 22 .gsub(/\p{Pd}+/, '–') 23 .gsub(/[^\d,–]+/, ' ') 24 .strip 25 end 26 end