Module: Adjective::Temporable
- Included in:
- Status
- Defined in:
- lib/adjective/concerns/temporable.rb
Instance Method Summary collapse
-
#expired? ⇒ Boolean
Checks if remaining_duration is at 0.
-
#expiring? ⇒ Boolean
Checks if remaining_duration is at 1.
-
#extend_by(extension) ⇒ Integer
Extends the duration and keeps it within bounds.
-
#initialize_temporality(opts = {}) ⇒ Object
Initialize module data for Temporable.
-
#max_duration? ⇒ Boolean
Checks if the status is at it’s maximum duration.
-
#normalize_remaining_duration ⇒ Integer
Checks and sets remaining_duration if it is out of bounds.
Instance Method Details
#expired? ⇒ Boolean
Checks if remaining_duration is at 0.
41 42 43 |
# File 'lib/adjective/concerns/temporable.rb', line 41 def expired? @remaining_duration == 0 end |
#expiring? ⇒ Boolean
Checks if remaining_duration is at 1.
49 50 51 52 |
# File 'lib/adjective/concerns/temporable.rb', line 49 def expiring? # This method seems like a meme, but I think it makes sense @remaining_duration == 1 end |
#extend_by(extension) ⇒ Integer
Extends the duration and keeps it within bounds.
68 69 70 71 72 |
# File 'lib/adjective/concerns/temporable.rb', line 68 def extend_by(extension) @remaining_duration += extension normalize_remaining_duration return @remaining_duration end |
#initialize_temporality(opts = {}) ⇒ Object
Initialize module data for Temporable
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/adjective/concerns/temporable.rb', line 16 def initialize_temporality(opts={}) @max_duration = opts[:max_duration] ||= 1 @remaining_duration = opts[:remaining_duration] ||= @max_duration throw_duration_theshold_error if invalid_durations? [:max_duration, :remaining_duration].each do |attribute| self.class.send(:attr_accessor, attribute) end normalize_remaining_duration return self end |
#max_duration? ⇒ Boolean
Checks if the status is at it’s maximum duration
33 34 35 |
# File 'lib/adjective/concerns/temporable.rb', line 33 def max_duration? @max_duration == @remaining_duration end |
#normalize_remaining_duration ⇒ Integer
Checks and sets remaining_duration if it is out of bounds.
58 59 60 61 |
# File 'lib/adjective/concerns/temporable.rb', line 58 def normalize_remaining_duration @remaining_duration = @max_duration if @remaining_duration > @max_duration @remaining_duration = 0 if @remaining_duration < 0 end |