# File lib/dm-types/flag.rb, line 31 def self.load(value, property) begin matches = [] return [] if value.nil? || (value <= 0) 0.upto((Math.log(value) / Math.log(2)).ceil) do |i| pow = 2 ** i matches << flag_map[pow] if value & pow == pow end matches.compact rescue TypeError, Errno::EDOM [] end end