Sha256: 4333ee8155e59d9418ec444816bb17b48bea5929bf310f82173b30aec6c715b8

Contents?: true

Size: 749 Bytes

Versions: 5

Compression:

Stored size: 749 Bytes

Contents

class Dorsale::Flyboy::Task::Snoozer < ::Dorsale::Service
  attr_reader :task

  def initialize(task)
    super()
    @task = task
  end

  def call
    snooze
  end

  def snooze
    if task.term
      task.term = task.term + snooze_term_value
    end

    if task.reminder_type == "custom"
      task.reminder_date = task.reminder_date + snooze_reminder_value
    end

    return task.save
  end

  def snoozable?
    if task.done?
      false
    elsif task.reminder_date
      task.reminder_date <= current_date
    elsif task.term
      task.term <= current_date
    else
      false
    end
  end

  private

  def current_date
    Date.current
  end

  def snooze_term_value
    1.week
  end

  def snooze_reminder_value
    1.week
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
dorsale-3.17.0 app/services/dorsale/flyboy/task/snoozer.rb
dorsale-3.16.0 app/services/dorsale/flyboy/task/snoozer.rb
dorsale-3.15.0 app/services/dorsale/flyboy/task/snoozer.rb
dorsale-3.14.11 app/services/dorsale/flyboy/task/snoozer.rb
dorsale-3.14.10 app/services/dorsale/flyboy/task/snoozer.rb