class SimpleEnum::Multiple::Coders::Bitwise

Public Class Methods

dump(array) click to toggle source
# File lib/simple_enum/multiple/coders/bitwise.rb, line 14
def self.dump(array)
  array.map do |i|
    1 << i
  end.reduce(&:+)
end
load(data) click to toggle source
# File lib/simple_enum/multiple/coders/bitwise.rb, line 5
def self.load(data)
  n = data.to_i
  (0..Math.log2(n).floor).reject do |i|
    (n & (1 << i)).zero?
  end
rescue FloatDomainError, Math::DomainError
  []
end