app/models/hour_separator.rb
# ็ใญใฐใฎ 1 ๆ้ใใจใฎๅบๅใใฎใขใใซclass HourSeparator attr_reader :timestamp # 1 ๆ้ใใจใฎๅบๅใใๅๆๅใใ # @param [Date] date ๆฅไป # @param [Integer] hour ๆ # @raise [ArgumentError] hour ใ 0ใ23 ใฎๆดๆฐใงใชใๅ ดๅ def initialize(date, hour) unless hour.kind_of?(Integer) && (0...24).include?(hour) raise ArgumentError, "invalid hour: #{hour}" end @timestamp = Time.zone.local(date.year, date.month, date.day, hour) end # HTML ใฎใใฉใฐใกใณใ่ญๅฅๅญใ่ฟใ # @return [String] def fragment_id @timestamp.strftime('%H%M%S') end # 1 ๆฅๅใฎใญใฐใง่กจ็คบใใๅใฎๅบๅใใ่ฟใ # # ็พๅจๆๅปใใๅใฎใใฎใ ใ่ฟใใ # # @param [Date] date ๆฅไป # @return [Array<HourSeparator>] ๆๅฎใใๆฅไปใฎ 1 ๆ้ใใจใฎๅบๅใใฎ้
ๅ def self.for_day_browse(date) (0...24). map { |hour| new(date, hour) }. select { |separator| separator.timestamp < Time.current } endend