class Vobject::Vcalendar::PropertyValue::Recur

Public Class Methods

new(val) click to toggle source
# File lib/vobject/vcalendar/propertyvalue.rb, line 541
def initialize(val)
  self.value = val
  self.type = "recur"
end

Public Instance Methods

to_hash() click to toggle source
# File lib/vobject/vcalendar/propertyvalue.rb, line 554
def to_hash
  ret = {}
  value.each do |k, v|
    ret[k] = if v.respond_to?(:to_hash)
               v.to_hash
             else
               v
             end
  end
  ret
end
to_s() click to toggle source
# File lib/vobject/vcalendar/propertyvalue.rb, line 546
def to_s
  ret = []
  value.each do |k, v|
    ret << "#{k.to_s.upcase}=#{valencode(k, v)}"
  end
  ret.join(";")
end

Private Instance Methods

valencode(k, v) click to toggle source
# File lib/vobject/vcalendar/propertyvalue.rb, line 568
def valencode(k, v)
  case k
  when :bysetpos, :byyearday
    v.map do |x|
      ret = x[:ordyrday]
      ret = x[:sign] + ret if x[:sign]
      ret
    end.join(",")
  when :byweekno
    v.map do |x|
      ret = x[:ordwk]
      ret = x[:sign] + ret if x[:sign]
      ret
    end.join(",")
  when :bymonthday
    v.map do |x|
      ret = x[:ordmoday]
      ret = x[:sign] + ret if x[:sign]
      ret
    end.join(",")
  when :byday
    v.map do |x|
      ret = x[:weekday]
      ret = x[:ordwk] + ret if x[:ordwk]
      ret = x[:sign] + ret if x[:sign]
      ret
    end.join(",")
  when :bymonth, :byhour, :byminute, :bysecond
    v.join(",")
  when :enddate
    v.to_s
  else
    v
  end
end