Sha256: 9a4c30c20fecda5ef5cb90a3a4b8e0bd91ac6da93b4b2345a6ae769ba54fb308

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

#! /usr/bin/env ruby
# coding: utf-8

#require "sculd/plan/deadline.rb"
#require "sculd/plan/reminder.rb"
#require "sculd/plan/schedule.rb"
#require "sculd/plan/todo.rb"

#
#
#
class Sculd::Plan
  class NotDefinedError < Exception; end

  attr_reader :description

  REMINDER_PRIORITY = 10000
  DEADLINE_PRIORITY = 20000

  # Parse and return date, type, option.
  def self.parse(str)
    #/\[(\d{4})-(\d{2})-(\d{2})\]([@+!-])(\d*)/ =~ @line
    #/\[\d{4}-\d{2}-\d{2}(?: \d{2}\:\d{2})?\][@+!-](\d*)(.*)/ =~ line
    #/\[\d{4}-\d{2}-\d{2}(?: \d{2}\:\d{2})?\][@+!-](\d*)(.*)/ =~ str
    #/\[(\d{4}-\d{2}-\d{2}(?: \d{2}\:\d{2})?\][@+!-](\d*)(.*)/ =~ str
    /\[(\d{4}-\d{2}-\d{2})\]([@+!-])(\S*)(.*)$/ =~ str
    #/\[(^]+)\](.)(\S*)/ =~ str 
    #date      = DateTime::new($1.to_i, $2.to_i, $3.to_i)
    datetime      = DateTime::parse $1
    type      = $2
    option    = $3.to_s
    return datetime, type, option
  end

  #
  def initialize(datetime, option, description)
    @datetime   = datetime
    @option = option
    @description = description
  end

  # return priority of task calculated by equation defined in subclass. 
  def priority
    raise NotDefinedError
  end

  def events
    raise NotDefinedError
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sculd-0.0.0 lib/sculd/plan.rb