Perl packages

Note that these snapshot packages might be outdated. The latest version of these modules are avaialble from their Git repositories. Use of the Git version is always recommended.

Modules

Class-Registry

Class::Registry 3.0

The "Class::Registry" module defines a registry for short names of Perl classes (packages). It might be useful where there could be different sets of subclasses and a library does not know which set of subclasses should be used a priori.

Tarball
Class-Registry-3.0.tar.gz (3KB, )
Git repository
GitHub
Continuous integration
Travis CI
Old version
Class-Registry-2.0.tar.gz (2KB, )
Class-Registry-1.1.tar.gz (2KB, )

Dongry-Database

Dongry::Database 2.0

Dongry is a lightweight Perl interface to MySQL databases. It provides different levels of abstractions for applications to handle database operations in easy, memorable, and safe ways without stealing full control for how and when SQL queries are executed from them.

The "Dongry::Database" module contains the implementation of the database object, which is the most fundamental and important object in Dongry. All of the features in Dongry can be directly or indirectly accessible from the database object, as described in the following sections.

In addition to the synchronous processing model, Dongry also supports the asynchronous event-based model by using the AnyEvent::DBI module as its backend. Since both modes can be switched or combined easily, you can transit one from the other, or you can partially change the processing mode, in very low cost.

     + - - - - - - - - - - - - - - - - - - - - - +
     :                                           :
     : Application                               :
     :                                           :
     +---+------------+                          :
     | D | Query obj. |                          :
     | o +------------+-----------+              :
     | n | Schema-aware ops.      |              :
     | g +------------------------+------+       :
     | r | Structured SQL ops.           |       :
     | y +-------------------------------+---+   :
     |   | Bare SQL w/named placeholders     |   :
     |   +-----------------------------------+---+
     |   | Bare SQL ops.                         |
     |   +---------------------------------------+
     |   | Connection management                 |
     +---+------------------+--------------------+
     |                      | AnyEvent::DBI      |
     |                      +--------------------+
     | DBI                                       |
     | DBD                                       |
     +-------------------------------------------+
                        |   ^
                        |   |
                        v   |
     +-------------------------------------------+
     | Database                                  |
     +-------------------------------------------+
       Fig. Various levels of features in Dongry
Tarball
Dongry-Database-2.0.tar.gz (91KB, )
Git repository
GitHub
Suika
Old version
Dongry-Database-1.0.tar.gz (74KB, )

Dongry-Type-DateTime

Dongry::Type::DateTime 1.0

The "Dongry::Type::DateTime" module defines data types for handing date and time in Dongry. They represents date and time in Perl DateTime object.

Tarball
Dongry-Type-DateTime-1.0.tar.gz (3KB, )
Git repository
Suika
GitHub

Dongry-Type-JSON

Dongry::Type::JSON 1.0

The "Dongry::Type::JSON" module defines data types for handing JSON-encoded data structure as column value in Dongry.

Tarball
Dongry-Type-JSON-1.0.tar.gz (2KB, )
Git repository
Suika
GitHub

Dongry-Type-MessagePack

Dongry::Type::MessagePack 1.0

The "Dongry::Type::MessagePack" module defines data types for handing MessagePack-encoded data structure as column value in Dongry.

Tarball
Dongry-Type-MessagePack-1.0.tar.gz (2KB, )
Git repository
GitHub
Suika

JSON-Functions-XS

JSON::Functions::XS 1.2

The "JSON::Functions::XS" module provides various useful functions to decode or encode JSON data. These functions are wrappers; actual conversion is enforced by the JSON::XS module.

Strictly speaking, "JSON::Functions::XS" is not just a wrapper for JSON::XS, but it adds some modifications to improve interoperability, namely:

- Support for scalar literal values According to ECMAScript 5.1, i.e. the latest JSON specification, a number, string, boolean, or null value can be recognized as valid input.

- Silent error recovery from fatal errors In many use cases of JSON parsing, the application don't have to know what is exatly wrong with the JSON input but rather the entire operation should not die just because the input is invalid. In such an application, ill-formed input is as bad as wrongly-constructed well-formed JSON data, such that it has to check the result data structure anyway to be error tolerant. Therefore this module does not raise when the input is invalid. If you'd like to distinguish parse errors from application-dependent structural errors, this module would not be a choice for you.

