# class XMLRPC::Base64

This class is necessary for 'xmlrpc4r' to determine that a string should be transmitted base64-encoded and not as a raw-string.

You can use XMLRPC::Base64 on the client and server-side as a parameter and/or return-value.

### Public Class Methods

decode(str) click to toggle source

Decodes string `str` with base64 and returns that value.

    # File lib/xmlrpc/base64.rb, line 45
    def Base64.decode(str)
      str.gsub(/\s+/, "").unpack("m")[0]
    end

encode(str) click to toggle source

Encodes string `str` with base64 and returns that value.

    # File lib/xmlrpc/base64.rb, line 50
    def Base64.encode(str)
      [str].pack("m")
    end

new(str, state = :dec) click to toggle source

Creates a new XMLRPC::Base64 instance with string `str` as the internal string. When `state` is `:dec` it assumes that the string `str` is not in base64 format (perhaps already decoded), otherwise if `state` is `:enc` it decodes `str` and stores it as the internal string.

    # File lib/xmlrpc/base64.rb, line 22
    def initialize(str, state = :dec)
      case state
      when :enc
        @str = Base64.decode(str)
      when :dec
        @str = str
      else
        raise ArgumentError, "wrong argument; either :enc or :dec"
      end
    end

### Public Instance Methods

decoded() click to toggle source

Returns the decoded internal string.

    # File lib/xmlrpc/base64.rb, line 34
    def decoded
      @str
    end

encoded() click to toggle source

Returns the base64 encoded internal string.

    # File lib/xmlrpc/base64.rb, line 39
    def encoded
      Base64.encode(@str)
    end