Sha256: 2389d434519bb746efa0e9774f40c395b57fafe9b4a31cfdbe30d3ea73ffb996

Contents?: true

Size: 313 Bytes

Versions: 6

Compression:

Stored size: 313 Bytes

Contents

# encoding: utf-8

module Rubymisc
  module String
    def ^(key)
      key_bytes = key.bytes.cycle
      xor_proc = ->(byte) { byte ^ key_bytes.next }
      bytes.map(&xor_proc).pack('C*').force_encoding(self.encoding)
    end
    alias_method :xor, :^
  end
end

::String.module_eval 'include Rubymisc::String'

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rubymisc-0.2.0 lib/rubymisc/ext/string.rb
rubymisc-0.1.0 lib/rubymisc/ext/string.rb
rubymisc-0.0.4 lib/rubymisc/ext/string.rb
rubymisc-0.0.3.3 lib/rubymisc/ext/string.rb
rubymisc-0.0.3.2 lib/rubymisc/ext/string.rb
rubymisc-0.0.3.1 lib/rubymisc/ext/string.rb