diff options
author | Jari Vetoniemi <jari.vetoniemi@indooratlas.com> | 2020-03-16 18:49:26 +0900 |
---|---|---|
committer | Jari Vetoniemi <jari.vetoniemi@indooratlas.com> | 2020-03-30 00:39:06 +0900 |
commit | fcbf63e62c627deae76c1b8cb8c0876c536ed811 (patch) | |
tree | 64cb17de3f41a2b6fef2368028fbd00349946994 /jni/ruby/lib/xmlrpc/base64.rb |
Fresh start
Diffstat (limited to 'jni/ruby/lib/xmlrpc/base64.rb')
-rw-r--r-- | jni/ruby/lib/xmlrpc/base64.rb | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/jni/ruby/lib/xmlrpc/base64.rb b/jni/ruby/lib/xmlrpc/base64.rb new file mode 100644 index 0000000..b898fc9 --- /dev/null +++ b/jni/ruby/lib/xmlrpc/base64.rb @@ -0,0 +1,62 @@ +# +# xmlrpc/base64.rb +# Copyright (C) 2001, 2002, 2003 by Michael Neumann (mneumann@ntecs.de) +# +# Released under the same term of license as Ruby. + +module XMLRPC # :nodoc: + +# 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 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. + 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 + + # Returns the decoded internal string. + def decoded + @str + end + + # Returns the base64 encoded internal string. + def encoded + Base64.encode(@str) + end + + + # Decodes string +str+ with base64 and returns that value. + def Base64.decode(str) + str.gsub(/\s+/, "").unpack("m")[0] + end + + # Encodes string +str+ with base64 and returns that value. + def Base64.encode(str) + [str].pack("m") + end + +end + + +end # module XMLRPC + + +=begin += History + $Id: base64.rb 36958 2012-09-13 02:22:10Z zzak $ +=end |