class AhlScraper::ParameterizeHelper

Attributes

preserve_case[R]
separator[R]
string[R]

Public Class Methods

new(string, separator: "-", preserve_case: false) click to toggle source
# File lib/ahl_scraper/helpers/parameterize_helper.rb, line 7
def initialize(string, separator: "-", preserve_case: false)
  @string = string
  @separator = separator
  @preserve_case = preserve_case
end

Public Instance Methods

call() click to toggle source
# File lib/ahl_scraper/helpers/parameterize_helper.rb, line 13
def call
  parameterized_string = string.dup.to_s

  parameterized_string.gsub!(/[^a-zA-Z0-9\-_]+/, separator)

  unless separator.nil? || separator.empty?
    if separator == "-"
      re_duplicate_separator        = /-{2,}/
      re_leading_trailing_separator = /^-|-$/
    else
      re_sep = Regexp.escape(separator)
      re_duplicate_separator = /#{re_sep}{2,}/
      re_leading_trailing_separator = /^#{re_sep}|#{re_sep}$/
    end
    parameterized_string.gsub!(re_duplicate_separator, separator)
    parameterized_string.gsub!(re_leading_trailing_separator, "")
  end

  parameterized_string.downcase! unless preserve_case
  parameterized_string
end