lib/format.jsView |
---|
23 | 23 … | record.name = record.name.replace(nameRegexp, '') || '@'; |
24 | 24 … | }; |
25 | 25 … | }; |
26 | 26 … | |
27 | | -Format.recordToLine = function (record) { |
28 | | - return [ |
29 | | - record.id, |
30 | | - pad(record.authorName, 12), |
31 | | - pad(record.name, -24), |
32 | | - pad(record.ttl, -5), |
33 | | - pad(record.class, -3), |
34 | | - pad(record.type, 5), |
35 | | - dataToString(record, record.data) |
36 | | - ].join(' '); |
| 27 … | +Format.getMaxLengths = function (records) { |
| 28 … | + var maxLengths = {}; |
|
| 29 … | + records.forEach(function (record) { |
| 30 … | + for (var k in record) { |
| 31 … | + var len = String(record[k]).length |
| 32 … | + if (len > ~~maxLengths[k]) maxLengths[k] = len; |
| 33 … | + } |
| 34 … | + }); |
| 35 … | + return maxLengths; |
37 | 36 … | }; |
38 | 37 … | |
| 38 … | +Format.recordsToLines = function (maxLengths) { |
| 39 … | + return function (record) { |
| 40 … | + return [ |
| 41 … | + record.id, |
| 42 … | + pad(record.authorName, 12), |
| 43 … | + pad(record.name, -maxLengths.name), |
| 44 … | + pad(record.ttl, -maxLengths.ttl), |
| 45 … | + pad(record.class, maxLengths.class), |
| 46 … | + pad(record.type, maxLengths.type), |
| 47 … | + dataToString(record, record.data) |
| 48 … | + ].join(' '); |
| 49 … | + }; |
| 50 … | +}; |
| 51 … | + |
39 | 52 … | function dataToString(record, data) { |
40 | 53 … | switch (record.class + " " + record.type) { |
41 | 54 … | case "IN A": |
42 | 55 … | case "IN AAAA": |