class Tilia::VObject::Writer

iCalendar/vCard/jCal/jCard/xCal/xCard writer object.

This object provides a few (static) convenience methods to quickly access the serializers.

Public Class Methods

write(component) click to toggle source

Serializes a vCard or iCalendar object.

@param [Component] component

@return [String]

# File lib/tilia/v_object/writer.rb, line 14
def self.write(component)
  component.serialize
end
write_json(component) click to toggle source

Serializes a jCal or jCard object.

@param [Component] component @param [Fixnum] options

@return [String]

# File lib/tilia/v_object/writer.rb, line 24
def self.write_json(component)
  component.json_serialize.to_json
end
write_xml(component) click to toggle source

Serializes a xCal or xCard object.

@param [Component] component

@return [String]

# File lib/tilia/v_object/writer.rb, line 33
def self.write_xml(component)
  writer = Tilia::Xml::Writer.new
  writer.open_memory
  writer.set_indent(true)

  writer.start_document(encoding: LibXML::XML::Encoding::UTF_8)

  if component.is_a? Tilia::VObject::Component::VCalendar
    writer.start_element('icalendar')
    writer.write_attribute('xmlns', Tilia::VObject::Parser::Xml::XCAL_NAMESPACE)
  else
    writer.start_element('vcards')
    writer.write_attribute('xmlns', Tilia::VObject::Parser::Xml::XCARD_NAMESPACE)
  end

  component.xml_serialize(writer)

  writer.end_element

  writer.output_memory
end