/[Frey]/trunk/lib/Frey/Introspect.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/Frey/Introspect.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 198 by dpavlin, Tue Oct 28 21:24:07 2008 UTC revision 227 by dpavlin, Sat Nov 1 01:38:13 2008 UTC
# Line 129  sub load_package { Line 129  sub load_package {
129    
130  =head1 OUTPUT GENERATION  =head1 OUTPUT GENERATION
131    
132  =head2 html  =head2 request
133    
134    $o->html( $request );    $o->request( $request );
135    
136  =cut  =cut
137    
138  sub html {  sub request {
139          my ( $self, $request ) = @_;          my ( $self, $request ) = @_;
140    
141          $self->add_head( 'static/introspect.css' );          $self->add_head( 'static/introspect.css' );
# Line 147  sub html { Line 147  sub html {
147                  my $package = $self->package;                  my $package = $self->package;
148    
149                  my @methods;                  my @methods;
150                  @methods = map { qq|<td><a href="/~/$package/$_">$_</a></td>| } $self->methods;                  @methods = map { qq|<td class="m">$_</td>| } $self->methods;
151    
152                  my @attributes;                  my @attributes;
153                  if ( $meta->get_attribute_list ) {                  if ( $meta->get_attribute_list ) {
# Line 164  warn $attr->dump(3); Line 164  warn $attr->dump(3);
164                                                                                    
165                                          if ( $attr->$check ) {                                          if ( $attr->$check ) {
166                                                  if ( $getter eq $check ) {                                                  if ( $getter eq $check ) {
167                                                          $after .= "$check ";                                                          $after .= "$check";
168                                                  } else {                                                  } else {
169                                                          $after .= qq{<span class="frey-popup">$check};                                                          $after .= qq{<span class="frey-popdown">$check};
170                                                          $after .= '<span>' . $attr->$getter->dump . '</span>' if $getter ne $check;                                                          $after .= '<code>' . $attr->$getter->dump . '</code>' if $getter ne $check;
171                                                          $after .= ' </span>';                                                          $after .= '</span>';
172                                                  }                                                  }
173                                          }                                          }
174                                            $after .= ' ';
175                                  }                                  }
176                                  qq|<td>$before<a href="/~/$package/?$_">$_</a></td><td>$after</td>|                                  qq|<td class="a">$before $_</td><td>$after</td>|
177                          } sort $meta->get_attribute_list                          } sort $meta->get_attribute_list
178                  }                  }
179    
180                  my $table = qq|<table><tr><th>Methods</th><th>Attributes</th><th>Properties</th></tr>|;                  my $table = qq|<table class="frey-object-browser"><tr><th class="m">Methods</th><th class="a">Attributes</th><th class="p">Properties</th></tr>|;
181                  while ( @methods || @attributes ) {                  while ( @methods || @attributes ) {
182                          my ($m,$a) = ( shift @methods, shift @attributes );                          my ($m,$a) = ( shift @methods, shift @attributes );
183                          $m ||= '<td></td>';                          $m ||= '<td></td>';
# Line 185  warn $attr->dump(3); Line 186  warn $attr->dump(3);
186                  }                  }
187                  $table .= qq|</table>|;                  $table .= qq|</table>|;
188    
                 my $classes =  
                         qq|<div class="classes">| .  
                         Frey::ClassBrowser->new->markup .  
                         qq|</div>|;  
   
189                  my ( $superclasses, $roles ) = ( '<b>Role</b>', '' );                  my ( $superclasses, $roles ) = ( '<b>Role</b>', '' );
190                  if ( ! $is_role ) {                  if ( ! $is_role ) {
191                          if ( $meta->superclasses ) {                          if ( $meta->superclasses ) {
# Line 197  warn $attr->dump(3); Line 193  warn $attr->dump(3);
193                                          join(', ',                                          join(', ',
194                                                  map {                                                  map {
195                                                          my $name = $_->meta->name;                                                          my $name = $_->meta->name;
196                                                          qq|<a class="frey-popup" href="/~/$name">$name<span>| . $_->meta->dump(2) . qq|</span></a>|;                                                          qq|<a class="frey-popdown" href="/~/$name">$name<code>| . $_->meta->dump(2) . qq|</code></a>|;
197                                                  }                                                  }
198                                                  #grep { $_ ne 'Moose::Object' }                                                  #grep { $_ ne 'Moose::Object' }
199                                                  $meta->superclasses                                                  $meta->superclasses
# Line 208  warn $attr->dump(3); Line 204  warn $attr->dump(3);
204                  if ( $meta->can('roles') ) {                  if ( $meta->can('roles') ) {
205                          $roles = join(', ',                          $roles = join(', ',
206                                  grep { ! m/\Q$package\E/ }      # skip me                                  grep { ! m/\Q$package\E/ }      # skip me
207                                  map { my $r = $_->name; qq|<a href="/~/$r">$r</a>| }                                  map {
208                                            my $name = $_->name;
209                                            qq|<a class="frey-popdown" href="/~/$name">$name<code>| . $name->meta->dump(2) . qq|</code></a>|;
210                                    }
211                                  $meta->calculate_all_roles                                  $meta->calculate_all_roles
212                          );                          );
213                          $roles = " with roles: $roles" if $roles;                          $roles = " with roles: $roles" if $roles;
# Line 216  warn $attr->dump(3); Line 215  warn $attr->dump(3);
215    
216                  my $pod = Frey::Pod->new( class => $package )->markup;                  my $pod = Frey::Pod->new( class => $package )->markup;
217    
218                    use Frey::Run;
219                    my $execute = join("\n", map { qq|<a href="/$_/$package">$_</a>| } grep { $package->can($_) } Frey::Run->execute );
220                    $execute = " execute: $execute" if $execute;
221    
222                  my $html = $self->page(                  my $html = $self->page(
223                          title => "Introspect $package",                          title => "Introspect $package",
224                          body => qq|<h1>$package</h1>|                          body => qq|<h1>$package</h1>|
225                                  . qq|$superclasses\n$roles\n|                                  . qq|$superclasses\n$roles\n$execute\n|
226                                  . ( $pod ? qq|<a href="#___top" title="Skip to POD" style="font-size: 80%; color: #aaa;">&darr;pod&darr</a>| : '' )                                  . ( $pod ? qq|<a href="#___top" title="Skip to POD" style="font-size: 80%; color: #aaa;">&darr;pod&darr</a>| : '' )
227                                  . qq|$table\n$pod\n$classes|,                                  . qq|$table\n$pod|
228    
229                  );                  );
230    

Legend:
Removed from v.198  
changed lines
  Added in v.227

  ViewVC Help
Powered by ViewVC 1.1.26