Module: Dragonfly::Serializer
Defined Under Namespace
Classes: BadString, MaliciousString
Instance Method Summary
collapse
Instance Method Details
#b64_decode(string) ⇒ Object
19
20
21
22
23
|
# File 'lib/dragonfly/serializer.rb', line 19
def b64_decode(string)
padding_length = string.length % 4
string = string.tr('~', '/')
Base64.decode64(string + '=' * padding_length)
end
|
#b64_encode(string) ⇒ Object
15
16
17
|
# File 'lib/dragonfly/serializer.rb', line 15
def b64_encode(string)
Base64.encode64(string).tr("\n=",'')
end
|
#json_b64_decode(string) ⇒ Object
52
53
54
|
# File 'lib/dragonfly/serializer.rb', line 52
def json_b64_decode(string)
json_decode(b64_decode(string))
end
|
#json_b64_encode(object) ⇒ Object
48
49
50
|
# File 'lib/dragonfly/serializer.rb', line 48
def json_b64_encode(object)
b64_encode(json_encode(object))
end
|
#json_decode(string) ⇒ Object
41
42
43
44
45
46
|
# File 'lib/dragonfly/serializer.rb', line 41
def json_decode(string)
raise BadString, "can't decode blank string" if Utils.blank?(string)
MultiJson.decode(string)
rescue MultiJson::DecodeError => e
raise BadString, "couldn't json decode string - got #{e}"
end
|
#json_encode(object) ⇒ Object
37
38
39
|
# File 'lib/dragonfly/serializer.rb', line 37
def json_encode(object)
MultiJson.encode(object)
end
|
#marshal_b64_decode(string, opts = {}) ⇒ Object
29
30
31
32
33
34
35
|
# File 'lib/dragonfly/serializer.rb', line 29
def marshal_b64_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_]/i]
Marshal.load(marshal_string)
rescue TypeError, ArgumentError => e
raise BadString, "couldn't marshal decode string - got #{e}"
end
|
#marshal_b64_encode(object) ⇒ Object
25
26
27
|
# File 'lib/dragonfly/serializer.rb', line 25
def marshal_b64_encode(object)
b64_encode(Marshal.dump(object))
end
|