Sha256: 08834c939c2552ed31e86a4af0308f5173f0c538a23daff8d873428bd2148098

Contents?: true

Size: 504 Bytes

Versions: 7

Compression:

Stored size: 504 Bytes

Contents

require 'base64'
require 'zlib'

require 'leeroy/helpers/dumpable'
require 'leeroy/types/dash'

module Leeroy
  module Types
    class PackedString < String
      include Leeroy::Helpers::Dumpable

      def pack(input = self.to_s)
        Base64.urlsafe_encode64(Zlib::Deflate.deflate(input))
      end

      def unpack(input = self.to_s)
        Zlib::Inflate.inflate(Base64.urlsafe_decode64(input))
      end

      alias_method :dumper, :pack
      alias_method :extract, :unpack

    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
leeroy_app-0.5.4 lib/leeroy/types/packedstring.rb
leeroy_app-0.4.0 lib/leeroy/types/packedstring.rb
leeroy_app-0.3.1 lib/leeroy/types/packedstring.rb
leeroy_app-0.3.0 lib/leeroy/types/packedstring.rb
leeroy_app-0.2.1 lib/leeroy/types/packedstring.rb
leeroy_app-0.2.0 lib/leeroy/types/packedstring.rb
leeroy_app-0.1.0 lib/leeroy/types/packedstring.rb