class Kronos::Task

Attributes

block[R]
id[R]

Public Class Methods

new(id, timestamp, block) click to toggle source
# File lib/kronos/task.rb, line 7
def initialize(id, timestamp, block)
  @id = check_id(id)
  @timestamp = timestamp
  time # check timestamp parseability
  @block = check_block(block)
end

Public Instance Methods

time() click to toggle source
# File lib/kronos/task.rb, line 14
def time
  Chronic.parse(@timestamp) || raise_unrecognized_time_format
rescue StandardError
  raise_unrecognized_time_format
end

Private Instance Methods

check_block(block) click to toggle source
# File lib/kronos/task.rb, line 26
def check_block(block)
  block.is_a?(Proc) ? block : raise_invalid_argument('block', block, Proc)
end
check_id(id) click to toggle source
# File lib/kronos/task.rb, line 22
def check_id(id)
  id.is_a?(Symbol) ? id : raise_invalid_argument('Task ID', id, Symbol)
end
raise_invalid_argument(name, received, expectation) click to toggle source
# File lib/kronos/task.rb, line 30
def raise_invalid_argument(name, received, expectation)
  raise(ArgumentError, "Invalid #{name} given (#{received.class}). #{expectation} expected.")
end
raise_unrecognized_time_format() click to toggle source
# File lib/kronos/task.rb, line 34
def raise_unrecognized_time_format
  raise(Kronos::Exception::UnrecognizedTimeFormat)
end