def any_of(*field_names)
      [].tap do |list|
        any_num = any_of_number(*field_names)
        self.each_value { |num| list << num if (num & any_num) > 0 }
      end
    end
def any_of(*field_names)
      [].tap do |list|
        any_num = any_of_number(*field_names)
        self.each_value { |num| list << num if (num & any_num) > 0 }
      end
    end
Gives you an array of values where at least one of the bits of the field
 names list is set to true (ie any of the bits are true).

 Possible values are derived from the bits list during initialization.

 Note: Order is not guaranteed. All numbers will be present, but there is
 no expectation that the numbers will be in the same order every time. If
 you need an ordered list, you can sort the result.

 @param [Symbol, Integer] one or more keys for the field name or an integer
    for a known bit index

 @example Retrieve a list for odd numbers or cool numbers
   gen = BitsGenerator.new(:is_odd => 0, :amount => [1, 2, 3], :is_cool => 4)
   gen.any_of(:is_odd) #=> [1, 3, 5, 9, 17, 7, 11, 19, 13, 21, 25, 15, 23, 27, 29, 31]
   gen.any_of(:is_cool) #=> [16, 17, 18, 20, 24, 19, 21, 25, 22, 26, 28, 23, 27, 29, 30, 31]
   gen.any_of(:is_odd, :is_cool) # is_odd or is_cool, same as union of arrays above
   #=> [1, 16, 3, 5, 9, 17, 18, 20, 24, 7, 11, 19, 13, 21, 25, 22, 26, 28, 15, 23, 27, 29, 30, 31]


 @return [Array<Integer>] an array of integer values with at least one of
   the bits set (true, bit is 1).  Will be blank if no field names given.