sub structure {
my ($self, $data) = @_;
if (ref($data) eq 'HASH') {
+ if (keys %$data > 1
+ and values %$data == grep ref($_) eq 'HASH', values %$data) {
+ my %tmp;
+ $tmp{join '|', keys %$_} = 1 for values %$data;
+ if (keys %tmp == 1) {
+ $data->{$_}->{name} ||= $_ for keys %$data;
+ return {
+ columns => [ sort keys %{(values %$data)[0]} ],
+ show_columns => 1,
+ data => [ @{$data}{sort keys %$data} ],
+ }
+ }
+ }
return {
columns => [ 'key', 'value' ],
data => [ map +{ key => $_, value => $data->{$_} }, sort keys %$data ],