Sha256: 8d3ba1cc9d8754b65d76a1250bde0127a857d659ce20c2cc38e2f19e6f30be06

Contents?: true

Size: 700 Bytes

Versions: 19

Compression:

Stored size: 700 Bytes

Contents

# encoding: utf-8
require 'base64'

module Dragonfly
  module Serializer
    
    # Exceptions
    class BadString < RuntimeError; end
    
    extend self # So we can do Serializer.b64_encode, etc.
    
    def b64_encode(string)
      Base64.encode64(string).tr("\n=",'')
    end
    
    def b64_decode(string)
      padding_length = string.length % 4
      Base64.decode64(string + '=' * padding_length)
    end
    
    def marshal_encode(object)
      b64_encode(Marshal.dump(object))
    end
    
    def marshal_decode(string)
      Marshal.load(b64_decode(string))
    rescue TypeError, ArgumentError => e
      raise BadString, "couldn't decode #{string} - got #{e}"
    end
    
  end
end

Version data entries

19 entries across 19 versions & 3 rubygems

Version Path
dragonfly-0.9.2 lib/dragonfly/serializer.rb
dragonfly-0.8.5 lib/dragonfly/serializer.rb
dragonfly-0.9.1 lib/dragonfly/serializer.rb
dragonfly-0.9.0 lib/dragonfly/serializer.rb
dragonfly-0.8.4 lib/dragonfly/serializer.rb
oahu-dragonfly-0.8.2 lib/dragonfly/serializer.rb
fog-dragonfly-0.8.2 lib/dragonfly/serializer.rb
dragonfly-0.8.2 lib/dragonfly/serializer.rb
fog-dragonfly-0.8.1 lib/dragonfly/serializer.rb
dragonfly-0.8.1 lib/dragonfly/serializer.rb
dragonfly-0.8.0 lib/dragonfly/serializer.rb
dragonfly-0.7.7 lib/dragonfly/serializer.rb
dragonfly-0.7.6 lib/dragonfly/serializer.rb
dragonfly-0.7.5 lib/dragonfly/serializer.rb
dragonfly-0.7.4 lib/dragonfly/serializer.rb
dragonfly-0.7.3 lib/dragonfly/serializer.rb
dragonfly-0.7.2 lib/dragonfly/serializer.rb
dragonfly-0.7.1 lib/dragonfly/serializer.rb
dragonfly-0.7.0 lib/dragonfly/serializer.rb