class CFPropertyList::CFData

This class contains binary data values

def decoded_value

get base64 decoded value
def decoded_value
  @raw_value ||= String.new(Base64.decode64(@value))
  @raw_value.blob = true
  @raw_value
end

def encoded_value

get base64 encoded value
def encoded_value
  @value ||= "\n#{Base64.encode64(@raw_value).gsub("\n", '').scan(/.{1,76}/).join("\n")}\n"
end

def initialize(value=nil,format=DATA_BASE64)

set value to defined state, either base64 encoded or raw
def initialize(value=nil,format=DATA_BASE64)
  if(format == DATA_RAW) then
    @raw_value = value
    @raw_value.blob = true
  else
    @value = value
  end
end

def to_binary(bplist)

convert to binary
def to_binary(bplist)
  return bplist.data_to_binary(decoded_value())
end

def to_xml

convert to XML
def to_xml
  return LibXML::XML::Node.new('data') << LibXML::XML::Node.new_text(encoded_value())
end