27 lines
		
	
	
		
			643 B
		
	
	
	
		
			Ruby
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			643 B
		
	
	
	
		
			Ruby
		
	
	
		
			Executable File
		
	
	
#!/usr/bin/env ruby
 | 
						|
 | 
						|
require "benchmark/ips"
 | 
						|
 | 
						|
PATH = "/../../..../...//.....//lorem/ipsum//dolor///sit.xyz"
 | 
						|
 | 
						|
def sanitize_with_regex
 | 
						|
  "/" + PATH.gsub(%r!/{2,}!, "/").gsub(%r!\.+/|\A/+!, "")
 | 
						|
end
 | 
						|
 | 
						|
def sanitize_with_builtin
 | 
						|
  "/#{PATH}".gsub("..", "/").gsub("./", "").squeeze("/")
 | 
						|
end
 | 
						|
 | 
						|
if sanitize_with_regex == sanitize_with_builtin
 | 
						|
  Benchmark.ips do |x|
 | 
						|
    x.report("sanitize w/ regexes") { sanitize_with_regex }
 | 
						|
    x.report("sanitize w/ builtin") { sanitize_with_builtin }
 | 
						|
    x.compare!
 | 
						|
  end
 | 
						|
else
 | 
						|
  puts "w/ regexes: #{sanitize_with_regex}"
 | 
						|
  puts "w/ builtin: #{sanitize_with_builtin}"
 | 
						|
  puts ""
 | 
						|
  puts "Thank you. Do try again :("
 | 
						|
end
 |