Spoon - A Spiffy Application Building Framework
Spoon is an Application Framework that is designed primarily for
building Social Software web applications. The Kwiki wiki software is
built on top of Spoon.
Spoon::Base is the primary base class for all the Spoon::* modules.
Spoon.pm inherits from Spiffy.pm.
Spoon is not an application in and of itself. (As compared to Kwiki) You
need to build your own applications from it.
An xUnit style testing framework inspired by Test::Class and built using Moose.
It can do all the important things Test::Class can do and more.
The prime advantages of using this module instead of Test::Class are
flexibility and power. Namely, Moose.
This module was created for a few of reasons:
To address perceived limitations in, and downfalls of, Test::Class.
To leverage existing Moose expertise for testing.
To bring Moose to the Perl testing game.
Sometimes using Test::More's is test isn't good enough. Its diagnostics may make
it easy to miss differences between strings. By using is_binary instead of is,
the "!" tells us that the lines differ, and we can quickly scan the bytes that
make up the line to see which differ. When comparing very long strings, we can
stop after we've seen a few differences.
This module replaces the standard localtime and gmtime functions with
implementations that return objects. It does so in a backwards
compatible manner, so that using localtime/gmtime in the way documented
in perlfunc will still return what you expect.
The module actually implements most of an interface described by Larry
Wall on the perl5-porters mailing list here:
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2000-01/msg00241.html
Devel::TraceFuncs provides utilities to trace the
execution of a program. It can print traces that look
something like:
+-> global: '0'
| +-> main::fo(4, 5) (in ./t.pm:32): 'now then'
| | +-> main::fp(4, 5) (in ./t.pm:19)
| | | +-> main::fq() (in ./t.pm:13)
| | | | que pee doll (in ./t.pm:8)
| | | +-< main::fq() (in ./t.pm:13)
| | | cee dee (in ./t.pm:14)
| | +-< main::fp(4, 5) (in ./t.pm:19)
| | ha
| | hs (in ./t.pm:20)
| +-< main::fo(4, 5) (in ./t.pm:32): 'now then'
| done (in ./t.pm:34)
+-< global: '0'
The autodie pragma provides a convenient way to replace functions
that normally return false on failure with equivalents that throw
an exception on failure.
The autodie pragma has lexical scope, meaning that functions and
subroutines altered with autodie will only change their behaviour
until the end of the enclosing block, file, or eval.
If system is specified as an argument to autodie, then it uses
IPC::System::Simple to do the heavy lifting. See the description
of that module for more information.
SimPy (= Simulation in Python) is an object-oriented, process-based discrete-
event simulation language based on standard Python and released under the GNU
GPL. It provides the modeler with components of a simulation model including
processes, for active components like customers, messages, and vehicles, and
resources, for passive components that form limited capacity congestion points
like servers, checkout counters, and tunnels. It also provides monitor variables
to aid in gathering statistics. Random variates are provided by the standard
Python random module.
PEAK-Rules is a highly-extensible framework for creating and using
generic functions, from the very simple to the very complex. Out of
the box, it supports multiple-dispatch on positional arguments using
tuples of types, full predicate dispatch using strings containing
Python expressions, and CLOS-like method combining. (But the framework
allows you to mix and match dispatch engines and custom method
combinations, if you need or want to.)
'tconfpy' is an advanced configuration file parser and validator for
Python programs. By using 'tconfpy', Python programmers can provide
their users with an external configuration file for setting program
options, defining defaults, and so on. 'tconfpy' offloads the
responsibility for parsing and validating a configuration file from
the main application. The Python programmer need only deal
with the results and any errors or warnings generated during the
parsing process.
pytest-localserver is a plugin for the pytest testing framework which
enables you to test server connections locally.
Sometimes monkeypatching urllib2.urlopen() just does not cut it, for
instance if you work with urllib2.Request, define your own
openers/handlers or work with httplib. In these cases it may come in
handy to have an HTTP server running locally which behaves just like
the real thing. Well, look no further!