class Icalendar::Values::Duration
Public Class Methods
new(value, params = {})
click to toggle source
Calls superclass method
Icalendar::Value.new
# File lib/icalendar/values/duration.rb, line 8 def initialize(value, params = {}) if value.is_a? Icalendar::Values::Duration super value.value, params else super OpenStruct.new(parse_fields value), params end end
Public Instance Methods
past?()
click to toggle source
# File lib/icalendar/values/duration.rb, line 16 def past? value.past end
value_ical()
click to toggle source
# File lib/icalendar/values/duration.rb, line 20 def value_ical return "#{'-' if past?}P#{weeks}W" if weeks > 0 builder = [] builder << '-' if past? builder << 'P' builder << "#{days}D" if days > 0 builder << 'T' if time? builder << "#{hours}H" if hours > 0 builder << "#{minutes}M" if minutes > 0 builder << "#{seconds}S" if seconds > 0 builder.join end
Private Instance Methods
parse_fields(value)
click to toggle source
# File lib/icalendar/values/duration.rb, line 39 def parse_fields(value) { past: (value =~ /\A([+-])P/ ? $1 == '-' : false), weeks: (value =~ /(\d+)W/ ? $1.to_i : 0), days: (value =~ /(\d+)D/ ? $1.to_i : 0), hours: (value =~ /(\d+)H/ ? $1.to_i : 0), minutes: (value =~ /(\d+)M/ ? $1.to_i : 0), seconds: (value =~ /(\d+)S/ ? $1.to_i : 0) } end
time?()
click to toggle source
# File lib/icalendar/values/duration.rb, line 35 def time? hours > 0 || minutes > 0 || seconds > 0 end