module Moneta::Transformer::Helper
@api private
Public Instance Methods
bunzip2(value)
click to toggle source
# File lib/moneta/transformer/helper.rb, line 44 def bunzip2(value) ::RBzip2.default_adapter::Decompressor.new(::StringIO.new(value)).read end
bzip2(value)
click to toggle source
# File lib/moneta/transformer/helper.rb, line 36 def bzip2(value) io = ::StringIO.new bz = ::RBzip2.default_adapter::Compressor.new(io) bz.write(value) bz.close io.string end
escape(value)
click to toggle source
# File lib/moneta/transformer/helper.rb, line 7 def escape(value) value.gsub(/[^a-zA-Z0-9_-]+/) { |match| '%' + match.unpack('H2' * match.bytesize).join('%').upcase } end
hmacsign(value, secret)
click to toggle source
# File lib/moneta/transformer/helper.rb, line 20 def hmacsign(value, secret) OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha256'), secret, value) << value end
hmacverify(value, secret)
click to toggle source
# File lib/moneta/transformer/helper.rb, line 15 def hmacverify(value, secret) hash, value = value[0..31], value[32..-1] value if hash == OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha256'), secret, value) end
spread(value)
click to toggle source
# File lib/moneta/transformer/helper.rb, line 32 def spread(value) ::File.join(value[0..1], value[2..-1]) end
truncate(value, maxlen)
click to toggle source
# File lib/moneta/transformer/helper.rb, line 24 def truncate(value, maxlen) if value.size >= maxlen digest = Digest::MD5.hexdigest(value) value = value[0, maxlen - digest.size] << digest end value end
unescape(value)
click to toggle source
# File lib/moneta/transformer/helper.rb, line 11 def unescape(value) value.gsub(/(?:%[0-9a-fA-F]{2})+/) { |match| [match.delete('%')].pack('H*') } end