55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| #!/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
 |