mirror of
https://github.com/jekyll/jekyll.git
synced 2026-01-07 22:24:07 -05:00
25
benchmark/parse-date
Executable file
25
benchmark/parse-date
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
require_relative '../lib/jekyll'
|
||||
require 'benchmark/ips'
|
||||
|
||||
date = "2014-08-02 14:43:06 PDT".freeze
|
||||
time = Time.parse(date)
|
||||
|
||||
Benchmark.ips do |x|
|
||||
x.report('Time.parse') do
|
||||
Time.parse(date)
|
||||
end
|
||||
|
||||
x.report('localtime') do
|
||||
Time.parse(date).localtime
|
||||
end
|
||||
|
||||
x.report('localtime parsed') do
|
||||
time.localtime
|
||||
end
|
||||
|
||||
x.report('Utils.parse_date') do
|
||||
Jekyll::Utils.parse_date(date)
|
||||
end
|
||||
end
|
||||
@@ -128,7 +128,8 @@ module Jekyll
|
||||
# Returns the parsed date if successful, throws a FatalException
|
||||
# if not
|
||||
def parse_date(input, msg = "Input could not be parsed.")
|
||||
Time.parse(input).localtime
|
||||
@parse_date_cache ||= {}
|
||||
@parse_date_cache[input] ||= Time.parse(input).localtime
|
||||
rescue ArgumentError
|
||||
raise Errors::InvalidDateError, "Invalid date '#{input}': #{msg}"
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user