`expires_in` is an alternative to `expiry` that supports durations other than days: * https://danbooru.donmai.us/posts.json?expires_in=30s * https://danbooru.donmai.us/posts.json?expires_in=5min * https://danbooru.donmai.us/posts.json?expires_in=1hour * https://danbooru.donmai.us/posts.json?expires_in=1week * https://danbooru.donmai.us/posts.json?expires_in=1month
28 lines
471 B
Ruby
28 lines
471 B
Ruby
module DurationParser
|
|
def self.parse(string)
|
|
string =~ /(\d+)(s(econds?)?|mi(nutes?)?|h(ours?)?|d(ays?)?|w(eeks?)?|mo(nths?)?|y(ears?)?)?/i
|
|
|
|
size = $1.to_i
|
|
unit = $2
|
|
|
|
case unit
|
|
when /^s/i
|
|
size.seconds
|
|
when /^mi/i
|
|
size.minutes
|
|
when /^h/i
|
|
size.hours
|
|
when /^d/i
|
|
size.days
|
|
when /^w/i
|
|
size.weeks
|
|
when /^mo/i
|
|
size.months
|
|
when /^y/i
|
|
size.years
|
|
else
|
|
size.seconds
|
|
end
|
|
end
|
|
end
|