Module: Vpim::Icalendar::Property::Common

Included in:
Vevent, Vjournal, Vtodo
Defined in:
lib/vpim/property/common.rb

Overview

Properties common to Vevent, Vtodo, and Vjournal.

Instance Method Summary collapse

Instance Method Details

#access_classObject

This property defines the access classification for a calendar component.

An access classification is only one component of the general security system within a calendar application. It provides a method of capturing the scope of the access the calendar owner intends for information within an individual calendar entry. The access classification of an individual iCalendar component is useful when measured along with the other security components of a calendar system (e.g., calendar user authentication, authorization, access rights, access role, etc.). Hence, the semantics of the individual access classifications cannot be completely defined by this memo alone. Additionally, due to the “blind” nature of most exchange processes using this memo, these access classifications cannot serve as an enforcement statement for a system receiving an iCalendar object. Rather, they provide a method for capturing the intention of the calendar owner for the access to the calendar component.

Property Name: CLASS

Property Value: one of “PUBLIC”, “PRIVATE”, “CONFIDENTIAL”, default is “PUBLIC” if no CLASS property is found.



41
42
43
# File 'lib/vpim/property/common.rb', line 41

def access_class
  proptoken 'CLASS', ["PUBLIC", "PRIVATE", "CONFIDENTIAL"], "PUBLIC"
end

#attachmentsObject

An Array of attachments, see Attachment for more information.



169
170
171
172
173
# File 'lib/vpim/property/common.rb', line 169

def attachments
  @properties.enum_by_name('ATTACH').map do |f|
    attachment = Attachment.decode(f, 'uri', 'FMTTYPE')
  end
end

#attendee?(uri) ⇒ Boolean

Return true if the uri, usually a mailto: URI, is an attendee.

Returns:

  • (Boolean)


141
142
143
# File 'lib/vpim/property/common.rb', line 141

def attendee?(uri)
  attendees.include? uri
end

#attendees(uri = nil) ⇒ Object

Return an array of attendees, an empty array if there are none. The attendees are objects of Icalendar::Address. If uri is specified only the return the attendees with this uri.



130
131
132
133
134
135
136
137
138
# File 'lib/vpim/property/common.rb', line 130

def attendees(uri = nil)
  attendees = @properties.enum_by_name('ATTENDEE').map { |a| Icalendar::Address.decode(a) }
  attendees.freeze
  if uri
    attendees.select { |a| a == uri }
  else
    attendees
  end
end

#categoriesObject

This property defines the categories for a calendar component.

Property Name: CATEGORIES

Value Type: TEXT

Ruby Type: Array of String

This property is used to specify categories or subtypes of the calendar component. The categories are useful in searching for a calendar component of a particular type and category.



156
157
158
# File 'lib/vpim/property/common.rb', line 156

def categories
  proptextlistarray 'CATEGORIES'
end

#commentsObject



160
161
162
# File 'lib/vpim/property/common.rb', line 160

def comments
  proptextarray 'COMMENT'
end

#contactsObject



164
165
166
# File 'lib/vpim/property/common.rb', line 164

def contacts
  proptextarray 'CONTACT'
end

#createdObject



45
46
47
# File 'lib/vpim/property/common.rb', line 45

def created
  proptime 'CREATED'
end

#descriptionObject

Description of the calendar component, or nil if there is no description.



51
52
53
# File 'lib/vpim/property/common.rb', line 51

def description
  proptext 'DESCRIPTION'
end

#dtstampObject

The time stamp for this calendar component.



62
63
64
# File 'lib/vpim/property/common.rb', line 62

def dtstamp
  proptime 'DTSTAMP'
end

#dtstartObject

The start time for this calendar component.



67
68
69
# File 'lib/vpim/property/common.rb', line 67

def dtstart
  proptime 'DTSTART'
end

#lastmodObject



71
72
73
# File 'lib/vpim/property/common.rb', line 71

def lastmod
  proptime 'LAST-MODIFIED'
end

#organizerObject

Return the event organizer, an object of Icalendar::Address (or nil if there is no ORGANIZER field).



77
78
79
80
81
82
83
84
85
# File 'lib/vpim/property/common.rb', line 77

def organizer
  organizer = @properties.field('ORGANIZER')

  if organizer
    organizer = Icalendar::Address.decode(organizer)
  end

  organizer.freeze
end

#sequenceObject

Revision sequence number of the calendar component, or nil if there is no SEQUENCE; property.



57
58
59
# File 'lib/vpim/property/common.rb', line 57

def sequence
  propinteger 'SEQUENCE'
end

#statusObject

Status values are not rejected during decoding. However, if the status is requested, and it’s value is not one of the defined allowable values, an exception is raised.



95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/vpim/property/common.rb', line 95

def status
  case self
  when Vpim::Icalendar::Vevent
    proptoken 'STATUS', ['TENTATIVE', 'CONFIRMED', 'CANCELLED']

  when Vpim::Icalendar::Vtodo
    proptoken 'STATUS', ['NEEDS-ACTION', 'COMPLETED', 'IN-PROCESS', 'CANCELLED']

  when Vpim::Icalendar::Vevent
    proptoken 'STATUS', ['DRAFT', 'FINAL', 'CANCELLED']
  end
end

#summaryObject

Summary description of the calendar component, or nil if there is no SUMMARY property.



114
115
116
# File 'lib/vpim/property/common.rb', line 114

def summary
  proptext 'SUMMARY'
end

#uidObject

The unique identifier of this calendar component, a string.



119
120
121
# File 'lib/vpim/property/common.rb', line 119

def uid
  proptext 'UID'
end

#urlObject



123
124
125
# File 'lib/vpim/property/common.rb', line 123

def url
  propvalue 'URL'
end