/
githubmirror
/
jekyll
Обзор
Документация
Войти
/
githubmirror
/
jekyll
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
benchmark/path-manager.rb
65 строк
2 KB
Ashwin Maroli
Compute relative_path of pages using PathManager (#8408)
30 сен 2020, 09:11
Не верифицирован
30 сен 2020, 09:11
7cb10df
Код
Авторство
О чём код?
# frozen_string_literal: true require 'benchmark/ips' require 'jekyll' class FooPage def initialize(dir:, name:) @dir = dir @name = name end def slow_path File.join(*[@dir, @name].map(&:to_s).reject(&:empty?)).sub(%r!\A/!, "") end def fast_path Jekyll::PathManager.join(@dir, @name).sub(%r!\A/!, "") end end nil_page = FooPage.new(:dir => nil, :name => nil) empty_page = FooPage.new(:dir => "", :name => "") root_page = FooPage.new(:dir => "", :name => "ipsum.md") nested_page = FooPage.new(:dir => "lorem", :name => "ipsum.md") slashed_page = FooPage.new(:dir => "/lorem/", :name => "/ipsum.md") if nil_page.slow_path == nil_page.fast_path Benchmark.ips do |x| x.report('nil_page slow') { nil_page.slow_path } x.report('nil_page fast') { nil_page.fast_path } x.compare! end end if empty_page.slow_path == empty_page.fast_path Benchmark.ips do |x| x.report('empty_page slow') { empty_page.slow_path } x.report('empty_page fast') { empty_page.fast_path } x.compare! end end if root_page.slow_path == root_page.fast_path Benchmark.ips do |x| x.report('root_page slow') { root_page.slow_path } x.report('root_page fast') { root_page.fast_path } x.compare! end end if nested_page.slow_path == nested_page.fast_path Benchmark.ips do |x| x.report('nested_page slow') { nested_page.slow_path } x.report('nested_page fast') { nested_page.fast_path } x.compare! end end if slashed_page.slow_path == slashed_page.fast_path Benchmark.ips do |x| x.report('slashed_page slow') { slashed_page.slow_path } x.report('slashed_page fast') { slashed_page.fast_path } x.compare! end end