NAME Perinci::Object - Object-oriented interface for Rinci metadata VERSION version 0.10 SYNOPSIS use Perinci::Object; # automatically exports risub(), rivar(), ripkg(), # envres(), riresmeta() use Data::Dump; # for dd() # OO interface to function metadata. my $risub = risub { v => 1.1, summary => 'Calculate foo and bar', "summary.alt.lang.id_ID" => 'Menghitung foo dan bar', args => { a1 => { schema => 'int*' }, a2 => { schema => 'str' } }, features => { pure=>1 }, }; dd $risub->type, # "function" $risub->v, # 1.0 $risub->arg('a1'), # { schema=>'int*' } $risub->arg('a3'), # undef $risub->feature('pure'), # 1 $risub->feature('foo'), # undef $risub->langprop('summary'), # 'Calculate foo and bar' $risub->langprop('summary', 'id_ID'), # 'Menghitung foo dan bar' # setting arg and property $risub->arg('a3', 'array'); # will actually fail for 1.0 metadata $risub->feature('foo', 2); # ditto # OO interface to variable metadata my $rivar = rivar { ... }; # OO interface to package metadata my $ripkg = ripkg { ... }; # OO interface to enveloped result my $envres = envres [200, "OK", [1, 2, 3]]; dd $envres->is_success, # 1 $envres->status, # 200 $envres->message, # "OK" $envres->result, # [1, 2, 3] $envres->meta; # undef # setting status, message, result, extra $envres->status(404); $envres->message('Not found'); $envres->result(undef); $envres->meta({errno=>-100}); # OO interface to function/method result metadata my $riresmeta = riresmeta { ... }; DESCRIPTION Rinci works using pure data structures, but sometimes it's convenient to have an object-oriented interface (wrapper) for those data. This module provides just that. FUNCTIONS rimeta $meta => OBJECT Exported by default. A shortcut for Perinci::Object::Metadata->new($meta). risub $meta => OBJECT Exported by default. A shortcut for Perinci::Object::function->new($meta). rivar $meta => OBJECT Exported by default. A shortcut for Perinci::Object::variable->new($meta). ripkg $meta => OBJECT Exported by default. A shortcut for Perinci::Object::package->new($meta). rires $res => OBJECT Exported by default. A shortcut for Perinci::Object::Result->new($res). SEE ALSO Rinci AUTHOR Steven Haryanto COPYRIGHT AND LICENSE This software is copyright (c) 2012 by Steven Haryanto. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.