CartoDB/cartodb20

View on GitHub
lib/carto/file_system/sanitize.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Carto
  module FileSystem
    module Sanitize
      # Sanitize: NUL, slash, backslash, colon, asterisk, question, quote, less, greater, pipe
      DISALLOWED_CHARACTERS = /[\x00\/\\:\*\?\"<>\|]/

      def self.sanitize_identifier(identifier, replacement_character: '_')
        if replacement_character =~ DISALLOWED_CHARACTERS
          raise "Unsafe replacement character '#{replacement_character}'"
        else
          identifier.gsub(DISALLOWED_CHARACTERS, replacement_character)
        end
      end
    end
  end
end