lib/dreader.rb
def bulk_declare hash, &block 
      hash.keys.each do |key|
        column = Column.new
        column.colref hash[key]
        if block
          column.instance_eval(&block)
        end
        @colspec << column.to_hash.merge({name: key})
      end
    end
def bulk_declare hash, &block 
      hash.keys.each do |key|
        column = Column.new
        column.colref hash[key]
        if block
          column.instance_eval(&block)
        end
        @colspec << column.to_hash.merge({name: key})
      end
    end
bulk declare columns we intend to read

 - hash is a hash in the form { symbolic_name: colref }

 i.bulk_declare {name: 'B', age: 'C'} is equivalent to:

 i.column :name do
   colref 'B'
 end
 i.column :age do
   colref 'C'
 end

 i.bulk_declare {name: 'B', age: 'C'} do
   process do |cell|
     cell.strip
   end
 end

 is equivalent to:

 i.column :name do
   colref 'B'
   process do |cell|
     cell.strip
   end
 end
 i.column :age do
   colref 'C'
   process do |cell|
     cell.strip
   end
 end