Sha256: 56e55d7d7098fb31cd7bde363396645056f39acae767ecd3fb1657d20bbd2dee

Contents?: true

Size: 1.12 KB

Versions: 2

Compression:

Stored size: 1.12 KB

Contents

require "hiccup"
require "active_model"


module Hiccup
  class Schedule
    extend Hiccup
    include ActiveModel::Validations


    hiccup :enumerable,
           :validatable,
           :humanizable,
           :inferable,
           :serializable => [:ical]


    def initialize(options={})
      @kind             =(options[:kind] || :never).to_sym
      @start_date       =(options[:start_date] || Date.today).to_date
      @ends             = options.key?(:ends) ? options[:ends] : false
      @end_date         = options[:end_date] ? options[:end_date].to_date : nil
      @skip             =(options[:skip] || options[:interval] || 1).to_i
      @weekly_pattern   = options[:weekly_pattern] || []
      @monthly_pattern  = options[:monthly_pattern] || []
    end


    attr_accessor :kind, :start_date, :ends, :end_date, :skip, :weekly_pattern, :monthly_pattern


    def to_hash
      {
        :kind => kind,
        :start_date => start_date,
        :ends => ends,
        :end_date => end_date,
        :weekly_pattern => weekly_pattern,
        :monthly_pattern => monthly_pattern,
        :skip => skip
      }
    end


  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
hiccup-0.6.1 lib/hiccup/schedule.rb
hiccup-0.6.0 lib/hiccup/schedule.rb