Class: Daru::DateOffset
Overview
Generic class for generating date offsets.
Direct Known Subclasses
Instance Method Summary collapse
-
#+(date_time) ⇒ Object
Offset a DateTime forward.
-
#-(date_time) ⇒ Object
Offset a DateTime backward.
- #-@ ⇒ Object
-
#initialize(opts = {}) ⇒ DateOffset
constructor
A Daru::DateOffset object is created by a passing certain options to the constructor, which determine the kind of offset the object will support.
Constructor Details
#initialize(opts = {}) ⇒ DateOffset
A Daru::DateOffset object is created by a passing certain options to the constructor, which determine the kind of offset the object will support.
You can pass one of the following options followed by their number to the DateOffset constructor:
-
:secs - Create a seconds offset
-
:mins - Create a minutes offset
-
:hours - Create an hours offset
-
:days - Create a days offset
-
:weeks - Create a weeks offset
-
:months - Create a months offset
-
:years - Create a years offset
Additionaly, passing the ‘:n` option will apply the offset that many times.
38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/daru/date_time/offsets.rb', line 38 def initialize opts={} n = opts[:n] || 1 Offsets::LIST.each do |key, klass| if opts.key?(key) @offset = klass.new(n * opts[key]) break end end @offset = Offsets::Day.new(7*n*opts[:weeks]) if opts[:weeks] end |
Instance Method Details
#+(date_time) ⇒ Object
Offset a DateTime forward.
53 54 55 |
# File 'lib/daru/date_time/offsets.rb', line 53 def + date_time @offset + date_time end |
#-(date_time) ⇒ Object
Offset a DateTime backward.
60 61 62 |
# File 'lib/daru/date_time/offsets.rb', line 60 def - date_time @offset - date_time end |
#-@ ⇒ Object
64 65 66 |
# File 'lib/daru/date_time/offsets.rb', line 64 def -@ NegativeDateOffset.new(self) end |