Articulate

 view release on metacpan or  search on metacpan

Design.md  view on Meta::CPAN

Other presets can be defined like webservice, blog, issue tracker, wiki.

#### Presets

##### Perl Blog Engine "Plain Speaking"

##### Perl Issue Tracker "Pipe Up"

### Error throwing

NotFound => 404

- Case a) NoRoute: no route defined
- Case b) NoResource: a route is defined but one of the ids is wrong
- Case c) NoResult: a search has been performed and there were no results

InputError => 400

  Case a) InputTypeError: a parameter was empty, of the wrong type, etc. and it is not possible to be more specific.
  Case b) InputParsingError: a request has been refused because the content appears broken
  Case c) InputValidationError: A parameter was present, but does not fit with a defined schema.

MANIFEST  view on Meta::CPAN


Changes
Design.md
examples/plain-speaking/bin/app.pl
examples/plain-speaking/bin/app.psgi
examples/plain-speaking/config.yml
examples/plain-speaking/environments/dancer1.yml
examples/plain-speaking/environments/development.yml
examples/plain-speaking/lib/PlainSpeaking/Routes/BlogContent.pm
examples/plain-speaking/public/404.html
examples/plain-speaking/public/500.html
examples/plain-speaking/public/css/blog.css
examples/plain-speaking/public/dispatch.cgi
examples/plain-speaking/public/dispatch.fcgi
examples/plain-speaking/public/javascripts/plain-speaking-forms.js
examples/plain-speaking/views/article_result.tt
examples/plain-speaking/views/article.tt
examples/plain-speaking/views/error.tt
examples/plain-speaking/views/form/create.tt
examples/plain-speaking/views/form/edit.tt

MANIFEST  view on Meta::CPAN

t/Articulate-Sortation-Slug.t
t/Articulate-Storage.t
t/Articulate-Syntax.t
t/Articulate-Validation.t
t/environments/testing.yml
t/kwalitee.t
t/lib/MadeUp/Class.pm
t/lib/MadeUp/Class/Singleton.pm
t/lib/MadeUp/Class/WeirdConstructor.pm
t/pod-coverage.t
t/public/404.html
t/public/500.html
t/public/css/error.css
t/public/css/normalize.css
t/public/css/style.css
t/public/dispatch.cgi
t/public/dispatch.fcgi
t/public/javascripts/articulate-forms.js
t/public/javascripts/jquery.js
t/views/article.tt
t/views/error.tt

examples/plain-speaking/public/404.html  view on Meta::CPAN

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Error 404</title>
<link rel="stylesheet" href="/css/error.css" />
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>Error 404</h1>
<div id="content">
<h2>Page Not Found</h2><p>Sorry, this is the void.</p>
</div>
<div id="footer">
Powered by <a href="http://perldancer.org/">Dancer</a>.
</div>
</body>
</html>

lib/Articulate/Error/NotFound.pm  view on Meta::CPAN

=head3 DESCRIPTION

This class extends Articulate::Error and merely sets two default values:

=head3 simple_message

This defaults to C<'Not Found'>.

=head3 http_code

This defaults to C<404>.

=cut

has '+simple_message' => ( default => 'Not found', );

has '+http_code' => ( default => 404, );

1;

t/public/404.html  view on Meta::CPAN

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Error 404</title>
<link rel="stylesheet" href="/css/error.css" />
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>Error 404</h1>
<div id="content">
<h2>Page Not Found</h2><p>Sorry, this is the void.</p>
</div>
<div id="footer">
Powered by <a href="http://perldancer.org/">Dancer</a>.
</div>
</body>
</html>

t/public/css/style.css  view on Meta::CPAN

body {
  font-family: "Helvetica Neue", "Nimbus Sans L", "Liberation Sans", "Arial", sans-serif;
  color: #404040;
}

/* Make the structure of articles obvious  */

article {
  padding: 0 1em;
  margin: 0 -1em;
}

article header,

t/public/javascripts/jquery.js  view on Meta::CPAN

/*! jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this...
return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("o...
}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var a=Zb.propHooks[this....



( run in 2.296 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )