Class: WorkGuide::Guide
- Inherits:
-
Object
- Object
- WorkGuide::Guide
- Defined in:
- lib/work_guide/guide.rb
Instance Attribute Summary collapse
-
#cycle ⇒ Object
Returns the value of attribute cycle.
-
#description ⇒ Object
Returns the value of attribute description.
-
#done_at ⇒ Object
Returns the value of attribute done_at.
-
#priority ⇒ Object
Returns the value of attribute priority.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(description:, cycle: 'daily', done_at: nil, priority: 'medium') ⇒ Guide
constructor
A new instance of Guide.
- #priority_rate ⇒ Object
- #should_do? ⇒ Boolean
- #to_h ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(description:, cycle: 'daily', done_at: nil, priority: 'medium') ⇒ Guide
Returns a new instance of Guide.
31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/work_guide/guide.rb', line 31 def initialize( description: , cycle: 'daily', done_at: nil, priority: 'medium' ) @description = description @cycle = cycle if done_at @done_at = Time.parse(done_at) end @priority = priority end |
Instance Attribute Details
#cycle ⇒ Object
Returns the value of attribute cycle.
6 7 8 |
# File 'lib/work_guide/guide.rb', line 6 def cycle @cycle end |
#description ⇒ Object
Returns the value of attribute description.
6 7 8 |
# File 'lib/work_guide/guide.rb', line 6 def description @description end |
#done_at ⇒ Object
Returns the value of attribute done_at.
6 7 8 |
# File 'lib/work_guide/guide.rb', line 6 def done_at @done_at end |
#priority ⇒ Object
Returns the value of attribute priority.
6 7 8 |
# File 'lib/work_guide/guide.rb', line 6 def priority @priority end |
Class Method Details
.all ⇒ Object
16 17 18 |
# File 'lib/work_guide/guide.rb', line 16 def all @all ||= Storage.new(:guide).load.map { |h| new(h.symbolize_keys) } end |
.create(args) ⇒ Object
9 10 11 12 13 14 |
# File 'lib/work_guide/guide.rb', line 9 def create(args) guide = new(args) all << guide save guide end |
Instance Method Details
#priority_rate ⇒ Object
64 65 66 67 68 69 70 71 |
# File 'lib/work_guide/guide.rb', line 64 def priority_rate case priority when 'high' ; 1 when 'medium'; 2 when 'low' ; 3 else ; 9 end end |
#should_do? ⇒ Boolean
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/work_guide/guide.rb', line 45 def should_do? if done_at case cycle when 'hourly' 1.hour.since(done_at).beginning_of_hour.past? when 'daily' 1.day.since(done_at).beginning_of_day.past? when 'weekly' 1.week.since(done_at).beginning_of_day.past? when 'monthly' 1.month.since(done_at).beginning_of_month.past? else raise ArgumentError, "Unknown cycle: #{cycle}" end else true end end |
#to_h ⇒ Object
73 74 75 76 77 78 79 80 |
# File 'lib/work_guide/guide.rb', line 73 def to_h { description: description, cycle: cycle, done_at: done_at, priority: priority, } end |
#to_s ⇒ Object
82 83 84 |
# File 'lib/work_guide/guide.rb', line 82 def to_s "[#{cycle}/#{priority}] #{description} (#{done_at || '--'})" end |