Module: Quant::TimeMethods
- Included in:
- Quant::Ticks::OHLC, Quant::Ticks::Spot
- Defined in:
- lib/quant/time_methods.rb
Constant Summary collapse
- EPOCH_DATE =
Provides lower-bounds for dates and times. See
Quant::TimePeriod
for example use-case. Date.civil(1492, 10, 12).freeze
- EPOCH_TIME =
Time.new(EPOCH_DATE.year, EPOCH_DATE.month, EPOCH_DATE.day, 0, 0, 0, "+00:00").utc.freeze
Class Method Summary collapse
-
.epoch_date ⇒ Object
The epoch date is a NULL object
Date
for the library. -
.epoch_time ⇒ Object
The epoch time is a NULL object
Time
for the library.
Instance Method Summary collapse
-
#extract_time(value) ⇒ Object
When streaming or extracting a time entry from a payload, Time can already be parsed into a
Time
object.
Class Method Details
.epoch_date ⇒ Object
The epoch date is a NULL object Date
for the library. It is used to represent the beginning of time. That is, a date that is without bound and helps avoid nil
checks, NULL
database entries, and such when working with dates.
26 27 28 |
# File 'lib/quant/time_methods.rb', line 26 def self.epoch_date EPOCH_DATE end |
.epoch_time ⇒ Object
The epoch time is a NULL object Time
for the library. It is used to represent the beginning of time. That is, a time that is without bound and helps avoid nil
checks, NULL
database entries, and such when working with time.
33 34 35 |
# File 'lib/quant/time_methods.rb', line 33 def self.epoch_time EPOCH_TIME end |
Instance Method Details
#extract_time(value) ⇒ Object
When streaming or extracting a time entry from a payload, Time can already be parsed into a Time
object. Or it may be an Integer
representing the number of seconds since the epoch. Or it may be a String
that can be parsed into a Time
object. This method normalizes the time into a Time
object on the UTC timezone.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/quant/time_methods.rb', line 40 def extract_time(value) case value when Time value.utc when DateTime Time.new(value.year, value.month, value.day, value.hour, value.minute, value.second).utc when Date Time.utc(value.year, value.month, value.day, 0, 0, 0) when Integer Time.at(value).utc when String Time.parse(value).utc else raise ArgumentError, "Invalid time: #{value.inspect}" end end |