<!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.26
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/Yukki/Web/Settings.pm</title>
</head>
<body>
<h1>File Coverage</h1>
<table>
<tr><td class="h" align="right">File:</td><td align="left">lib/Yukki/Web/Settings.pm</td></tr>
<tr><td class="h" align="right">Coverage:</td><td align="left" class="c3">100.0%</td></tr>
</table>
<div><br/></div>
<table>
<tr><th>line</th><th>stmt</th><th>bran</th><th>cond</th><th>sub</th><th>pod</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></td><td class="s">package Yukki::Web::Settings;</td></tr>
<tr><td class="h">2</td><td colspan="7"></td></tr><tr><td class="h">3</td><td><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="lib-Yukki-Web-Settings-pm--subroutine.html#L3">1</a></div></td><td></td><td><div>7</div><div>2</div></td><td class="s">use v5.24;</td></tr>
<tr><td class="h">4</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="lib-Yukki-Web-Settings-pm--subroutine.html#L4">1</a></div></td><td></td><td><div>3</div><div>1</div><div>5</div></td><td class="s">use utf8;</td></tr>
<tr><td class="h">5</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="lib-Yukki-Web-Settings-pm--subroutine.html#L5">1</a></div></td><td></td><td><div>9</div><div>2</div><div>2</div></td><td class="s">use Moo;</td></tr>
<tr><td class="h">6</td><td colspan="7"></td></tr><tr><td class="h">7</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">extends 'Yukki::Settings';</td></tr>
<tr><td class="h">8</td><td colspan="7"></td></tr><tr><td class="h">9</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="lib-Yukki-Web-Settings-pm--subroutine.html#L9">1</a></div></td><td></td><td><div>177</div><div>1</div><div>5</div></td><td class="s">use Types::Path::Tiny qw( Path );</td></tr>
<tr><td class="h">10</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="lib-Yukki-Web-Settings-pm--subroutine.html#L10">1</a></div></td><td></td><td><div>225</div><div>2</div><div>2</div></td><td class="s">use Types::Standard qw( ArrayRef HashRef Str );</td></tr>
<tr><td class="h">11</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="lib-Yukki-Web-Settings-pm--subroutine.html#L11">1</a></div></td><td></td><td><div>553</div><div>1</div><div>4</div></td><td class="s">use Yukki::Types qw( BaseURL PluginConfig );</td></tr>
<tr><td class="h">12</td><td colspan="7"></td></tr><tr><td class="h">13</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="lib-Yukki-Web-Settings-pm--subroutine.html#L13">1</a></div></td><td></td><td><div>340</div><div>2</div><div>3</div></td><td class="s">use namespace::clean;</td></tr>
<tr><td class="h">14</td><td colspan="7"></td></tr><tr><td class="h">15</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"># ABSTRACT: provides structure and validation to web settings in yukki.conf</td></tr>
<tr><td class="h">16</td><td colspan="7"></td></tr><tr><td class="h">17 - 27</td><td colspan="6"></td><td class="s"><pre>=head1 DESCRIPTION
L<Yukki::Web> needs a few additional settings.
=head1 ATTRIBUTES
=head2 template_path
THis is the folder where Yukki will find templates under the C<root>. The default is F<root/template>.
=cut</pre></td></tr>
<tr><td class="h">28</td><td colspan="7"></td></tr><tr><td class="h">29</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">has template_path => (</td></tr>
<tr><td class="h">30</td><td></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></td><td class="s"> isa => Path,</td></tr>
<tr><td class="h">32</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> required => 1,</td></tr>
<tr><td class="h">33</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> coerce => 1,</td></tr>
<tr><td class="h">34</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> default => 'root/template',</td></tr>
<tr><td class="h">35</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">);</td></tr>
<tr><td class="h">36</td><td colspan="7"></td></tr><tr><td class="h">37 - 41</td><td colspan="6"></td><td class="s"><pre>=head2 static_path
This is the folder where Yukki will find the static files to serve for your application.
=cut</pre></td></tr>
<tr><td class="h">42</td><td colspan="7"></td></tr><tr><td class="h">43</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">has static_path => (</td></tr>
<tr><td class="h">44</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> is => 'ro',</td></tr>
<tr><td class="h">45</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> isa => Path,</td></tr>
<tr><td class="h">46</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> required => 1,</td></tr>
<tr><td class="h">47</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> coerce => 1,</td></tr>
<tr><td class="h">48</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> default => 'root',</td></tr>
<tr><td class="h">49</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">);</td></tr>
<tr><td class="h">50</td><td colspan="7"></td></tr><tr><td class="h">51 - 57</td><td colspan="6"></td><td class="s"><pre>=head2 base_url
This configures the L<Yukki::Web::Context/base_url> attribute. It is either an absolute URL or the words C<SCRIPT_NAME> or C<REWRITE>. See L<Yukki::Web::Context/base_url> for more information.
The default is C<SCRIPT_NAME>.
=cut</pre></td></tr>
<tr><td class="h">58</td><td colspan="7"></td></tr><tr><td class="h">59</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">has base_url => (</td></tr>
<tr><td class="h">60</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> is => 'ro',</td></tr>
<tr><td class="h">61</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> isa => BaseURL,</td></tr>
<tr><td class="h">62</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> required => 1,</td></tr>
<tr><td class="h">63</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> coerce => 1,</td></tr>
<tr><td class="h">64</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> default => 'SCRIPT_NAME',</td></tr>
<tr><td class="h">65</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">);</td></tr>
<tr><td class="h">66</td><td colspan="7"></td></tr><tr><td class="h">67 - 92</td><td colspan="6"></td><td class="s"><pre>=head2 scripts
=head2 styles
This is a list of the JavaScript and CSS files, respectively, to load into the
shell template. If not set, the defaults are:
scripts:
- script/lib/jquery/jquery.js
- script/lib/jquery/jquery-ui.js
- script/lib/jquery/jquery.caret.js
- script/lib/jquery/jquery.tag-editor.js
- script/lib/plupload/plupload.full.js
- script/lib/sha1/sha1.js
- script/yukki.js
styles:
- style/yukki.css
- style/lib/jquery/jquery.css
- style/lib/jquery/jquery.tag-editor.css
As you can see, these are full paths and may be given as paths to foreign hosts.
In order to keep Yukki working in good order, you will probaby want to include
at least the scripts listed above.
=cut</pre></td></tr>
<tr><td class="h">93</td><td colspan="7"></td></tr><tr><td class="h">94</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">has scripts => (</td></tr>
<tr><td class="h">95</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> is => 'ro',</td></tr>
<tr><td class="h">96</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> isa => ArrayRef[Str],</td></tr>
<tr><td class="h">97</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> required => 1,</td></tr>
<tr><td class="h">98</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> default => sub {</td></tr>
<tr><td class="h">99</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> [ qw(</td></tr>
<tr><td class="h">100</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> script/lib/jquery/jquery.js</td></tr>
<tr><td class="h">101</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> script/lib/jquery/jquery-ui.js</td></tr>
<tr><td class="h">102</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> script/lib/jquery/jquery.caret.js</td></tr>
<tr><td class="h">103</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> script/lib/jquery/jquery.tag-editor.js</td></tr>
<tr><td class="h">104</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> script/lib/plupload/plupload.full.js</td></tr>
<tr><td class="h">105</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> script/lib/sha1/sha1.js</td></tr>
<tr><td class="h">106</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> script/yukki.js</td></tr>
<tr><td class="h">107</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> ) ]</td></tr>
<tr><td class="h">108</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> },</td></tr>
<tr><td class="h">109</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">);</td></tr>
<tr><td class="h">110</td><td colspan="7"></td></tr><tr><td class="h">111</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">sub all_scripts {</td></tr>
<tr><td class="h">112</td><td><div class="c3">2</div></td><td></td><td></td><td><div class="c3"><a href="lib-Yukki-Web-Settings-pm--subroutine.html#L112">2</a></div></td><td><div class="c3">1</div></td><td><div>22</div></td><td class="s"> my $self = shift;</td></tr>
<tr><td class="h">113</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td></td><td><div>30</div></td><td class="s"> $self->scripts->@*;</td></tr>
<tr><td class="h">114</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">115</td><td colspan="7"></td></tr><tr><td class="h">116</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">has styles => (</td></tr>
<tr><td class="h">117</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> is => 'ro',</td></tr>
<tr><td class="h">118</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> isa => ArrayRef[Str],</td></tr>
<tr><td class="h">119</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> required => 1,</td></tr>
<tr><td class="h">120</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> default => sub {</td></tr>
<tr><td class="h">121</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> [ qw(</td></tr>
<tr><td class="h">122</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> style/yukki.css</td></tr>
<tr><td class="h">123</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> style/lib/jquery/jquery.css</td></tr>
<tr><td class="h">124</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> style/lib/jquery/jquery.tag-editor.css</td></tr>
<tr><td class="h">125</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> ) ]</td></tr>
<tr><td class="h">126</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> },</td></tr>
<tr><td class="h">127</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">);</td></tr>
<tr><td class="h">128</td><td colspan="7"></td></tr><tr><td class="h">129</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">sub all_styles {</td></tr>
<tr><td class="h">130</td><td><div class="c3">2</div></td><td></td><td></td><td><div class="c3"><a href="lib-Yukki-Web-Settings-pm--subroutine.html#L130">2</a></div></td><td><div class="c3">1</div></td><td><div>15</div></td><td class="s"> my $self = shift;</td></tr>
<tr><td class="h">131</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td></td><td><div>15</div></td><td class="s"> $self->styles->@*;</td></tr>
<tr><td class="h">132</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">133</td><td colspan="7"></td></tr><tr><td class="h">134 - 146</td><td colspan="6"></td><td class="s"><pre>=head2 menu_names
In case your templates have custom menus on them, you may need to set this. The default is:
menu_names:
- repository
- user
- page
- page_bottom
This will insure that those menus are empty when they should be empty.
=cut</pre></td></tr>
<tr><td class="h">147</td><td colspan="7"></td></tr><tr><td class="h">148</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">has menu_names => (</td></tr>
<tr><td class="h">149</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> is => 'ro',</td></tr>
<tr><td class="h">150</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> isa => ArrayRef[Str],</td></tr>
<tr><td class="h">151</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> required => 1,</td></tr>
<tr><td class="h">152</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> default => sub { [ qw(</td></tr>
<tr><td class="h">153</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> repository</td></tr>
<tr><td class="h">154</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> user</td></tr>
<tr><td class="h">155</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> page</td></tr>
<tr><td class="h">156</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> page_bottom</td></tr>
<tr><td class="h">157</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> ) ] },</td></tr>
<tr><td class="h">158</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">);</td></tr>
<tr><td class="h">159</td><td colspan="7"></td></tr><tr><td class="h">160 - 180</td><td colspan="6"></td><td class="s"><pre>=head2 page_views
This is the list of page views to provide. By default, this is
page_views:
default:
label: View
sort: 10
template: shell.html
slides:
label: Slides
sort: 11
template: slides.html
hide: 1
vars:
"head link.local":
- style/slides.css
"head script.local":
- script/slides.js
=cut</pre></td></tr>
<tr><td class="h">181</td><td colspan="7"></td></tr><tr><td class="h">182</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">has page_views => (</td></tr>
<tr><td class="h">183</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> is => 'ro',</td></tr>
<tr><td class="h">184</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> isa => HashRef[HashRef],</td></tr>
<tr><td class="h">185</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> required => 1,</td></tr>
<tr><td class="h">186</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> default => sub { +{</td></tr>
<tr><td class="h">187</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> default => {</td></tr>
<tr><td class="h">188</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> label => 'View',</td></tr>
<tr><td class="h">189</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> sort => 10,</td></tr>
<tr><td class="h">190</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> template => 'shell.html',</td></tr>
<tr><td class="h">191</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> },</td></tr>
<tr><td class="h">192</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> slides => {</td></tr>
<tr><td class="h">193</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> label => 'Slides',</td></tr>
<tr><td class="h">194</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> sort => 11,</td></tr>
<tr><td class="h">195</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> template => 'slides.html',</td></tr>
<tr><td class="h">196</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> hide => 1,</td></tr>
<tr><td class="h">197</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> vars => {</td></tr>
<tr><td class="h">198</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> "head link.local" => [ qw( style/slides.css ) ],</td></tr>
<tr><td class="h">199</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> "head script.local" => [ qw( script/slides.js ) ],</td></tr>
<tr><td class="h">200</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> },</td></tr>
<tr><td class="h">201</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> },</td></tr>
<tr><td class="h">202</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> } },</td></tr>
<tr><td class="h">203</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">);</td></tr>
<tr><td class="h">204</td><td colspan="7"></td></tr><tr><td class="h">205 - 209</td><td colspan="6"></td><td class="s"><pre>=head2 plugins
This is the list of plugins to use. This is an array of hashes. The hashes must have a C<module> key naming the class defining the plugin. The rest of the keys will be passed to the plugin constructor.
=cut</pre></td></tr>
<tr><td class="h">210</td><td colspan="7"></td></tr><tr><td class="h">211</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">has plugins => (</td></tr>
<tr><td class="h">212</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> is => 'ro',</td></tr>
<tr><td class="h">213</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> isa => PluginConfig,</td></tr>
<tr><td class="h">214</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> required => 1,</td></tr>
<tr><td class="h">215</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> default => sub { [</td></tr>
<tr><td class="h">216</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> { module => 'Attachment' },</td></tr>
<tr><td class="h">217</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> { module => 'YukkiText' },</td></tr>
<tr><td class="h">218</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> ] },</td></tr>
<tr><td class="h">219</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">);</td></tr>
<tr><td class="h">220</td><td colspan="7"></td></tr><tr><td class="h">221 - 227</td><td colspan="6"></td><td class="s"><pre>=head2 media_types
This is a list of custom media types. Because media types are detected using L<LWP::MediaTypes>, you may also configured media types by putting a F<.media.types> file in the home directory of the user running Yukki.
By default, "text/yukki" is mapped to the "yukki" file extension.
=cut</pre></td></tr>
<tr><td class="h">228</td><td colspan="7"></td></tr><tr><td class="h">229</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">has media_types => (</td></tr>
<tr><td class="h">230</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> is => 'ro',</td></tr>
<tr><td class="h">231</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> isa => HashRef[Str|ArrayRef[Str]],</td></tr>
<tr><td class="h">232</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> required => 1,</td></tr>
<tr><td class="h">233</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> default => sub { +{</td></tr>
<tr><td class="h">234</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> 'text/yukki' => 'yukki',</td></tr>
<tr><td class="h">235</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"> } },</td></tr>
<tr><td class="h">236</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">);</td></tr>
<tr><td class="h">237</td><td colspan="7"></td></tr><tr><td class="h">238 - 248</td><td colspan="6"></td><td class="s"><pre>=head1 METHODS
=head2 all_scripts
Convenience accessor that returns C<scripts> as a list.
=head2 all_styles
Convenience accessor that returns C<styles> as a list.
=cut</pre></td></tr>
<tr><td class="h">249</td><td colspan="7"></td></tr><tr><td class="h">250</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">1;</td></tr>
</table>
</body>
</html>