class Sculd::Plan

Constants

DEADLINE_PRIORITY
REMINDER_PRIORITY

Attributes

datetime[R]
description[R]
flag_time[R]
option[R]

Public Class Methods

new(datetime, flag_time, option, description) click to toggle source
# File lib/sculd/plan.rb, line 71
def initialize(datetime, flag_time, option, description)
  @datetime    = datetime
  @flag_time   = flag_time
  @option      = option
  @description = description
end
parse(str, io = $stdout) click to toggle source

Parse and return date, type, option.

# File lib/sculd/plan.rb, line 19
def self.parse(str, io = $stdout)
  #/\[([\d\- :]*)\](.)(\S*)/ =~ str #OK
  /\[([^\]]*)\](.)(\S*)\s+(.*)/ =~ str #OK
  result = {}

  date, type, option, description = $1, $2, $3, $4

  datetime            = DateTime::parse date
  if /\((.+)\)/ =~ date
    weekday = self.wday($1)
    unless weekday  == datetime.wday
      raise WeekdayMismatchError,
        "#{datetime} is #{Sculd::Manager::DEFAULT_WEEKDAYS[datetime.wday]}, but string contains #{date}."
    end
  end
  result[:datetime] = datetime
  result[:flag_time] = date.include?(":")

  result[:type]       = type

  unless option.empty?
    raise NotNumberError unless option =~ /^[0-9]+$/
    result[:option] = option.to_i 
  end

  result[:description] = description

  return result
end
wday(str) click to toggle source
# File lib/sculd/plan.rb, line 49
def self.wday(str)
  case str
  when /^Su/i , '日'
    return 0
  when /^M/i  , '月'
    return 1
  when /^Tu/i , '火'
    return 2
  when /^W/i  , '水'
    return 3
  when /^Th/i , '木'
    return 4
  when /^F/i  , '金'
    return 5
  when /^Sa/i , '土'
    return 6
  else
    raise NotWeekdayError, "Unknown format string: #{str}"
  end
end

Public Instance Methods

event_dates() click to toggle source
# File lib/sculd/plan.rb, line 83
def event_dates
  raise NotDefinedError
end
priority() click to toggle source

return priority of task calculated by equation defined in subclass.

# File lib/sculd/plan.rb, line 79
def priority
  raise NotDefinedError
end