- Avoiding HTML XSS To prevent from HTML XSS attacks when the JSON output is poorly-labelled, or for legacy-browser users, this module replaces "<" characters in JSON output into its escaped form.

- Avoiding UTF-7 XSS To avoid UTF-7 XSS attacks for legacy-browser users, this module replaces "+" characters in JSON output into its escaped form.

- JavaScript/JSONP compatbility To improve JavaScript/JSONP compatibility, this module replaces U+2028 and U+2029 characters in JSON output, which are not allowed in JavaScript string literals, into their escaped forms.

Tarball
JSON-Functions-XS-1.2.tar.gz (4KB, )
Git repository
GitHub
Old version
JSON-Functions-XS-1.1.tar.gz (3KB, )

LWP-UserAgent-Curl

LWP::UserAgent::Curl 1.0

This module defines the "simple_request" method that can be used to replace "LWP::UserAgent"'s "simple_request" method such that curl is invoked instead of usual "LWP::UserAgent"'s processing.

Tarball
LWP-UserAgent-Curl-1.0.tar.gz (2KB, )
Git repository
GitHub

List-Ish

List::Ish 0.04

The "List::Ish" module provides a class for handling a list (or array) as an object.

Tarball
List-Ish-0.04.tar.gz (7KB, )
Git repository
GitHub
Continuous integration
Travis CI

Operation-Response

Operation::Response 1.0
Tarball
Operation-Response-1.0.tar.gz (3KB, )
Git repository
GitHub
Continuous integration
Travis CI

Test-AnyEvent-plackup

Test::AnyEvent::plackup 2.0

The "Test::AnyEvent::plackup" module invokes the "plackup" command of Plack with specified options. It might be useful for testing your PSGI Web applications, or applications that requires access to some Web applications.

Tarball
Test-AnyEvent-plackup-2.0.tar.gz (5KB, )
Git repository
GitHub
Continuous integration
Travis CI
Old version
Test-AnyEvent-plackup-1.0.tar.gz (5KB, )

Test-Directory-Diff

Test::Directory::Diff 1.0

The "Test::Directory::Diff" module provides a test assertion to ensure that two given directories contain same content. The equivalence is determined by the "diff" command.

Tarball
Test-Directory-Diff-1.0.tar.gz (3KB, )

Test-Interval

Test::Interval 1.0

The "Test::Interval" module exports a test subroutine "ms_ok", which can be used to test the execution time of the specified block is less than or equal to the specified milliseconds.

Tarball
Test-Interval-1.0.tar.gz (2KB, )

Test-MoreMore

Test::MoreMore 1.2

The "Test::MoreMore" module provides a number of basic but useful test assertion subroutines. It is a superset of Test::More.

Tarball
Test-MoreMore-1.2.tar.gz (5KB, )

Test-Worker-Client

Test::Worker::Client 1.0
Tarball
Test-Worker-Client-1.0.tar.gz (5KB, )
Git repository
GitHub

Test-X1

Test::X1 1.0

The "Test::X1" module defines a simple, lightweight test management framework for Test::Builder-based tests. It supports automatic naming of tests, partial execution, concurrent execution, and other useful features.

Tarball
Test-X1-1.0.tar.gz (10KB, )
Git repository
GitHub
Continuous integration
Travis CI

Wanage-HTTP

Wanage::HTTP 1.0

The "Wanage::HTTP" module provides a set of APIs for handling HTTP messages in server-side Web applications, namely interpretation of HTTP request message and generation of HTTP response message in response to the request, using the underlying interface for server-application communication such as CGI and PSGI.

The Wanage HTTP object provides access to data contained in HTTP request message, as well as primitive methods to generate HTTP response, while not entirely exposing historical complexness of underlying interfaces to servers. The goal of the HTTP object implementation is not completely modeling the HTTP request and response messages, but providing a set of API that is convinient and secure enough to build general-purpose Web applications. Therefore, it does not, and will not, support full HTTP protocol features.

