module TimeOfDayAttr::Seconds
Public Class Methods
convert_to_time_of_day(value, options = {})
click to toggle source
# File lib/time_of_day_attr/seconds.rb, line 3 def self.convert_to_time_of_day(value, options = {}) return value unless value.respond_to?(:seconds) format = options[:format] || DEFAULT_FORMATS.first time_format = TimeFormat.translate_format(format) time_of_day = seconds_to_time_of_day(value, time_format) if options[:omit_minutes_at_full_hour] TimeOfDay.omit_minutes_at_full_hour(time_of_day) else time_of_day end end
Private Class Methods
seconds_to_time_of_day(value, time_format)
click to toggle source
# File lib/time_of_day_attr/seconds.rb, line 17 def self.seconds_to_time_of_day(value, time_format) # Switch to beginning of year to prevent wrong conversion on the day of time change # see https://en.wikipedia.org/wiki/Daylight_saving_time time = Time.current.beginning_of_year.at_midnight + value.seconds time_of_day = time.strftime(time_format) if 24.hours.to_i == value time_of_day.gsub(' 0', '24') else time_of_day end end