<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!--
This file was generated by Devel::Cover Version 1.15
Devel::Cover is copyright 2001-2012, Paul Johnson (paul@pjcj.net)
Devel::Cover is free. It is licensed under the same terms as Perl itself.
The latest version of Devel::Cover should be available from my homepage:
http://www.pjcj.net
-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
<meta http-equiv="Content-Language" content="en-us"></meta>
<link rel="stylesheet" type="text/css" href="cover.css"></link>
<link rel="stylesheet" type="text/css" href="cover.css"></link>
<title>File Coverage: lib/Pod/Weaver/Section/ClassMopper.pm</title>
</head>
<body>
<h1>File Coverage</h1>
<table>
<tr><td class="h" align="right">File:</td><td align="left">lib/Pod/Weaver/Section/ClassMopper.pm</td></tr>
<tr><td class="h" align="right">Coverage:</td><td align="left" class="c1">78.6%</td></tr>
</table>
<div><br/></div>
<table>
<tr><th>line</th><th>stmt</th><th>bran</th><th>cond</th><th>sub</th><th>time</th><th>code</th></tr>
<tr><td class="h">1</td><td></td><td></td><td></td><td></td><td></td><td class="s">package Pod::Weaver::Section::ClassMopper;</td></tr>
<tr><td class="h">2</td><td><div class="c3">2</div><div class="c3">2</div><div class="c3">2</div></td><td></td><td></td><td><div class="c3"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--subroutine.html#L2">2</a></div></td><td><div>369628</div><div>3</div><div>11</div></td><td class="s">use Moose;</td></tr>
<tr><td class="h">3</td><td><div class="c3">2</div><div class="c3">2</div><div class="c3">2</div></td><td></td><td></td><td><div class="c3"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--subroutine.html#L3">2</a></div></td><td><div>6982</div><div>2</div><div>12</div></td><td class="s">use Moose::Util::TypeConstraints;</td></tr>
<tr><td class="h">4</td><td><div class="c3">2</div><div class="c3">2</div><div class="c3">2</div></td><td></td><td></td><td><div class="c3"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--subroutine.html#L4">2</a></div></td><td><div>2021</div><div>1</div><div>198</div></td><td class="s">use Class::Load ':all';</td></tr>
<tr><td class="h">5</td><td><div class="c3">2</div><div class="c3">2</div><div class="c3">2</div></td><td></td><td></td><td><div class="c3"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--subroutine.html#L5">2</a></div></td><td><div>6</div><div>2</div><div>31</div></td><td class="s">use Pod::Elemental::Element::Pod5::Command;</td></tr>
<tr><td class="h">6</td><td><div class="c3">2</div><div class="c3">2</div><div class="c3">2</div></td><td></td><td></td><td><div class="c3"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--subroutine.html#L6">2</a></div></td><td><div>4</div><div>10</div><div>22</div></td><td class="s">use Pod::Elemental::Element::Pod5::Ordinary;</td></tr>
<tr><td class="h">7</td><td><div class="c3">2</div><div class="c3">2</div><div class="c3">2</div></td><td></td><td></td><td><div class="c3"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--subroutine.html#L7">2</a></div></td><td><div>6</div><div>1</div><div>28</div></td><td class="s">use Pod::Elemental::Element::Nested;</td></tr>
<tr><td class="h">8</td><td><div class="c3">2</div><div class="c3">2</div><div class="c3">2</div></td><td></td><td></td><td><div class="c3"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--subroutine.html#L8">2</a></div></td><td><div>5</div><div>4</div><div>10</div></td><td class="s">use List::Util qw(first);</td></tr>
<tr><td class="h">9</td><td colspan="6"></td></tr><tr><td class="h">10</td><td></td><td></td><td></td><td></td><td></td><td class="s">our $VERSION = '0.06';</td></tr>
<tr><td class="h">11</td><td colspan="6"></td></tr><tr><td class="h">12</td><td></td><td></td><td></td><td></td><td></td><td class="s"># ABSTRACT: Generate some stuff via introspection</td></tr>
<tr><td class="h">13</td><td colspan="6"></td></tr><tr><td class="h">14</td><td></td><td></td><td></td><td></td><td></td><td class="s">with 'Pod::Weaver::Role::Section';</td></tr>
<tr><td class="h">15</td><td colspan="6"></td></tr><tr><td class="h">16</td><td></td><td></td><td></td><td></td><td></td><td class="s">subtype 'Pod::Weaver::Section::ClassMopper::MethodListType'</td></tr>
<tr><td class="h">17</td><td></td><td></td><td></td><td></td><td></td><td class="s"> => as 'ArrayRef';</td></tr>
<tr><td class="h">18</td><td colspan="6"></td></tr><tr><td class="h">19</td><td></td><td></td><td></td><td></td><td></td><td class="s">coerce 'Pod::Weaver::Section::ClassMopper::MethodListType'</td></tr>
<tr><td class="h">20</td><td></td><td></td><td></td><td></td><td></td><td class="s"> => from 'Str'</td></tr>
<tr><td class="h">21</td><td></td><td></td><td></td><td></td><td></td><td class="s"> => via { </td></tr>
<tr><td class="h">22</td><td></td><td></td><td></td><td></td><td></td><td class="s"> [split(/\s+/, $_)]</td></tr>
<tr><td class="h">23</td><td></td><td></td><td></td><td></td><td></td><td class="s"> };</td></tr>
<tr><td class="h">24</td><td colspan="6"></td></tr><tr><td class="h">25</td><td></td><td></td><td></td><td></td><td></td><td class="s">has '_attrs' => ( is => 'rw' );</td></tr>
<tr><td class="h">26</td><td></td><td></td><td></td><td></td><td></td><td class="s">has '_methods' => ( is => 'rw' );</td></tr>
<tr><td class="h">27</td><td></td><td></td><td></td><td></td><td></td><td class="s">has '_class' => ( is => 'rw' );</td></tr>
<tr><td class="h">28</td><td colspan="6"></td></tr><tr><td class="h">29</td><td></td><td></td><td></td><td></td><td></td><td class="s">has 'skip_method_list' => ( </td></tr>
<tr><td class="h">30</td><td></td><td></td><td></td><td></td><td></td><td class="s"> is => 'ro', </td></tr>
<tr><td class="h">31</td><td></td><td></td><td></td><td></td><td></td><td class="s"> isa => 'Pod::Weaver::Section::ClassMopper::MethodListType',</td></tr>
<tr><td class="h">32</td><td></td><td></td><td></td><td></td><td></td><td class="s"> coerce => 1,</td></tr>
<tr><td class="h">33</td><td></td><td></td><td></td><td></td><td></td><td class="s"> default => sub { </td></tr>
<tr><td class="h">34</td><td></td><td></td><td></td><td></td><td></td><td class="s"> my @list = Moose::Object->meta->get_all_method_names;</td></tr>
<tr><td class="h">35</td><td></td><td></td><td></td><td></td><td></td><td class="s"> push @list, 'can';</td></tr>
<tr><td class="h">36</td><td></td><td></td><td></td><td></td><td></td><td class="s"> return \@list;</td></tr>
<tr><td class="h">37</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">38</td><td></td><td></td><td></td><td></td><td></td><td class="s">);</td></tr>
<tr><td class="h">39</td><td colspan="6"></td></tr><tr><td class="h">40</td><td colspan="6"></td></tr><tr><td class="h">41</td><td colspan="6"></td></tr><tr><td class="h">42</td><td></td><td></td><td></td><td></td><td></td><td class="s">has [qw(no_tagline include_private skip_attributes skip_methods)] => ( </td></tr>
<tr><td class="h">43</td><td></td><td></td><td></td><td></td><td></td><td class="s"> is => 'rw',</td></tr>
<tr><td class="h">44</td><td></td><td></td><td></td><td></td><td></td><td class="s"> isa => 'Bool',</td></tr>
<tr><td class="h">45</td><td></td><td></td><td></td><td></td><td></td><td class="s"> default => 0</td></tr>
<tr><td class="h">46</td><td></td><td></td><td></td><td></td><td></td><td class="s">);</td></tr>
<tr><td class="h">47</td><td colspan="6"></td></tr><tr><td class="h">48</td><td></td><td></td><td></td><td></td><td></td><td class="s">sub weave_section { </td></tr>
<tr><td class="h">49</td><td><div class="c3">2</div></td><td></td><td></td><td><div class="c3"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--subroutine.html#L49">2</a></div></td><td><div>23027</div></td><td class="s"> my $self = shift;</td></tr>
<tr><td class="h">50</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>4</div></td><td class="s"> my( $document, $input ) = @_;</td></tr>
<tr><td class="h">51</td><td colspan="6"></td></tr><tr><td class="h">52</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>10</div></td><td class="s"> $self->_get_classname( $input );</td></tr>
<tr><td class="h">53</td><td colspan="6"></td></tr><tr><td class="h">54</td><td><div class="c3">2</div></td><td><div class="c0" title="-/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L54">50</a></div></td><td></td><td></td><td><div>7</div></td><td class="s"> if( $input->{mopper}->{include_private} ) { </td></tr>
<tr><td class="h">55</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td><div>0</div></td><td class="s"> $self->include_private( 1 );</td></tr>
<tr><td class="h">56</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">57</td><td colspan="6"></td></tr><tr><td class="h">58</td><td><div class="c3">2</div></td><td><div class="c0" title="-/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L58">50</a></div></td><td></td><td></td><td><div>4</div></td><td class="s"> if( $input->{mopper}->{no_tagline} ) { </td></tr>
<tr><td class="h">59</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td><div>0</div></td><td class="s"> $self->no_tagline( 1 );</td></tr>
<tr><td class="h">60</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">61</td><td colspan="6"></td></tr><tr><td class="h">62</td><td><div class="c3">2</div></td><td><div class="c0" title="-/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L62">50</a></div></td><td></td><td></td><td><div>4</div></td><td class="s"> if( $input->{mopper}->{skip_method_list} ) { </td></tr>
<tr><td class="h">63</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td><div>0</div></td><td class="s"> $self->skip_method_list( $input->{mopper}->{skip_method_list} );</td></tr>
<tr><td class="h">64</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">65</td><td colspan="6"></td></tr><tr><td class="h">66</td><td><div class="c3">2</div></td><td><div class="c0" title="T/-"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L66">50</a></div></td><td><div class="c0"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--condition.html#L66">33</a></div></td><td></td><td><div>40</div></td><td class="s"> unless( $input->{mopper}->{skip_attributes} || $self->skip_attributes ) { </td></tr>
<tr><td class="h">67</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>5</div></td><td class="s"> $self->_build_attributes( );</td></tr>
<tr><td class="h">68</td><td><div class="c3">2</div></td><td><div class="c0" title="T/-"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L68">50</a></div></td><td></td><td></td><td><div>54</div></td><td class="s"> if( $self->_attrs ) { </td></tr>
<tr><td class="h">69</td><td><div class="c3">2</div><div class="c3">2</div></td><td></td><td></td><td></td><td><div>4</div><div>58</div></td><td class="s"> push @{$document->children}, Pod::Elemental::Element::Nested->new({</td></tr>
<tr><td class="h">70</td><td></td><td></td><td></td><td></td><td></td><td class="s"> command => 'head1',</td></tr>
<tr><td class="h">71</td><td></td><td></td><td></td><td></td><td></td><td class="s"> content => 'ATTRIBUTES',</td></tr>
<tr><td class="h">72</td><td></td><td></td><td></td><td></td><td></td><td class="s"> children => $self->_attrs } </td></tr>
<tr><td class="h">73</td><td></td><td></td><td></td><td></td><td></td><td class="s"> );</td></tr>
<tr><td class="h">74</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">75</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">76</td><td colspan="6"></td></tr><tr><td class="h">77</td><td><div class="c3">2</div></td><td><div class="c0" title="T/-"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L77">50</a></div></td><td><div class="c0"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--condition.html#L77">33</a></div></td><td></td><td><div>5550</div></td><td class="s"> unless( $input->{mopper}->{skip_methods} || $self->skip_methods ) { </td></tr>
<tr><td class="h">78</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>5</div></td><td class="s"> $self->_build_methods( );</td></tr>
<tr><td class="h">79</td><td><div class="c3">2</div></td><td><div class="c0" title="T/-"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L79">50</a></div></td><td></td><td></td><td><div>31</div></td><td class="s"> if( $self->_methods ) { </td></tr>
<tr><td class="h">80</td><td><div class="c3">2</div><div class="c3">2</div></td><td></td><td></td><td></td><td><div>3</div><div>42</div></td><td class="s"> push @{$document->children}, Pod::Elemental::Element::Nested->new({ </td></tr>
<tr><td class="h">81</td><td></td><td></td><td></td><td></td><td></td><td class="s"> command => 'head1',</td></tr>
<tr><td class="h">82</td><td></td><td></td><td></td><td></td><td></td><td class="s"> content => 'METHODS',</td></tr>
<tr><td class="h">83</td><td></td><td></td><td></td><td></td><td></td><td class="s"> children => $self->_methods }</td></tr>
<tr><td class="h">84</td><td></td><td></td><td></td><td></td><td></td><td class="s"> );</td></tr>
<tr><td class="h">85</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">86</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">87</td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">88</td><td colspan="6"></td></tr><tr><td class="h">89</td><td></td><td></td><td></td><td></td><td></td><td class="s">sub _build_attributes { </td></tr>
<tr><td class="h">90</td><td><div class="c3">2</div></td><td></td><td></td><td><div class="c3"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--subroutine.html#L90">2</a></div></td><td><div>2</div></td><td class="s"> my $self = shift;</td></tr>
<tr><td class="h">91</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>31</div></td><td class="s"> my $meta = $self->_class;</td></tr>
<tr><td class="h">92</td><td><div class="c3">2</div></td><td><div class="c0" title="-/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L92">50</a></div></td><td></td><td></td><td><div>6</div></td><td class="s"> return unless ref $meta;</td></tr>
<tr><td class="h">93</td><td><div class="c3">2</div></td><td><div class="c0" title="-/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L93">50</a></div></td><td></td><td></td><td><div>28</div></td><td class="s"> return if $meta->isa('Moose::Meta::Role');</td></tr>
<tr><td class="h">94</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>7</div></td><td class="s"> my @attributes = $meta->get_all_attributes;</td></tr>
<tr><td class="h">95</td><td><div class="c3">2</div></td><td><div class="c0" title="T/-"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L95">50</a></div></td><td></td><td></td><td><div>83</div></td><td class="s"> if( @attributes ) { </td></tr>
<tr><td class="h">96</td><td><div class="c3">4</div><div class="c3">2</div></td><td></td><td></td><td></td><td><div>11</div><div>6</div></td><td class="s"> my @chunks = map { $self->_build_attribute_paragraph( $_ ) } </td></tr>
<tr><td class="h">97</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>6</div></td><td class="s"> sort { $a->{'name'} cmp $b->{'name'} } @attributes;</td></tr>
<tr><td class="h">98</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>47</div></td><td class="s"> $self->_attrs( \@chunks );</td></tr>
<tr><td class="h">99</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">100</td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">101</td><td colspan="6"></td></tr><tr><td class="h">102</td><td></td><td></td><td></td><td></td><td></td><td class="s">sub _build_methods { </td></tr>
<tr><td class="h">103</td><td><div class="c3">2</div></td><td></td><td></td><td><div class="c3"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--subroutine.html#L103">2</a></div></td><td><div>2</div></td><td class="s"> my $self = shift;</td></tr>
<tr><td class="h">104</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>34</div></td><td class="s"> my $meta = $self->_class;</td></tr>
<tr><td class="h">105</td><td><div class="c3">2</div></td><td><div class="c0" title="-/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L105">50</a></div></td><td></td><td></td><td><div>6</div></td><td class="s"> return unless ref $meta;</td></tr>
<tr><td class="h">106</td><td><div class="c3">2</div></td><td><div class="c0" title="-/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L106">50</a></div></td><td></td><td></td><td><div>19</div></td><td class="s"> return if $meta->isa('Moose::Meta::Role');</td></tr>
<tr><td class="h">107</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>8</div></td><td class="s"> my @methods = $meta->get_all_methods;</td></tr>
<tr><td class="h">108</td><td colspan="6"></td></tr><tr><td class="h">109</td><td><div class="c3">2</div></td><td><div class="c0" title="T/-"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L109">50</a></div></td><td></td><td></td><td><div>1127</div></td><td class="s"> if( @methods ) { </td></tr>
<tr><td class="h">110</td><td><div class="c3">32</div><div class="c3">93</div></td><td></td><td></td><td></td><td><div>33</div><div>65</div></td><td class="s"> my @chunks = map { $self->_build_method_paragraph( $_ ) }</td></tr>
<tr><td class="h">111</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>7</div></td><td class="s"> sort { $a->{'name'} cmp $b->{'name'} } @methods;</td></tr>
<tr><td class="h">112</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>35</div></td><td class="s"> $self->_methods( \@chunks );</td></tr>
<tr><td class="h">113</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">114</td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">115</td><td colspan="6"></td></tr><tr><td class="h">116</td><td></td><td></td><td></td><td></td><td></td><td class="s">sub _build_method_paragraph { </td></tr>
<tr><td class="h">117</td><td></td><td></td><td></td><td></td><td></td><td class="s"> # Generate a pod section for a method. </td></tr>
<tr><td class="h">118</td><td><div class="c3">32</div></td><td></td><td></td><td><div class="c3"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--subroutine.html#L118">32</a></div></td><td><div>22</div></td><td class="s"> my $self = shift;</td></tr>
<tr><td class="h">119</td><td><div class="c3">32</div></td><td></td><td></td><td></td><td><div>15</div></td><td class="s"> my $method = shift; </td></tr>
<tr><td class="h">120</td><td><div class="c3">32</div></td><td><div class="c0" title="-/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L120">50</a></div></td><td></td><td></td><td><div>45</div></td><td class="s"> return unless ref $method;</td></tr>
<tr><td class="h">121</td><td><div class="c3">32</div></td><td></td><td></td><td></td><td><div>36</div></td><td class="s"> my $name = $method->name;</td></tr>
<tr><td class="h">122</td><td colspan="6"></td></tr><tr><td class="h">123</td><td><div class="c3">32</div><div class="c3">260</div><div class="c3">32</div></td><td><div class="c3" title="T/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L123">100</a></div></td><td></td><td><div class="c3"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--subroutine.html#L123">260</a></div></td><td><div>49</div><div>137</div><div>498</div></td><td class="s"> if( first { $_ eq $name } @{$self->skip_method_list} ) {</td></tr>
<tr><td class="h">124</td><td><div class="c3">24</div></td><td></td><td></td><td></td><td><div>33</div></td><td class="s"> return; # Skip over some of the more .. UNIVERSAL methods..</td></tr>
<tr><td class="h">125</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">126</td><td colspan="6"></td></tr><tr><td class="h">127</td><td><div class="c3">8</div></td><td><div class="c0" title="-/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L127">50</a></div></td><td></td><td></td><td><div>37</div></td><td class="s"> if( $method->original_package_name =~ /^Moose::Object/ ) { </td></tr>
<tr><td class="h">128</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td><div>0</div></td><td class="s"> return; # No one wants to see that shit</td></tr>
<tr><td class="h">129</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">130</td><td colspan="6"></td></tr><tr><td class="h">131</td><td><div class="c3">8</div></td><td><div class="c3" title="T/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L131">100</a></div></td><td></td><td></td><td><div>66</div></td><td class="s"> if( $name =~ /^_/ ) { </td></tr>
<tr><td class="h">132</td><td><div class="c3">2</div></td><td><div class="c0" title="T/-"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L132">50</a></div></td><td></td><td></td><td><div>35</div></td><td class="s"> return unless $self->include_private; # skip over privates, unless we don't.</td></tr>
<tr><td class="h">133</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">134</td><td colspan="6"></td></tr><tr><td class="h">135</td><td><div class="c3">6</div></td><td></td><td></td><td></td><td><div>11</div></td><td class="s"> my $bits = [];</td></tr>
<tr><td class="h">136</td><td><div class="c3">6</div></td><td><div class="c0" title="T/-"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L136">50</a></div></td><td></td><td></td><td><div>98</div></td><td class="s"> if( $self->_class ne $method->original_package_name ) {</td></tr>
<tr><td class="h">137</td><td><div class="c3">6</div></td><td></td><td></td><td></td><td><div>34</div></td><td class="s"> push @$bits, Pod::Elemental::Element::Pod5::Ordinary->new({ </td></tr>
<tr><td class="h">138</td><td></td><td></td><td></td><td></td><td></td><td class="s"> content => 'Method originates in ' . $method->original_package_name . '.'</td></tr>
<tr><td class="h">139</td><td></td><td></td><td></td><td></td><td></td><td class="s"> });</td></tr>
<tr><td class="h">140</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">141</td><td colspan="6"></td></tr><tr><td class="h">142</td><td><div class="c3">6</div></td><td><div class="c0" title="-/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L142">50</a></div></td><td></td><td></td><td><div>8744</div></td><td class="s"> unless( $self->no_tagline ) { </td></tr>
<tr><td class="h">143</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td><div>0</div></td><td class="s"> push @$bits, Pod::Elemental::Element::Pod5::Ordinary->new({ </td></tr>
<tr><td class="h">144</td><td></td><td></td><td></td><td></td><td></td><td class="s"> content => 'This documentation was automatically generated.'</td></tr>
<tr><td class="h">145</td><td></td><td></td><td></td><td></td><td></td><td class="s"> });</td></tr>
<tr><td class="h">146</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">147</td><td colspan="6"></td></tr><tr><td class="h">148</td><td><div class="c3">6</div></td><td></td><td></td><td></td><td><div>31</div></td><td class="s"> my $meth = Pod::Elemental::Element::Nested->new( { </td></tr>
<tr><td class="h">149</td><td></td><td></td><td></td><td></td><td></td><td class="s"> command => 'head2',</td></tr>
<tr><td class="h">150</td><td></td><td></td><td></td><td></td><td></td><td class="s"> content => $method->name,</td></tr>
<tr><td class="h">151</td><td></td><td></td><td></td><td></td><td></td><td class="s"> children => $bits</td></tr>
<tr><td class="h">152</td><td></td><td></td><td></td><td></td><td></td><td class="s"> } );</td></tr>
<tr><td class="h">153</td><td><div class="c3">6</div></td><td></td><td></td><td></td><td><div>14561</div></td><td class="s"> return $meth;</td></tr>
<tr><td class="h">154</td><td colspan="6"></td></tr><tr><td class="h">155</td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">156</td><td colspan="6"></td></tr><tr><td class="h">157</td><td></td><td></td><td></td><td></td><td></td><td class="s">sub _build_attribute_paragraph { </td></tr>
<tr><td class="h">158</td><td><div class="c3">4</div></td><td></td><td></td><td><div class="c3"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--subroutine.html#L158">4</a></div></td><td><div>5</div></td><td class="s"> my $self = shift;</td></tr>
<tr><td class="h">159</td><td><div class="c3">4</div></td><td></td><td></td><td></td><td><div>4</div></td><td class="s"> my $attribute = shift;</td></tr>
<tr><td class="h">160</td><td><div class="c3">4</div></td><td><div class="c0" title="-/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L160">50</a></div></td><td></td><td></td><td><div>10</div></td><td class="s"> return unless ref $attribute;</td></tr>
<tr><td class="h">161</td><td colspan="6"></td></tr><tr><td class="h">162</td><td><div class="c3">4</div></td><td><div class="c0" title="-/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L162">50</a></div></td><td></td><td></td><td><div>14</div></td><td class="s"> if( $attribute->name =~ /^_/ ) { </td></tr>
<tr><td class="h">163</td><td></td><td></td><td></td><td></td><td></td><td class="s"> # Skip the _methods unless we shouldn't.</td></tr>
<tr><td class="h">164</td><td><div class="c0">0</div></td><td><div class="c0" title="-/-"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L164">0</a></div></td><td></td><td></td><td><div>0</div></td><td class="s"> return unless $self->include_private;</td></tr>
<tr><td class="h">165</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">166</td><td colspan="6"></td></tr><tr><td class="h">167</td><td><div class="c3">4</div></td><td></td><td></td><td></td><td><div>4</div></td><td class="s"> my $bits = [];</td></tr>
<tr><td class="h">168</td><td colspan="6"></td></tr><tr><td class="h">169</td><td><div class="c3">4</div></td><td><div class="c0" title="T/-"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L169">50</a></div></td><td></td><td></td><td><div>12</div></td><td class="s"> if( $attribute->has_read_method ) { </td></tr>
<tr><td class="h">170</td><td></td><td></td><td></td><td></td><td></td><td class="s"> # is => 'r..'</td></tr>
<tr><td class="h">171</td><td><div class="c3">4</div></td><td></td><td></td><td></td><td><div>34</div></td><td class="s"> my $reader = $attribute->get_read_method;</td></tr>
<tr><td class="h">172</td><td><div class="c3">4</div></td><td></td><td></td><td></td><td><div>51</div></td><td class="s"> push @$bits, Pod::Elemental::Element::Pod5::Ordinary->new({ </td></tr>
<tr><td class="h">173</td><td></td><td></td><td></td><td></td><td></td><td class="s"> content => 'Reader: ' . $reader</td></tr>
<tr><td class="h">174</td><td></td><td></td><td></td><td></td><td></td><td class="s"> });</td></tr>
<tr><td class="h">175</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">176</td><td colspan="6"></td></tr><tr><td class="h">177</td><td><div class="c3">4</div></td><td><div class="c3" title="T/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L177">100</a></div></td><td></td><td></td><td><div>6283</div></td><td class="s"> if( $attribute->has_write_method ) { </td></tr>
<tr><td class="h">178</td><td></td><td></td><td></td><td></td><td></td><td class="s"> # is => '..w'</td></tr>
<tr><td class="h">179</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>22</div></td><td class="s"> my $writer = $attribute->get_write_method;</td></tr>
<tr><td class="h">180</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>25</div></td><td class="s"> push @$bits, Pod::Elemental::Element::Pod5::Ordinary->new({ </td></tr>
<tr><td class="h">181</td><td></td><td></td><td></td><td></td><td></td><td class="s"> content => 'Writer: ' . $writer</td></tr>
<tr><td class="h">182</td><td></td><td></td><td></td><td></td><td></td><td class="s"> });</td></tr>
<tr><td class="h">183</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">184</td><td colspan="6"></td></tr><tr><td class="h">185</td><td></td><td></td><td></td><td></td><td></td><td class="s"> # Moose has typecontraints, not Class::MOP. </td></tr>
<tr><td class="h">186</td><td><div class="c3">4</div></td><td><div class="c0" title="T/-"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L186">50</a></div></td><td></td><td></td><td><div>3224</div></td><td class="s"> if( $attribute->has_type_constraint ) { </td></tr>
<tr><td class="h">187</td><td></td><td></td><td></td><td></td><td></td><td class="s"> # has an 'isa => ...'</td></tr>
<tr><td class="h">188</td><td><div class="c3">4</div></td><td></td><td></td><td></td><td><div>121</div></td><td class="s"> push @$bits, Pod::Elemental::Element::Pod5::Ordinary->new({</td></tr>
<tr><td class="h">189</td><td></td><td></td><td></td><td></td><td></td><td class="s"> content => 'Type: ' . $attribute->type_constraint->name</td></tr>
<tr><td class="h">190</td><td></td><td></td><td></td><td></td><td></td><td class="s"> });</td></tr>
<tr><td class="h">191</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">192</td><td colspan="6"></td></tr><tr><td class="h">193</td><td></td><td></td><td></td><td></td><td></td><td class="s"> # Moose only, again.</td></tr>
<tr><td class="h">194</td><td><div class="c3">4</div></td><td><div class="c0" title="-/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L194">50</a></div></td><td></td><td></td><td><div>6559</div></td><td class="s"> if( $attribute->is_required ) { </td></tr>
<tr><td class="h">195</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td><div>0</div></td><td class="s"> push @$bits, Pod::Elemental::Element::Pod5::Ordinary->new({ </td></tr>
<tr><td class="h">196</td><td></td><td></td><td></td><td></td><td></td><td class="s"> content => 'This attribute is required.'</td></tr>
<tr><td class="h">197</td><td></td><td></td><td></td><td></td><td></td><td class="s"> });</td></tr>
<tr><td class="h">198</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">199</td><td colspan="6"></td></tr><tr><td class="h">200</td><td><div class="c3">4</div></td><td><div class="c3" title="T/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L200">100</a></div></td><td></td><td></td><td><div>160</div></td><td class="s"> if( $attribute->has_documentation ) { </td></tr>
<tr><td class="h">201</td><td></td><td></td><td></td><td></td><td></td><td class="s"> # Moose's 'docmentation' option.</td></tr>
<tr><td class="h">202</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>102</div></td><td class="s"> push @$bits, Pod::Elemental::Element::Pod5::Ordinary->new({ </td></tr>
<tr><td class="h">203</td><td></td><td></td><td></td><td></td><td></td><td class="s"> content => 'Additional documentation: ' . $attribute->documentation</td></tr>
<tr><td class="h">204</td><td></td><td></td><td></td><td></td><td></td><td class="s"> });</td></tr>
<tr><td class="h">205</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">206</td><td colspan="6"></td></tr><tr><td class="h">207</td><td><div class="c3">4</div></td><td><div class="c0" title="-/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L207">50</a></div></td><td></td><td></td><td><div>3193</div></td><td class="s"> unless( $self->no_tagline ) { </td></tr>
<tr><td class="h">208</td><td></td><td></td><td></td><td></td><td></td><td class="s"> # Adds the 'auto generated' tagline, unless not.</td></tr>
<tr><td class="h">209</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td><div>0</div></td><td class="s"> push @$bits, Pod::Elemental::Element::Pod5::Ordinary->new({ </td></tr>
<tr><td class="h">210</td><td></td><td></td><td></td><td></td><td></td><td class="s"> content => 'This documentation was automatically generated.'</td></tr>
<tr><td class="h">211</td><td></td><td></td><td></td><td></td><td></td><td class="s"> });</td></tr>
<tr><td class="h">212</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">213</td><td colspan="6"></td></tr><tr><td class="h">214</td><td></td><td></td><td></td><td></td><td></td><td class="s"> # build up our element, send it on its way.</td></tr>
<tr><td class="h">215</td><td><div class="c3">4</div></td><td></td><td></td><td></td><td><div>37</div></td><td class="s"> my $a = Pod::Elemental::Element::Nested->new({ </td></tr>
<tr><td class="h">216</td><td></td><td></td><td></td><td></td><td></td><td class="s"> command => 'head2',</td></tr>
<tr><td class="h">217</td><td></td><td></td><td></td><td></td><td></td><td class="s"> content => $attribute->name,</td></tr>
<tr><td class="h">218</td><td></td><td></td><td></td><td></td><td></td><td class="s"> children => $bits</td></tr>
<tr><td class="h">219</td><td></td><td></td><td></td><td></td><td></td><td class="s"> });</td></tr>
<tr><td class="h">220</td><td><div class="c3">4</div></td><td></td><td></td><td></td><td><div>13609</div></td><td class="s"> return $a;</td></tr>
<tr><td class="h">221</td><td colspan="6"></td></tr><tr><td class="h">222</td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">223</td><td colspan="6"></td></tr><tr><td class="h">224</td><td></td><td></td><td></td><td></td><td></td><td class="s">sub _get_classname { </td></tr>
<tr><td class="h">225</td><td><div class="c3">2</div></td><td></td><td></td><td><div class="c3"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--subroutine.html#L225">2</a></div></td><td><div>2</div></td><td class="s"> my( $self, $input ) = @_;</td></tr>
<tr><td class="h">226</td><td colspan="6"></td></tr><tr><td class="h">227</td><td></td><td></td><td></td><td></td><td></td><td class="s"> # Do some fiddling here, see what sort of crap we have, and </td></tr>
<tr><td class="h">228</td><td></td><td></td><td></td><td></td><td></td><td class="s"> # try to return a package name. </td></tr>
<tr><td class="h">229</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>3</div></td><td class="s"> my $classname;</td></tr>
<tr><td class="h">230</td><td colspan="6"></td></tr><tr><td class="h">231</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>3</div></td><td class="s"> my $ppi = $input->{ppi_document};</td></tr>
<tr><td class="h">232</td><td><div class="c3">2</div></td><td><div class="c0" title="-/F"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L232">50</a></div></td><td></td><td></td><td><div>8</div></td><td class="s"> unless( ref $ppi eq 'PPI::Document' ) { </td></tr>
<tr><td class="h">233</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td><div>0</div></td><td class="s"> return;</td></tr>
<tr><td class="h">234</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">235</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>8</div></td><td class="s"> my $node = $ppi->find_first('PPI::Statement::Package');</td></tr>
<tr><td class="h">236</td><td><div class="c3">2</div></td><td><div class="c0" title="T/-"><a href="lib-Pod-Weaver-Section-ClassMopper-pm--branch.html#L236">50</a></div></td><td></td><td></td><td><div>331</div></td><td class="s"> if( $node ) { </td></tr>
<tr><td class="h">237</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>8</div></td><td class="s"> $classname = $node->namespace;</td></tr>
<tr><td class="h">238</td><td></td><td></td><td></td><td></td><td></td><td class="s"> } else { </td></tr>
<tr><td class="h">239</td><td></td><td></td><td></td><td></td><td></td><td class="s"> # parsing comments. WHAT COULD GO WRONG. </td></tr>
<tr><td class="h">240</td><td></td><td></td><td></td><td></td><td></td><td class="s"> # Shamelessly stolen from Pod::Weaver::Section::Name. Thanks rjbs!</td></tr>
<tr><td class="h">241</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td><div>0</div></td><td class="s"> ($classname) = $ppi->serialize =~ /^\s*#+\s*PODNAME:\s*(.+)$/m;</td></tr>
<tr><td class="h">242</td><td></td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
<tr><td class="h">243</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>65</div></td><td class="s"> load_class( $classname );</td></tr>
<tr><td class="h">244</td><td></td><td></td><td></td><td></td><td></td><td class="s"># Class::MOP::load_class( $classname ); # So the meta has .. something.</td></tr>
<tr><td class="h">245</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>469</div></td><td class="s"> my $meta = Class::MOP::Class->initialize( $classname );</td></tr>
<tr><td class="h">246</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>49</div></td><td class="s"> $self->_class( $meta );</td></tr>
<tr><td class="h">247</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>3</div></td><td class="s"> return $classname;</td></tr>
<tr><td class="h">248</td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">249</td><td colspan="6"></td></tr><tr><td class="h">250</td><td colspan="6"></td></tr><tr><td class="h">251</td><td colspan="6"></td></tr><tr><td class="h">252</td><td></td><td></td><td></td><td></td><td></td><td class="s">__PACKAGE__->meta->make_immutable;</td></tr>
<tr><td class="h">253</td><td colspan="6"></td></tr></table>
</body>
</html>