Class: SOF::Cycles::EndOf
- Inherits:
-
SOF::Cycle
- Object
- SOF::Cycle
- SOF::Cycles::EndOf
- Defined in:
- lib/sof/cycles/end_of.rb
Constant Summary
Constants inherited from SOF::Cycle
Instance Attribute Summary
Attributes inherited from SOF::Cycle
Class Method Summary collapse
Instance Method Summary collapse
-
#expiration_of(_ = nil, anchor: nil) ⇒ Date
Returns the expiration date for the cycle.
-
#final_date(_ = nil) ⇒ Date
Calculates the final date of the cycle.
-
#last_completed(_ = nil) ⇒ Object
Always returns the from_date.
-
#satisfied_by?(_ = nil, anchor: Date.current) ⇒ Boolean
Is the supplied anchor date prior to the final date?.
- #start_date(_ = nil) ⇒ Object
- #to_s ⇒ Object
Methods inherited from SOF::Cycle
#==, #as_json, class_for_kind, class_for_notation_id, #considered_dates, #cover?, #covered_dates, cycle_handlers, dump, #extend_period, for, #from_data, handles?, #humanized_span, inherited, #initialize, #kind_inquiry, legend, load, notation, #notation, #range, #to_h, validate_period, #validate_period, volume_only?, #volume_to_delay_expiration
Constructor Details
This class inherits a constructor from SOF::Cycle
Class Method Details
.description ⇒ Object
23 24 25 |
# File 'lib/sof/cycles/end_of.rb', line 23 def self.description "End of - occurrences by the end of a time period" end |
.dormant_capable? ⇒ Boolean
21 |
# File 'lib/sof/cycles/end_of.rb', line 21 def self.dormant_capable? = true |
.examples ⇒ Object
27 28 29 |
# File 'lib/sof/cycles/end_of.rb', line 27 def self.examples ["V1E1M - once by the end of next month", "V2E2Q - twice by the end of 2 quarters"] end |
.recurring? ⇒ Boolean
19 |
# File 'lib/sof/cycles/end_of.rb', line 19 def self.recurring? = true |
Instance Method Details
#expiration_of(_ = nil, anchor: nil) ⇒ Date
Returns the expiration date for the cycle
50 51 52 53 |
# File 'lib/sof/cycles/end_of.rb', line 50 def expiration_of(_ = nil, anchor: nil) return nil if parser.dormant? || from_date.nil? final_date end |
#final_date(_ = nil) ⇒ Date
Calculates the final date of the cycle
72 73 74 75 76 77 |
# File 'lib/sof/cycles/end_of.rb', line 72 def final_date(_ = nil) return nil if parser.dormant? || from_date.nil? time_span .end_date(start_date) .end_of_month end |
#last_completed(_ = nil) ⇒ Object
Always returns the from_date
38 |
# File 'lib/sof/cycles/end_of.rb', line 38 def last_completed(_ = nil) = from_date&.to_date |
#satisfied_by?(_ = nil, anchor: Date.current) ⇒ Boolean
Is the supplied anchor date prior to the final date?
58 59 60 61 |
# File 'lib/sof/cycles/end_of.rb', line 58 def satisfied_by?(_ = nil, anchor: Date.current) return false if parser.dormant? || from_date.nil? anchor <= final_date end |
#start_date(_ = nil) ⇒ Object
79 |
# File 'lib/sof/cycles/end_of.rb', line 79 def start_date(_ = nil) = from_date&.to_date |
#to_s ⇒ Object
31 32 33 34 35 |
# File 'lib/sof/cycles/end_of.rb', line 31 def to_s return dormant_to_s if parser.dormant? || from_date.nil? "#{volume}x by #{final_date.to_fs(:american)}" end |