Method: String#mgsub

Defined in:
lib/wdd-ruby-ext/string.rb

#mgsub(key_value_pairs = [].freeze) ⇒ Object

Performs multiple gsub operations in a single pass. key_value_pairs is an array of [key,value] pairs where each key is a regular expression and the value is the value to substitute when that regexp is matched.



34
35
36
37
38
39
# File 'lib/wdd-ruby-ext/string.rb', line 34

def mgsub(key_value_pairs=[].freeze)
  regexp_fragments = key_value_pairs.collect { |k,v| k }
  gsub(Regexp.union(*regexp_fragments)) do |match|
    key_value_pairs.detect{|k,v| k =~ match}[1]
  end
end