# File lib/vendor/i18n/lib/i18n/backend/simple.rb, line 151 def interpolate(locale, string, values = {}) return string unless string.is_a?(String) string.gsub(MATCH) do escaped, pattern, key = $1, $2, $2.to_sym if escaped pattern elsif INTERPOLATION_RESERVED_KEYS.include?(pattern) raise ReservedInterpolationKey.new(pattern, string) elsif !values.include?(key) raise MissingInterpolationArgument.new(pattern, string) else values[key].to_s end end end