def remove_row(row_removed)
      return unless argument_rows

      case
        when row_removed.is_a?(Array)
          location = argument_rows.index { |row| row.cells.collect { |cell| cell.value } == row_removed.collect { |value| value.strip } }
        when row_removed.is_a?(Hash)
          # Note: the hash value order has to be manually calculated because Ruby 1.8.7 does not have ordered 
          # hash keys. Alternatively, the hash may have simply been built up 'willy nilly' by the user instead 
          # of being built up in order according to the parameter order.
          location = argument_rows.index { |row| row.cells.collect { |cell| cell.value } == ordered_row_values(row_removed.each_value { |value| value.strip! }) }
        else
          raise(ArgumentError, "Can only remove row from a Hash or an Array but received #{row_removed.class}")
      end

      @rows.delete_at(location + 1) if location
    end
def remove_row(row_removed)
      return unless argument_rows

      case
        when row_removed.is_a?(Array)
          location = argument_rows.index { |row| row.cells.collect { |cell| cell.value } == row_removed.collect { |value| value.strip } }
        when row_removed.is_a?(Hash)
          # Note: the hash value order has to be manually calculated because Ruby 1.8.7 does not have ordered 
          # hash keys. Alternatively, the hash may have simply been built up 'willy nilly' by the user instead 
          # of being built up in order according to the parameter order.
          location = argument_rows.index { |row| row.cells.collect { |cell| cell.value } == ordered_row_values(row_removed.each_value { |value| value.strip! }) }
        else
          raise(ArgumentError, "Can only remove row from a Hash or an Array but received #{row_removed.class}")
      end

      @rows.delete_at(location + 1) if location
    end
Removes a row from the example table. The row can be given as a Hash of
 parameters and their corresponding values or as an Array of values
 which will be assigned in order.