module Seahorse::Util
def irregular_inflections(hash)
def irregular_inflections(hash) @irregular_inflections.update(hash) @irregular_regex = Regexp.new(@irregular_inflections.keys.join('|')) end
def underscore(string)
-
(String)
- Returns the underscored version of the given string.
Parameters:
-
string
(String
) --
def underscore(string) new_string = string.dup new_string.gsub!(@irregular_regex) { |word| "_#{@irregular_inflections[word]}" } new_string.gsub!(/([A-Z0-9]+)([A-Z][a-z])/, '\1_\2'.freeze) new_string = new_string.scan(/[a-z0-9]+|\d+|[A-Z0-9]+[a-z]*/).join('_'.freeze) new_string.downcase! new_string end
def uri_escape(string)
def uri_escape(string) CGI.escape(string.encode('UTF-8')).gsub('+', '%20').gsub('%7E', '~') end
def uri_path_escape(path)
def uri_path_escape(path) path.gsub(/[^\/]+/) { |part| uri_escape(part) } end