Although it is not required, Wanage is intended to be combined with Warabe::App, a fundamental building block of server-side Web applications. Warabe defines more specific or higher-level APIs for typical Web application use cases, such as URL path interpretation, request validation, error handling, redirect response construction, and so on, which are all built on the top of Wanage's generic HTTP interface.

Tarball
Wanage-HTTP-1.0.tar.gz (43KB, )
Git repository
Suika
GitHub

Warabe-App

Warabe::App 1.0

The Warabe::App module is the primary component of Warabe, a server-side Web application construction toolkit. It provides a number of convinient methods handling HTTP request and response in the way that would be useful for typical Web applications.

Warabe accesses the HTTP request and response through the interface provided by Wanage::HTTP. Therefore, Warabe can handle any server-application interface supported by Wanage::HTTP, including CGI and PSGI.

Warabe constructs higher-level operations for more concrete use cases on the top of APIs provided by Wanage HTTP object. It does not mean a Web application using Warabe should not access Wanage HTTP object directly - in fact, Warabe does not provide complete access to HTTP request and response, as it can be easily accessed through the HTTP object directly from the application, if necessary.

      +------+   +------+   +------+      +------+      +------+
      |Your  |<->|Warabe|<->|Wanage|<---->|HTTP  |<---->|HTTP  |
      |  App.|   +------+   |      | CGI  |server| HTTP |client|
      |      |<------------>|      | PSGI |      |      |      |
      +------+              +------+      +------+      +------+
  
      App.       Common     Generic       TCP/HTTP
      specific   Web app.   HTTP          protocol
      logic      operations interpret.    handling
Tarball
Warabe-App-1.0.tar.gz (12KB, )
Git repository
GitHub
Suika

Warabe-App-Role-DateTime

Warabe::App::Role::DateTime 1.0

The "Warabe::App::Role::DateTime" module defines additional methods for handling date-time data as DateTime objects in Warabe::App API. This module is intended to be used a superclass of some subclass of Warabe::App.

Tarball
Warabe-App-Role-DateTime-1.0.tar.gz (2KB, )
Git repository
GitHub
Suika

Warabe-App-Role-JSON

Warabe::App::Role::JSON 2.0

The "Warabe::App::Role::JSON" module defines additional methods for handling JSON data in Warabe::App API. This module is intended to be used a superclass of some subclass of Warabe::App.

Tarball
Warabe-App-Role-JSON-2.0.tar.gz (4KB, )
Git repository
GitHub
Suika
Continuous integration
Travis CI
Old version
Warabe-App-Role-JSON-1.0.tar.gz (3KB, )

Warabe-App-Role-MessagePack

Warabe::App::Role::MessagePack 1.0

The "Warabe::App::Role::MessagePack" module defines additional methods for handling MessagePack data in Warabe::App API. This module is intended to be used a superclass of some subclass of Warabe::App.

Tarball
Warabe-App-Role-MessagePack-1.0.tar.gz (3KB, )
Git repository
GitHub
Suika
Continuous integration
Travis CI

Web-UserAgent-Functions

Web::UserAgent::Functions 2.0

This module provides three functions for HTTP access: "http_get", "http_post", and "http_post_data". They are in fact wrappers for LWP::UserAgent. They accept parameters that describes which resource is how retrieved and return HTTP::Request and HTTP::Response objects of the HTTP access.

It adds following features to the original LWP::UserAgent module:

- Useful functional interfaces - Avoiding use of SOCKS proxy transparently using LWP::UserAgent::Curl module - "application/x-www-form-urlencoded" support - OAuth 1.0 support

Tarball
Web-UserAgent-Functions-2.0.tar.gz (6KB, )
Git repository
GitHub

WebService-Microsoft-Translator

WebService::Microsoft::Translator 1.0

The "WebService::Microsoft::Translator" module is a wrapper for Microsoft Translator API.

Tarball
WebService-Microsoft-Translator-1.0.tar.gz (3KB, )

generate-pm-package

generate-pm-package 1.3

The "generate-pm-package" script can be used to generate Perl module packages using a simple manifest file.

Tarball
generate-pm-package-1.3.tar.gz (3KB, )
Git repository
GitHub