# File lib/icalendar/component.rb, line 128
    def print_properties
      s = ""

      @properties.sort.each do |key,val|
        # Take out underscore for property names that conflicted
        # with built-in words.
        if key =~ /ip_.*/
          key = key[3..-1]
        end
        
        # Property name
        unless multiline_property?(key)
          prelude = "#{key.gsub(/_/, '-').upcase}" +

          # Possible parameters
          print_parameters(val)

          # Property value
          value = ":#{val.to_ical}"
          value = escape_chars(value) unless %w[rrule categories exdate].include?(key)
          add_sliced_text(s, prelude + value)
        else
          prelude = "#{key.gsub(/_/, '-').upcase}"
          val.each do |v|
            params = print_parameters(v)
            value = ":#{v.to_ical}"
            value = escape_chars(value) unless key == "rrule"
            add_sliced_text(s, prelude + params + value)
          end
        end
      end
      s
    end