Class: DateTime
- Defined in:
- lib/openhab/core_ext/ruby/date_time.rb
Overview
Extensions to DateTime
Instance Method Summary collapse
-
#coerce(other) ⇒ Array?
Converts to a ZonedDateTime if ‘other` is also convertible to a ZonedDateTime.
-
#minus_with_temporal(other) ⇒ ZonedDateTime, ...
(also: #-)
Extends #- to allow subtracting a TemporalAmount or any other date/time class that responds to #to_zoned_date_time.
-
#plus_with_temporal(other) ⇒ ZonedDateTime, Time
(also: #+)
Extends #+ to allow adding a TemporalAmount.
- #to_instant(_context = nil) ⇒ Instant
- #to_local_time ⇒ LocalTime
- #to_zoned_date_time(context = nil) ⇒ ZonedDateTime
Methods included from OpenHAB::CoreExt::Ephemeris
#days_until, #holiday, #holiday?, #in_dayset?, #next_holiday, #weekend?
Methods included from OpenHAB::CoreExt::Between
Methods inherited from Date
#compare_with_coercion, #to_local_date, #to_month, #to_month_day, #today?, #tomorrow?, #yesterday?
Instance Method Details
#coerce(other) ⇒ Array?
Converts to a ZonedDateTime if ‘other` is also convertible to a ZonedDateTime.
54 55 56 57 58 59 60 |
# File 'lib/openhab/core_ext/ruby/date_time.rb', line 54 def coerce(other) logger.trace { "Coercing #{self} as a request from #{other.class}" } return unless other.respond_to?(:to_zoned_date_time) zdt = to_zoned_date_time [other.to_zoned_date_time(zdt), zdt] end |
#minus_with_temporal(other) ⇒ ZonedDateTime, ... Also known as: -
Extends #- to allow subtracting a TemporalAmount or any other date/time class that responds to #to_zoned_date_time.
Subtractions with another object of the same class (e.g. Time - Other Time, or DateTime - Other DateTime) remains unchanged from its original behavior.
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/openhab/core_ext/ruby/date_time.rb', line 26 def minus_with_temporal(other) return to_zoned_date_time - other if other.is_a?(java.time.temporal.TemporalAmount) # Exclude subtracting against the same class if other.respond_to?(:to_zoned_date_time) && !other.is_a?(self.class) return to_zoned_date_time - other.to_zoned_date_time end minus_without_temporal(other) end |
#plus_with_temporal(other) ⇒ ZonedDateTime, Time Also known as: +
Extends #+ to allow adding a TemporalAmount
17 18 19 20 21 |
# File 'lib/openhab/core_ext/ruby/date_time.rb', line 17 def plus_with_temporal(other) return to_zoned_date_time + other if other.is_a?(java.time.temporal.TemporalAmount) plus_without_temporal(other) end |
#to_instant(_context = nil) ⇒ Instant
49 50 51 |
# File 'lib/openhab/core_ext/ruby/date_time.rb', line 49 def to_instant(_context = nil) to_java(Instant) end |
#to_local_time ⇒ LocalTime
41 |
# File 'lib/openhab/core_ext/ruby/date_time.rb', line 41 def_delegator :to_zoned_date_time, :to_local_time |
#to_zoned_date_time(context = nil) ⇒ ZonedDateTime
44 45 46 |
# File 'lib/openhab/core_ext/ruby/date_time.rb', line 44 def to_zoned_date_time(context = nil) # rubocop:disable Lint/UnusedMethodArgument to_java(ZonedDateTime) end |