What I said in the line above also applies here inside of the outer ````map```` loop. You don't need to initialize ````record```` as an array and you don't even need the ````record```` variable because map returns an array. By using the return value from map, you can do what @jeisen was really suggesting in his comment on animoto/responsys_client#5.

All you've really done here is change your ````each```` into a ````map```` and put all of your lines into one line with semicolons thrown in between. You can make this a lot simpler with something like:

    record_data.records = members.map do |member|
        record_data.fieldNames.map do |field|
            member[field]
        end
    end

every loop of the inner loop returns a ````record```` (which is just an array of the values of member in order) and the outer loop puts all the records together.