Sha256: a37fb94b5c0b67b2becfa808259b7556ea6ba7f3908306a143e4c17c8613fefb
Contents?: true
Size: 1.72 KB
Versions: 2
Compression:
Stored size: 1.72 KB
Contents
# frozen_string_literal: true module CoreExtensions # @!visibility protected # Extension of Ruby's standard library +String+ class. module String # Replaces all accented characters in a string with their non-accented version. # @return [String] def unaccentize # rubocop:disable Metrics/MethodLength, Metrics/AbcSize tr('ÀÁÂÃÄÅàáâãäåĀāĂ㥹', 'AAAAAAaaaaaaAaAaAa') .tr('ÇçĆćĈĉĊċČčÐðĎďĐđ', 'CcCcCcCcCcDdDdDd') .tr('ÈÉÊËèéêëĒēĔĕĖėĘęĚě', 'EEEEeeeeEeEeEeEeEe') .tr('ĜĝĞğĠġĢģĤĥĦħ', 'GgGgGgGgHhHh') .tr('ÌÍÎÏìíîïĨĩĪīĬĭĮįİı', 'IIIIiiiiIiIiIiIiIi') .tr('ĴĵĶķĸĹĺĻļĽľĿŀŁł', 'JjKkkLlLlLlLlLl') .tr('ÑñŃńŅņŇňʼnŊŋ', 'NnNnNnNnnNn') .tr('ÒÓÔÕÖØòóôõöøŌōŎŏŐő', 'OOOOOOooooooOoOoOo') .tr('ŔŕŖŗŘřŚśŜŝŞşŠšſŢţŤťŦŧ', 'RrRrRrSsSsSsSssTtTtTt') .tr('ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲų', 'UUUUuuuuUuUuUuUuUuUu') .tr('ŴŵÝýÿŶŷŸŹźŻżŽž', 'WwYyyYyYZzZzZz') .gsub(/ß/, 'ss') .gsub(/Æ/, 'AE') .gsub(/æ/, 'ae') .gsub(/Œ/, 'OE') .gsub(/œ/, 'oe') .gsub(/IJ/, 'IJ') .gsub(/ij/, 'ij') end # Converts a string to a snake-cased format suitable for URL and/or CSS attributes. # @return [String] def urlize strip.unaccentize.downcase.tr(' \'', '_').delete('^-_a-z0-9') end # Tests whether a string is urlize-d, ie. it is only constituted of characters suitable for URL # and/or CSS attributes. # @return [Boolean] def urlized? scan(/[^-_a-z0-9]/).empty? end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
intranet-core-1.0.1 | lib/core_extensions/string.rb |
intranet-core-1.0.0 | lib/core_extensions/string.rb |