Module: Vpim::Icalendar::Set::Util

Included in:
Vevent::Maker
Defined in:
lib/vpim/property/base.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#add_address(name, value) ⇒ Object



76
77
78
79
# File 'lib/vpim/property/base.rb', line 76

def add_address(name, value)
  f = value.encode(name)
  @comp.properties.push(f)
end

#field_create(name, value, default_value_type = nil, value_type = nil, params = {}) ⇒ Object



30
31
32
33
34
35
# File 'lib/vpim/property/base.rb', line 30

def field_create(name, value, default_value_type = nil, value_type = nil, params = {})
  if value_type && value_type != default_value_type
    params['VALUE'] = value_type
  end
  Vpim::DirectoryInfo::Field.create(name, value, params)
end

#rm_all(name) ⇒ Object



14
15
16
17
# File 'lib/vpim/property/base.rb', line 14

def rm_all(name)
  rm = @comp.properties.select { |f| f.name? name }
  rm.each { |f| @comp.properties.delete(f) }
end

#set_address(name, value) ⇒ Object



81
82
83
84
# File 'lib/vpim/property/base.rb', line 81

def set_address(name, value)
  rm_all(name)
  add_address(name, value)
end

#set_date_or_datetime(name, default, value) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/vpim/property/base.rb', line 37

def set_date_or_datetime(name, default, value)
  f = nil
  case value
  when Date
    f = field_create(name, Vpim.encode_date(value), default, 'DATE')
  when Time
    f = field_create(name, Vpim.encode_date_time(value), default, 'DATE-TIME')
  else
    raise Vpim::Unencodeable, "Invalid #{name} value #{value.inspect}"
  end
  rm_all(name)
  @comp.properties.push(f)
end

#set_datetime(name, value) ⇒ Object



51
52
53
54
55
# File 'lib/vpim/property/base.rb', line 51

def set_datetime(name, value)
  f = field_create(name, Vpim.encode_date_time(value))
  rm_all(name)
  @comp.properties.push(f)
end

#set_integer(name, value) ⇒ Object



69
70
71
72
73
74
# File 'lib/vpim/property/base.rb', line 69

def set_integer(name, value)
  value = value.to_int.to_s
  f = field_create(name, value)
  rm_all(name)
  @comp.properties.push(f)
end

#set_text(name, value) ⇒ Object



57
58
59
60
61
# File 'lib/vpim/property/base.rb', line 57

def set_text(name, value)
  f = field_create(name, Vpim.encode_text(value))
  rm_all(name)
  @comp.properties.push(f)
end

#set_text_list(name, value) ⇒ Object



63
64
65
66
67
# File 'lib/vpim/property/base.rb', line 63

def set_text_list(name, value)
  f = field_create(name, Vpim.encode_text_list(value))
  rm_all(name)
  @comp.properties.push(f)
end

#set_token(name, allowed, default, value) ⇒ Object

:nodoc:



19
20
21
22
23
24
25
26
27
28
# File 'lib/vpim/property/base.rb', line 19

def set_token(name, allowed, default, value) #:nodoc:
  value = value.to_str
  unless allowed.include?(value)
    raise Vpim::Unencodeable, "Invalid #{name} value '#{value}'"
  end
  rm_all(name)
  unless value == default
    @comp.properties.push Vpim::DirectoryInfo::Field.create(name, value)
  end
end