55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
		
			Executable File
		
	
	
#!/usr/bin/env ruby
 | 
						|
require 'benchmark/ips'
 | 
						|
 | 
						|
# For this pull request, which changes Page#dir
 | 
						|
# https://github.com/jekyll/jekyll/pull/4403
 | 
						|
 | 
						|
FORWARD_SLASH = '/'.freeze
 | 
						|
 | 
						|
def pre_pr(url)
 | 
						|
  url[-1, 1] == FORWARD_SLASH ? url : File.dirname(url)
 | 
						|
end
 | 
						|
 | 
						|
def pr(url)
 | 
						|
  if url.end_with?(FORWARD_SLASH)
 | 
						|
    url
 | 
						|
  else
 | 
						|
    url_dir = File.dirname(url)
 | 
						|
    url_dir.end_with?(FORWARD_SLASH) ? url_dir : "#{url_dir}/"
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
def envygeeks(url)
 | 
						|
  return url if url.end_with?(FORWARD_SLASH) || url == FORWARD_SLASH
 | 
						|
 | 
						|
  url = File.dirname(url)
 | 
						|
  url == FORWARD_SLASH ? url : "#{url}/"
 | 
						|
end
 | 
						|
 | 
						|
# Just a slash
 | 
						|
Benchmark.ips do |x|
 | 
						|
  path = '/'
 | 
						|
  x.report("pre_pr:#{path}")    { pre_pr(path) }
 | 
						|
  x.report("pr:#{path}")        { pr(path) }
 | 
						|
  x.report("envygeeks:#{path}") { pr(path) }
 | 
						|
  x.compare!
 | 
						|
end
 | 
						|
 | 
						|
# No trailing slash
 | 
						|
Benchmark.ips do |x|
 | 
						|
  path = '/some/very/very/long/path/to/a/file/i/like'
 | 
						|
  x.report("pre_pr:#{path}")    { pre_pr(path) }
 | 
						|
  x.report("pr:#{path}")        { pr(path) }
 | 
						|
  x.report("envygeeks:#{path}") { pr(path) }
 | 
						|
  x.compare!
 | 
						|
end
 | 
						|
 | 
						|
# No trailing slash
 | 
						|
Benchmark.ips do |x|
 | 
						|
  path = '/some/very/very/long/path/to/a/file/i/like/'
 | 
						|
  x.report("pre_pr:#{path}")    { pre_pr(path) }
 | 
						|
  x.report("pr:#{path}")        { pr(path) }
 | 
						|
  x.report("envygeeks:#{path}") { pr(path) }
 | 
						|
  x.compare!
 | 
						|
end
 |