lib/iev/utilities.rb in iev-0.3.4 vs lib/iev/utilities.rb in iev-0.3.5

- old
+ new

@@ -1,52 +1,52 @@ # frozen_string_literal: true -module IEV +module Iev module Utilities SIMG_PATH_REGEX = "<simg .*\\/\\$file\\/([\\d\\-\\w\.]+)>" FIGURE_ONE_REGEX = - "<p><b>\\s*Figure\\s+(\\d)\\s+[–-]\\s+(.+)\\s*<\\/b>(<\\/p>)?" - FIGURE_TWO_REGEX = "#{FIGURE_ONE_REGEX}\\s*#{FIGURE_ONE_REGEX}" + '<p><b>\\s*Figure\\s+(\\d)\\s+[–-]\\s+(.+)\\s*<\\/b>(<\\/p>)?' + FIGURE_TWO_REGEX = "#{FIGURE_ONE_REGEX}\\s*#{FIGURE_ONE_REGEX}".freeze IMAGE_PATH_PREFIX = "image::/assets/images/parts" def parse_anchor_tag(text, term_domain) - if text - # Convert IEV term references - # Convert href links - # Need to take care of this pattern: - # `inverse de la <a href="IEV103-06-01">période<a>` - text.gsub( - /<a href="?(IEV)\s*(\d\d\d-\d\d-\d\d\d?)"?>(.*?)<\/?a>/, - '{{\3, \1:\2}}', - ).gsub( - /<a href="?\s*(\d\d\d-\d\d-\d\d\d?)"?>(.*?)<\/?a>/, - '{{\3, IEV:\2}}', - ).gsub( - # To handle <a> tags without ending tag like - # `Voir <a href=IEV103-05-21>IEV 103-05-21` - # for concept '702-03-11' in `fr` - /<a href="?(IEV)?\s*(\d\d\d-\d\d-\d\d\d?)"?>(.*?)$/, - '{{\3, IEV:\2}}', - ).gsub( - /<a href="?([^<>]*?)"?>(.*?)<\/a>/, - '\1[\2]', - ).gsub( - Regexp.new([SIMG_PATH_REGEX, "\\s*", FIGURE_TWO_REGEX].join), - "#{IMAGE_PATH_PREFIX}/#{term_domain}/\\1[Figure \\2 - \\3; \\6]", - ).gsub( - Regexp.new([SIMG_PATH_REGEX, "\\s*", FIGURE_ONE_REGEX].join), - "#{IMAGE_PATH_PREFIX}/#{term_domain}/\\1[Figure \\2 - \\3]", - ).gsub( - /<img\s+([^<>]+?)\s*>/, - "#{IMAGE_PATH_PREFIX}/#{term_domain}/\\1[]", - ).gsub( - /<br>/, - "\n", - ).gsub( - /<b>(.*?)<\/b>/, - "*\\1*", - ) - end + return unless text + + # Convert IEV term references + # Convert href links + # Need to take care of this pattern: + # `inverse de la <a href="IEV103-06-01">période<a>` + text.gsub( + %r{<a href="?(IEV)\s*(\d\d\d-\d\d-\d\d\d?)"?>(.*?)</?a>}, + '{{\3, \1:\2}}', + ).gsub( + %r{<a href="?\s*(\d\d\d-\d\d-\d\d\d?)"?>(.*?)</?a>}, + '{{\3, IEV:\2}}', + ).gsub( + # To handle <a> tags without ending tag like + # `Voir <a href=IEV103-05-21>IEV 103-05-21` + # for concept '702-03-11' in `fr` + /<a href="?(IEV)?\s*(\d\d\d-\d\d-\d\d\d?)"?>(.*?)$/, + '{{\3, IEV:\2}}', + ).gsub( + %r{<a href="?([^<>]*?)"?>(.*?)</a>}, + '\1[\2]', + ).gsub( + Regexp.new([SIMG_PATH_REGEX, '\\s*', FIGURE_TWO_REGEX].join), + "#{IMAGE_PATH_PREFIX}/#{term_domain}/\\1[Figure \\2 - \\3; \\6]", + ).gsub( + Regexp.new([SIMG_PATH_REGEX, '\\s*', FIGURE_ONE_REGEX].join), + "#{IMAGE_PATH_PREFIX}/#{term_domain}/\\1[Figure \\2 - \\3]", + ).gsub( + /<img\s+([^<>]+?)\s*>/, + "#{IMAGE_PATH_PREFIX}/#{term_domain}/\\1[]", + ).gsub( + /<br>/, + "\n", + ).gsub( + %r{<b>(.*?)</b>}, + '*\\1*', + ) end def replace_newlines(input) input.gsub('\n', "\n\n") .gsub(/<[pbr]+>/, "\n\n")