Class: XMLRPC::Base64
- Inherits:
-
Object
- Object
- XMLRPC::Base64
- Includes:
- Comparable
- 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 XMLRPC::Base64 on the client and server-side as a parameter and/or return-value.
Class Method Summary collapse
-
.decode(str) ⇒ Object
Decodes string
str
with base64 and returns that value. -
.encode(str) ⇒ Object
Encodes string
str
with base64 and returns that value.
Instance Method Summary collapse
-
#<=>(other) ⇒ Object
Compare two base64 values, based on decoded string.
-
#decoded ⇒ Object
Returns the decoded internal string.
-
#encoded ⇒ Object
Returns the base64 encoded internal string.
-
#initialize(str, state = :dec) ⇒ Base64
constructor
Creates a new XMLRPC::Base64 instance with string
str
as the internal string.
Constructor Details
#initialize(str, state = :dec) ⇒ Base64
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.
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/xmlrpc/base64.rb', line 23 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) ⇒ Object
Decodes string str
with base64 and returns that value.
51 52 53 |
# File 'lib/xmlrpc/base64.rb', line 51 def Base64.decode(str) str.gsub(/\s+/, "").unpack("m")[0] end |
.encode(str) ⇒ Object
Encodes string str
with base64 and returns that value.
56 57 58 |
# File 'lib/xmlrpc/base64.rb', line 56 def Base64.encode(str) [str].pack("m") end |
Instance Method Details
#<=>(other) ⇒ Object
Compare two base64 values, based on decoded string
45 46 47 48 |
# File 'lib/xmlrpc/base64.rb', line 45 def <=>(other) return nil unless other.is_a?(self.class) decoded <=> other.decoded end |
#decoded ⇒ Object
Returns the decoded internal string.
35 36 37 |
# File 'lib/xmlrpc/base64.rb', line 35 def decoded @str end |