class Icalendar::Value

Constants

ESCAPE_PARAM_VALUE_REGEX
VALUE_TYPE_GSUB_REGEX_1
VALUE_TYPE_GSUB_REGEX_2

Attributes

ical_params[RW]

Public Class Methods

new(value, params = {}) click to toggle source
Calls superclass method
# File lib/icalendar/value.rb, line 13
def initialize(value, params = {})
  @ical_params = Icalendar::DowncasedHash(params)
  super value
end
value_type() click to toggle source
# File lib/icalendar/value.rb, line 40
def self.value_type
  name.gsub(VALUE_TYPE_GSUB_REGEX_1, '').gsub(VALUE_TYPE_GSUB_REGEX_2, '-\0').upcase
end

Public Instance Methods

ical_param(key, value) click to toggle source
# File lib/icalendar/value.rb, line 18
def ical_param(key, value)
  @ical_params[key] = value
end
params_ical() click to toggle source
# File lib/icalendar/value.rb, line 31
def params_ical
  unless ical_params.empty?
    ";#{ical_params.map { |name, value| param_ical name, value }.join ';'}"
  end
end
to_ical(default_type) click to toggle source
# File lib/icalendar/value.rb, line 26
def to_ical(default_type)
  ical_param 'value', self.value_type if needs_value_type?(default_type)
  "#{params_ical}:#{value_ical}"
end
value() click to toggle source
# File lib/icalendar/value.rb, line 22
def value
  __getobj__
end
value_type() click to toggle source
# File lib/icalendar/value.rb, line 44
def value_type
  self.class.value_type
end

Private Instance Methods

escape_param_value(value) click to toggle source
# File lib/icalendar/value.rb, line 65
def escape_param_value(value)
  v = value.to_s.gsub('"', "'")
  v =~ ESCAPE_PARAM_VALUE_REGEX ? %("#{v}") : v
end
needs_value_type?(default_type) click to toggle source
# File lib/icalendar/value.rb, line 50
def needs_value_type?(default_type)
  self.class != default_type
end
param_ical(name, param_value) click to toggle source
# File lib/icalendar/value.rb, line 54
def param_ical(name, param_value)
  if param_value.is_a? Array
    param_value = param_value.map { |v| escape_param_value v }.join ','
  else
    param_value = escape_param_value param_value
  end
  "#{name.to_s.gsub('_', '-').upcase}=#{param_value}"
end