Class: Icalendar::Values::Period
Instance Attribute Summary
#ical_params
Instance Method Summary
collapse
#ical_param, #params_ical, #to_ical, #value, value_type, #value_type
Constructor Details
#initialize(value, params = {}) ⇒ Period
Returns a new instance of Period.
6
7
8
9
10
11
12
13
14
15
|
# File 'lib/icalendar/values/period.rb', line 6
def initialize(value, params = {})
parts = value.split '/'
period_start = Icalendar::Values::DateTime.new parts.first
if parts.last =~ /\A[+-]?P.+\z/
period_end = Icalendar::Values::Duration.new parts.last
else
period_end = Icalendar::Values::DateTime.new parts.last
end
super [period_start, period_end], params
end
|
Instance Method Details
#duration ⇒ Object
37
38
39
|
# File 'lib/icalendar/values/period.rb', line 37
def duration
last.is_a?(Icalendar::Values::Duration) ? last : nil
end
|
#duration=(v) ⇒ Object
41
42
43
|
# File 'lib/icalendar/values/period.rb', line 41
def duration=(v)
value[1] = v.is_a?(Icalendar::Values::Duration) ? v : Icalendar::Values::Duration.new(v)
end
|
#explicit_end ⇒ Object
29
30
31
|
# File 'lib/icalendar/values/period.rb', line 29
def explicit_end
last.is_a?(Icalendar::Values::DateTime) ? last : nil
end
|
#explicit_end=(v) ⇒ Object
33
34
35
|
# File 'lib/icalendar/values/period.rb', line 33
def explicit_end=(v)
value[1] = v.is_a?(Icalendar::Values::DateTime) ? v : Icalendar::Values::DateTime.new(v)
end
|
#period_start ⇒ Object
21
22
23
|
# File 'lib/icalendar/values/period.rb', line 21
def period_start
first
end
|
#period_start=(v) ⇒ Object
25
26
27
|
# File 'lib/icalendar/values/period.rb', line 25
def period_start=(v)
value[0] = v.is_a?(Icalendar::Values::DateTime) ? v : Icalendar::Values::DateTime.new(v)
end
|
#value_ical ⇒ Object
17
18
19
|
# File 'lib/icalendar/values/period.rb', line 17
def value_ical
value.map { |v| v.value_ical }.join '/'
end
|