Sha256: a7910f358a60e9ae4f8b3b630f5b760e819e8153d4f1759a6205da992d6bf825

Contents?: true

Size: 1.15 KB

Versions: 4

Compression:

Stored size: 1.15 KB

Contents

require "hiccup"
require "active_model/validations"


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
      }
    end
    
    
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
hiccup-0.4.3 lib/hiccup/schedule.rb
hiccup-0.4.2 lib/hiccup/schedule.rb
hiccup-0.4.1 lib/hiccup/schedule.rb
hiccup-0.4.0 lib/hiccup/schedule.rb