The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.87 - 2016-09-14

  • Revert to using JSON instead of JSON::MaybeXS because JSON-MaybeXS specifies RuntimeRequires to XS module Cpanel::JSON::XS and this breaks "depakability".
  • Reduce dependencies: 1) split JS compiler/stuffs to its own dist Data-Sah-JS, this removes several deps like Data::Clean::JSON, File::Temp, IPC::System::Options, and Nodejs::Util; 2) inline String::LineNumber & String::Indent to reduce dep; 3) remove dependency to Sub::Install; 4) remove dependency to Algorithm::Dependency (currently unused & will be replaced with Data::Graph::Util).
  • Replace code to check for installed module from using Module::Path::More to using Module::Installed::Tiny (works with fatpacked/datapacked scripts).

Documentation

Data::Sah manual
Contributing to Data::Sah
Data::Sah developer information
Extending Data::Sah
Validating function/method parameters using Data::Sah

Modules

Fast and featureful data structure validation
Base class for Sah compilers (Data::Sah::Compiler::*)
Base class for programming language compilers
Base class for programming-language emiting compiler's type handlers
Base class for programming language compiler handler for type "all"
Base class for programming language compiler handler for type "any"
Base class for type handlers
Role for compilers that produce text result (array of lines)
Compile Sah schema to human language
Base class for human type handlers
human's type handler for role "Comparable"
human's type handler for role "HasElems"
human's type handler for role "Sortable"
perl's type handler for type "all"
perl's type handler for type "any"
human's type handler for type "array"
perl's type handler for type "bool"
perl's type handler for type "buf"
perl's type handler for type "cistr"
perl's type handler for type "code"
human's type handler for type "date"
human's type handler for type "duration"
human's type handler for type "num"
human's type handler for type "hash"
human's type handler for type "int"
human's type handler for type "num"
perl's type handler for type "obj"
perl's type handler for type "re"
perl's type handler for type "str"
perl's type handler for type "undef"
Compile Sah schema to Perl code
Base class for perl type handlers
perl's type handler for type "all"
perl's type handler for type "any"
perl's type handler for type "array"
perl's type handler for type "bool"
perl's type handler for type "buf"
perl's type handler for type "cistr"
perl's type handler for type "code"
perl's type handler for type "date"
perl's type handler for type "duration"
perl's type handler for type "float"
perl's type handler for type "hash"
perl's type handler for type "int"
perl's type handler for type "num"
perl's type handler for type "obj"
perl's type handler for type "re"
perl's type handler for type "str"
perl's type handler for type "undef"
Some functions to use Data::Sah human compiler
Language routines
fr_FR locale
id_ID locale
zh_CN locale
Comparable type role
Role for sortable types
date/time duration type
Sah utility routines for adding function
Sah utility routines for roles
Utility related to date/duration type
Sah utility routines for type extensions
Test routines for Data::Sah
Routines to test Data::Sah (human compiler)
Routines for testing Data::Sah (perl compiler)