Skip to content

Class: HTM::Timeframe

Inherits: Object

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

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

Class Methods

normalize(input , query: nil)

Normalize a timeframe input to nil, Range, or Array @param [nil, Range, Array, Date, DateTime, Time, String, Symbol] Timeframe specification

@param [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 [Object] Value to check

@return [Boolean]