Class: UrgencyType
- Inherits:
-
Object
- Object
- UrgencyType
- Includes:
- EnumField::DefineEnum
- Defined in:
- app/models/enums/urgency_type.rb
Instance Attribute Summary collapse
-
#code ⇒ Object
readonly
Returns the value of attribute code.
-
#hours ⇒ Object
readonly
Returns the value of attribute hours.
-
#max_words ⇒ Object
readonly
Returns the value of attribute max_words.
-
#symbol ⇒ Object
readonly
Returns the value of attribute symbol.
Class Method Summary collapse
Instance Method Summary collapse
- #[](attr_name) ⇒ Object
- #as_json(options = nil) ⇒ Object
- #days ⇒ Object
- #days? ⇒ Boolean
- #destroyed? ⇒ Boolean
- #duedate ⇒ Object
- #hours? ⇒ Boolean
-
#initialize(code, hours = 0, symbol = '', max_words = 0) ⇒ UrgencyType
constructor
A new instance of UrgencyType.
- #new_record? ⇒ Boolean
- #title ⇒ Object
- #urgent? ⇒ Boolean
Constructor Details
#initialize(code, hours = 0, symbol = '', max_words = 0) ⇒ UrgencyType
Returns a new instance of UrgencyType.
8 9 10 11 12 13 |
# File 'app/models/enums/urgency_type.rb', line 8 def initialize(code, hours = 0, symbol = '', max_words = 0) @code = code.to_sym @hours = hours.to_i @symbol = symbol.to_s @max_words = max_words.to_i end |
Instance Attribute Details
#code ⇒ Object (readonly)
Returns the value of attribute code.
6 7 8 |
# File 'app/models/enums/urgency_type.rb', line 6 def code @code end |
#hours ⇒ Object (readonly)
Returns the value of attribute hours.
6 7 8 |
# File 'app/models/enums/urgency_type.rb', line 6 def hours @hours end |
#max_words ⇒ Object (readonly)
Returns the value of attribute max_words.
6 7 8 |
# File 'app/models/enums/urgency_type.rb', line 6 def max_words @max_words end |
#symbol ⇒ Object (readonly)
Returns the value of attribute symbol.
6 7 8 |
# File 'app/models/enums/urgency_type.rb', line 6 def symbol @symbol end |
Class Method Details
.base_class ⇒ Object
59 60 61 |
# File 'app/models/enums/urgency_type.rb', line 59 def self.base_class self end |
.primary_key ⇒ Object
55 56 57 |
# File 'app/models/enums/urgency_type.rb', line 55 def self.primary_key :id end |
.sorted ⇒ Object
63 64 65 |
# File 'app/models/enums/urgency_type.rb', line 63 def self.sorted all.sort_by(&:hours) end |
.urgent ⇒ Object
71 72 73 |
# File 'app/models/enums/urgency_type.rb', line 71 def self.urgent [hours6, hours8, hours12, hours18, hours24, hours48] end |
.visible ⇒ Object
67 68 69 |
# File 'app/models/enums/urgency_type.rb', line 67 def self.visible [hours8, hours24, hours48, days3, days5, days7, days14, days21, days21plus] end |
Instance Method Details
#[](attr_name) ⇒ Object
31 32 33 |
# File 'app/models/enums/urgency_type.rb', line 31 def [](attr_name) send(attr_name) end |
#as_json(options = nil) ⇒ Object
19 20 21 |
# File 'app/models/enums/urgency_type.rb', line 19 def as_json( = nil) { hours: @hours, title: title, id: id }.merge( || {}) end |
#days ⇒ Object
27 28 29 |
# File 'app/models/enums/urgency_type.rb', line 27 def days (@hours.to_f / 24.0).days end |
#days? ⇒ Boolean
51 52 53 |
# File 'app/models/enums/urgency_type.rb', line 51 def days? @hours > 48 end |
#destroyed? ⇒ Boolean
35 36 37 |
# File 'app/models/enums/urgency_type.rb', line 35 def destroyed? false end |
#duedate ⇒ Object
23 24 25 |
# File 'app/models/enums/urgency_type.rb', line 23 def duedate Time.zone.now + days end |
#hours? ⇒ Boolean
47 48 49 |
# File 'app/models/enums/urgency_type.rb', line 47 def hours? @hours <= 48 end |
#new_record? ⇒ Boolean
39 40 41 |
# File 'app/models/enums/urgency_type.rb', line 39 def new_record? false end |
#title ⇒ Object
15 16 17 |
# File 'app/models/enums/urgency_type.rb', line 15 def title I18n.t(code, scope: [:rate_duration]) end |
#urgent? ⇒ Boolean
43 44 45 |
# File 'app/models/enums/urgency_type.rb', line 43 def urgent? self.class.urgent.include?(self) end |