Search code examples
ios5rubymotion

Rubymotion Base64


I am looking for a simple way to encode a string using base64. In ruby motion I can't just use the Base64encode of Ruby because I am not able to require it. So I thought I could use a build in function of Cocoa. But Cocoa does not seem to have a Base64encode function. I have found some categories on NSData, but don't know how to use them in a ruby motion project. Should I create a statics library for this?

I have got the feeling that I am looking in the wrong direction, there must be easy solution for this?


Solution

  • If you look at the source for Base64.encode64 method, you'll see that it just uses the pack method. So you can encode/decode like this (note that you need to put the thing you want to encode inside an array):

    ["my string"].pack("m")
    # => "bXkgc3RyaW5n\n"
    
    "bXkgc3RyaW5n\n".unpack("m").first
    # => "my string"
    

    http://www.ruby-doc.org/stdlib-1.9.3/libdoc/base64/rdoc/Base64.html#method-i-encode64