Skip to content

Class HTM::Timeframe

Inherits Object
Defined in lib/htm/timeframe.rb

Timeframe - Normalizes various timeframe inputs for database queries

Handles multiple input types and normalizes them to either: * nil (no timeframe filter) * Range (single time window) * Array (multiple time windows, OR'd together)

@example Various input types

Timeframe.normalize(nil)                    # => nil (no filter)
Timeframe.normalize(Date.today)             # => Range for entire day
Timeframe.normalize(Time.now)               # => Range for entire day
Timeframe.normalize("last week")            # => Range from chronic/extractor
Timeframe.normalize(:auto, query: "...")    # => Extract from query text
Timeframe.normalize(range1..range2)         # => Pass through
Timeframe.normalize([range1, range2])       # => Array of ranges

Public Class Methods

normalize(input, query: nil)

Normalize a timeframe input to nil, Range, or Array - @param input [nil, Range, Array, Date, DateTime, Time, String, Symbol] Timeframe specification - @param query [String, nil] Query text (required when input is :auto) - @return [nil, Range, Array] Normalized timeframe - @return [Result] When input is :auto, returns Result with :timeframe, :query, :extracted

valid?(input)

Check if a value is a valid timeframe input - @param input [Object] Value to check - @return [Boolean]