class AdLocalize::Mappers::AndroidTranslationMapper
Private Instance Methods
sanitize_value(value:)
click to toggle source
# File lib/ad_localize/mappers/android_translation_mapper.rb, line 6 def sanitize_value(value:) return if value.blank? processedValue = value.gsub(/(?<!\\)'/, ''') # match ' unless there is a \ before processedValue = processedValue.gsub(/(?<!\\)\"/, '"') # match " unless there is a \ before processedValue = processedValue.gsub(">", '>') processedValue = processedValue.gsub("<", '<') processedValue = processedValue.gsub(/(%(\d+\$)?@)/, '%\2s') # should match values like %1$s and %s processedValue = processedValue.gsub(/(%((\d+\$)?(\d+)?)i)/, '%\2d') # should match values like %i, %3$i, %01i, %1$02i processedValue = processedValue.gsub(/%(?!((\d+\$)?(s|(\d+)?d)))/, '%') # negative lookahead: identifies when user really wants to display a % processedValue = processedValue.gsub("\\U", "\\u") processedValue = processedValue.gsub(/&(?!((#\d+)|(\w+));)/, '&') processedValue = processedValue.gsub(/&/) { |match| match.replace('\&') } "\"#{processedValue}\"" end