Files

Class/Module Index [+]

Quicksearch

Dragonfly::Serializer

Public Instance Methods

b64_decode(string) click to toggle source
# File lib/dragonfly/serializer.rb, line 17
def b64_decode(string)
  padding_length = string.length % 4
  string = string.tr('~', '/')
  Base64.decode64(string + '=' * padding_length)
end
b64_encode(string) click to toggle source
# File lib/dragonfly/serializer.rb, line 13
def b64_encode(string)
  Base64.encode64(string).tr("\n=",'')
end
json_decode(string, opts={}) click to toggle source
# File lib/dragonfly/serializer.rb, line 39
def json_decode(string, opts={})
  MultiJson.decode(b64_decode(string), :symbolize_keys => opts[:symbolize_keys])
rescue MultiJson::DecodeError => e
  raise BadString, "couldn't decode #{string} - got #{e}"
end
json_encode(object) click to toggle source
# File lib/dragonfly/serializer.rb, line 35
def json_encode(object)
  b64_encode(MultiJson.encode(object))
end
marshal_decode(string, opts={}) click to toggle source
# File lib/dragonfly/serializer.rb, line 27
def marshal_decode(string, opts={})
  marshal_string = b64_decode(string)
  raise MaliciousString, "potentially malicious marshal string #{marshal_string.inspect}" if opts[:check_malicious] && marshal_string[/@[a-z_]/]
  Marshal.load(marshal_string)
rescue TypeError, ArgumentError => e
  raise BadString, "couldn't decode #{string} - got #{e}"
end
marshal_encode(object) click to toggle source
# File lib/dragonfly/serializer.rb, line 23
def marshal_encode(object)
  b64_encode(Marshal.dump(object))
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.