def bits_for(*field_names)
      bits = []
      
      field_names.flatten.each do |i|
        if i.is_a?(Integer)
          bits << i
          next
        end
        
        if i.respond_to?(:to_sym) and @field_list[i.to_sym]
          bits << @field_list[i.to_sym]
        end
      end
      
      bits.flatten
    end
def bits_for(*field_names)
      bits = []
      
      field_names.flatten.each do |i|
        if i.is_a?(Integer)
          bits << i
          next
        end
        
        if i.respond_to?(:to_sym) and @field_list[i.to_sym]
          bits << @field_list[i.to_sym]
        end
      end
      
      bits.flatten
    end
Initialize the generator.

 @param [BitMagic::Adapters::Magician, Hash] magician_or_field_list a Magician
   object that contains field_list, bits, and options OR a Hash object of
   :name => bit index or bit index array, key-value pairs
 @param [Hash] options options and defaults, will override Magician action_options
   if given
 @option options [Integer] :default a default value, default: 0
 @option options [Proc] :bool_caster a callable Method, Proc or lambda that
   is used to cast a value into a boolean

 @return [BitsGenerator] the resulting object
 Given a field name or list of field names, return their corresponding bits
 Field names are the key values of the field_list hash during initialization

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

 @example Get a list of bits
   gen = BitMagic::BitsGenerator.new(:is_odd => 0, :amount => [1, 2, 3], :is_cool => 4)
   gen.bits_for(:is_odd) #=> [0]
   gen.bits_for(:amount) #=> [1, 2, 3]
   gen.bits_for(:is_odd, :amount) #=> [0, 1, 2, 3]
   gen.bits_for(:is_cool, 5, 6) #=> [4, 5, 6]
   gen.bits_for(9, 10) #=> [9, 10]

 @return [Array<Integer>] an array of bit indices