class Icalendar::Values::UtcOffset

Constants

PARSE_FIELDS_MD_REGEX
PARSE_FIELDS_WHITESPACE_GSUB_REGEX

Public Class Methods

new(value, params = {}) click to toggle source
Calls superclass method Icalendar::Value::new
# File lib/icalendar/values/utc_offset.rb, line 8
def initialize(value, params = {})
  if value.is_a? Icalendar::Values::UtcOffset
    value = value.value
  else
    value = OpenStruct.new parse_fields(value)
  end
  super value, params
end

Public Instance Methods

behind?() click to toggle source
# File lib/icalendar/values/utc_offset.rb, line 17
def behind?
  return false if zero_offset?
  value.behind
end
to_s() click to toggle source
# File lib/icalendar/values/utc_offset.rb, line 26
def to_s
  str = "#{behind? ? '-' : '+'}#{'%02d' % hours}:#{'%02d' % minutes}"
  if seconds > 0
    "#{str}:#{'%02d' % seconds}"
  else
    str
  end
end
value_ical() click to toggle source
# File lib/icalendar/values/utc_offset.rb, line 22
def value_ical
  "#{behind? ? '-' : '+'}#{'%02d' % hours}#{'%02d' % minutes}#{'%02d' % seconds if seconds > 0}"
end

Private Instance Methods

parse_fields(value) click to toggle source
# File lib/icalendar/values/utc_offset.rb, line 44
def parse_fields(value)
  md = PARSE_FIELDS_MD_REGEX.match value.gsub(PARSE_FIELDS_WHITESPACE_GSUB_REGEX, '')
  {
    behind: (md[:behind] == '-'),
    hours: md[:hours].to_i,
    minutes: md[:minutes].to_i,
    seconds: md[:seconds].to_i
  }
end
zero_offset?() click to toggle source
# File lib/icalendar/values/utc_offset.rb, line 37
def zero_offset?
  hours == 0 && minutes == 0 && seconds == 0
end