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