Class: XMLRPC::Base64
| Relationships & Source Files | |
| Inherits: | Object | 
| Defined in: | lib/xmlrpc/base64.rb | 
Overview
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 Base64 on the client and server-side as a parameter and/or return-value.
Class Method Summary
- 
    
      .decode(str)  
    
    Decodes string strwith base64 and returns that value.
- 
    
      .encode(str)  
    
    Encodes string strwith base64 and returns that value.
- 
    
      .new(str, state = :dec)  ⇒ Base64 
    
    constructor
    Creates a new Base64instance with stringstras the internal string.
Instance Method Summary
Constructor Details
    .new(str, state = :dec)  ⇒ Base64 
  
Creates a new 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 21
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
Class Method Details
.decode(str)
Decodes string str with base64 and returns that value.
# File 'lib/xmlrpc/base64.rb', line 44
def Base64.decode(str) str.gsub(/\s+/, "").unpack("m")[0] end
.encode(str)
Encodes string str with base64 and returns that value.
# File 'lib/xmlrpc/base64.rb', line 49
def Base64.encode(str) [str].pack("m") end
Instance Method Details
#decoded
Returns the decoded internal string.
# File 'lib/xmlrpc/base64.rb', line 33
def decoded @str end
#encoded
Returns the base64 encoded internal string.
# File 'lib/xmlrpc/base64.rb', line 38
def encoded Base64.encode(@str) end