Module: Vpim::Icalendar::Set::Util
- Included in:
- Vevent::Maker
- Defined in:
- lib/vpim/property/base.rb
Overview
:nodoc:
Instance Method Summary collapse
- #add_address(name, value) ⇒ Object
- #field_create(name, value, default_value_type = nil, value_type = nil, params = {}) ⇒ Object
- #rm_all(name) ⇒ Object
- #set_address(name, value) ⇒ Object
- #set_date_or_datetime(name, default, value) ⇒ Object
- #set_datetime(name, value) ⇒ Object
- #set_integer(name, value) ⇒ Object
- #set_text(name, value) ⇒ Object
- #set_text_list(name, value) ⇒ Object
-
#set_token(name, allowed, default, value) ⇒ Object
:nodoc:.
Instance Method Details
#add_address(name, value) ⇒ Object
76 77 78 79 |
# File 'lib/vpim/property/base.rb', line 76 def add_address(name, value) f = value.encode(name) @comp.properties.push(f) end |
#field_create(name, value, default_value_type = nil, value_type = nil, params = {}) ⇒ Object
30 31 32 33 34 35 |
# File 'lib/vpim/property/base.rb', line 30 def field_create(name, value, default_value_type = nil, value_type = nil, params = {}) if value_type && value_type != default_value_type params['VALUE'] = value_type end Vpim::DirectoryInfo::Field.create(name, value, params) end |
#rm_all(name) ⇒ Object
14 15 16 17 |
# File 'lib/vpim/property/base.rb', line 14 def rm_all(name) rm = @comp.properties.select { |f| f.name? name } rm.each { |f| @comp.properties.delete(f) } end |
#set_address(name, value) ⇒ Object
81 82 83 84 |
# File 'lib/vpim/property/base.rb', line 81 def set_address(name, value) rm_all(name) add_address(name, value) end |
#set_date_or_datetime(name, default, value) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/vpim/property/base.rb', line 37 def set_date_or_datetime(name, default, value) f = nil case value when Date f = field_create(name, Vpim.encode_date(value), default, 'DATE') when Time f = field_create(name, Vpim.encode_date_time(value), default, 'DATE-TIME') else raise Vpim::Unencodeable, "Invalid #{name} value #{value.inspect}" end rm_all(name) @comp.properties.push(f) end |
#set_datetime(name, value) ⇒ Object
51 52 53 54 55 |
# File 'lib/vpim/property/base.rb', line 51 def set_datetime(name, value) f = field_create(name, Vpim.encode_date_time(value)) rm_all(name) @comp.properties.push(f) end |
#set_integer(name, value) ⇒ Object
69 70 71 72 73 74 |
# File 'lib/vpim/property/base.rb', line 69 def set_integer(name, value) value = value.to_int.to_s f = field_create(name, value) rm_all(name) @comp.properties.push(f) end |
#set_text(name, value) ⇒ Object
57 58 59 60 61 |
# File 'lib/vpim/property/base.rb', line 57 def set_text(name, value) f = field_create(name, Vpim.encode_text(value)) rm_all(name) @comp.properties.push(f) end |
#set_text_list(name, value) ⇒ Object
63 64 65 66 67 |
# File 'lib/vpim/property/base.rb', line 63 def set_text_list(name, value) f = field_create(name, Vpim.encode_text_list(value)) rm_all(name) @comp.properties.push(f) end |
#set_token(name, allowed, default, value) ⇒ Object
:nodoc:
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/vpim/property/base.rb', line 19 def set_token(name, allowed, default, value) #:nodoc: value = value.to_str unless allowed.include?(value) raise Vpim::Unencodeable, "Invalid #{name} value '#{value}'" end rm_all(name) unless value == default @comp.properties.push Vpim::DirectoryInfo::Field.create(name, value) end end |