152 |
} |
} |
153 |
|
|
154 |
my $role_method; |
my $role_method; |
155 |
|
my $role_attribute; |
156 |
|
|
157 |
if ( $meta->can('roles') ) { |
if ( $meta->can('roles') ) { |
158 |
my $role_nr = 1; |
my $role_nr = 1; |
160 |
grep { ! m/\Q$class\E/ } # skip me |
grep { ! m/\Q$class\E/ } # skip me |
161 |
map { |
map { |
162 |
my $name = $_->name; |
my $name = $_->name; |
163 |
$role_method->{ $_ }->{$name} = $role_nr foreach $_->get_method_list; |
$role_method->{ $_ }->{$name} = $role_nr foreach $_->get_method_list; |
164 |
|
$role_attribute->{ $_ }->{$name} = $role_nr foreach $_->get_attribute_list; |
165 |
qq|<a class="frey-popdown" href="/$name">$name<code>| . $name->meta->dump(2) . qq|</code></a><sup>| . $role_nr++ . qq|</sup>|; |
qq|<a class="frey-popdown" href="/$name">$name<code>| . $name->meta->dump(2) . qq|</code></a><sup>| . $role_nr++ . qq|</sup>|; |
166 |
} |
} |
167 |
$meta->calculate_all_roles |
$meta->calculate_all_roles |
172 |
|
|
173 |
my @methods; |
my @methods; |
174 |
@methods = map { |
@methods = map { |
175 |
my $method = $_; |
my $name = $_; |
176 |
if ( $role_method ) { |
if ( $role_method->{$name} ) { |
177 |
my ( $name, $nr ) = each %{ $role_method->{$_} }; |
my ( $role_name, $nr ) = each %{ $role_method->{$name} }; |
178 |
$method .= qq|<sup title="$name">$nr</sup>|; |
$name .= qq|<sup title="$role_name">$nr</sup>|; |
179 |
} |
} |
180 |
qq|<td class="m">$method</td>| |
qq|<td class="m">$name</td>| |
181 |
} $self->methods; |
} $self->methods; |
182 |
|
|
183 |
my @attributes; |
my @attributes; |
184 |
if ( $meta->get_attribute_list ) { |
if ( $meta->get_attribute_list ) { |
185 |
@attributes = map { |
@attributes = map { |
186 |
my $attr = $meta->get_attribute($_); |
my $name = $_; |
187 |
|
my $attr = $meta->get_attribute($name); |
188 |
my ( $before, $title, $after ) = ( '', '', '' ); |
my ( $before, $title, $after ) = ( '', '', '' ); |
189 |
( $before, $title, $after ) = ( '<b>', ' title="required"', '</b>' ) if $attr->is_required; |
( $before, $title, $after ) = ( '<b>', ' title="required"', '</b>' ) if $attr->is_required; |
190 |
warn $attr->dump(3); |
warn $attr->dump(3); |
207 |
$after .= ' '; |
$after .= ' '; |
208 |
} |
} |
209 |
my $type = $attr->has_type_constraint ? $attr->type_constraint->name : ''; |
my $type = $attr->has_type_constraint ? $attr->type_constraint->name : ''; |
210 |
qq|<td class="a">$before $_</td><td class="t">$type</td><td>$after</td>| |
|
211 |
|
if ( $role_attribute->{$name} ) { |
212 |
|
my ( $role_name, $nr ) = each %{ $role_attribute->{$name} }; |
213 |
|
$name .= qq|<sup title="$role_name">$nr</sup>|; |
214 |
|
} |
215 |
|
|
216 |
|
qq|<td class="a">$before $name</td><td class="t">$type</td><td>$after</td>| |
217 |
} sort $meta->get_attribute_list |
} sort $meta->get_attribute_list |
218 |
} |
} |
219 |
|
|