|
NAMEData::JavaScript::Anon - Dump big dumb Perl structs to anonymous JavaScript structsSYNOPSIS# Dump an arbitrary structure to javascript Data::JavaScript::Anon->anon_dump( [ 'a', 'b', { a => 1, b => 2 } ] ); DESCRIPTIONData::JavaScript::Anon provides the ability to dump large simple data structures to JavaScript. That is, things that don't need to be a class, or have special methods or whatever.The method it uses is to write anonymous variables, in the same way you would in Perl. The following shows some examples. # Perl anonymous array [ 1, 'a', 'Foo Bar' ] # JavaScript equivalent ( yes, it's exactly the same ) [ 1, 'a', 'Foo Bar' ] # Perl anonymous hash { foo => 1, bar => 'bar' } # JavaScript equivalent { foo: 1, bar: 'bar' } One advantage of doing it in this method is that you do not have to co-ordinate variable names between your HTML templates and Perl. You could use a simple Template Toolkit phrase like the following to get data into your HTML templates. var javascript_data = [% data %]; In this way, it doesn't matter WHAT the HTML template calls a particular variables, the data dumps just the same. This could help you keep the work of JavaScript and Perl programmers ( assuming you were using different people ) seperate, without creating cross-dependencies between their code, such as variable names. The variables you dump can also be of arbitrary depth and complexity, with a few limitations.
MAIN METHODSAll methods are called as methods directly, in the form "Data::JavaScript::Anon->anon_dump( [ 'etc' ] )".anon_dump STRUCTThe main method of the class, anon_dump takes a single arbitrary data struct, and converts it into an anonymous JavaScript struct.If needed, the argument can even be a normal text string, although it wouldn't do a lot to it. :) Returns a string containing the JavaScript struct on success, or "undef" if an error is found. var_dump $name, STRUCTAs above, but the "var_dump" method allows you to specify a variable name, with the resulting JavaScript being "var name = struct;". Note that the method WILL put the trailing semi-colon on the string.script_wrap $javascriptThe "script_wrap" method is a quick way of wrapping a normal JavaScript html tag around your JavaScript.is_a_number $scalarWhen generating the javascript, numbers will be printed directly and not quoted. The "is_a_number" method provides convenient access to the test that is used to see if something is a number. The test handles just about everything legal in JavaScript, with the one exception of the exotics, such as Infinite, -Infinit and NaN.Returns true is a scalar is numeric, or false otherwise. You may also access method in using an instantiated object. new HASHThis will create a Data::JavaScript::Anon object that will allow you to change some of the default behaviors of some methods.Options: quote_char : Set the quote_char for stirng scalars. Default is '"'. SECONDARY METHODSThe following are a little less general, but may be of some use.var_scalar $name, \$scalarCreates a named variable from a scalar reference.var_array $name, \@arrayCreates a named variable from an array reference.var_hash $name, \%hashCreates a named variable from a hash reference.anon_scalar \$scalarCreates an anonymous JavaScript value from a scalar reference.anon_array \@arrayCreates an anonymous JavaScript array from an array reference.anon_hash \%hashCreates an anonymous JavaScript object from a hash reference.anon_hash_key $valueApplys the formatting for a key in a JavaScript objectSUPPORTBugs should be reported via the CPAN bug tracker at:<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Data-JavaScript-Anon> For other comments or queries, contact the author. AUTHORAdam Kennedy <adamk@cpan.org>SEE ALSOJSON, <http://ali.as/>COPYRIGHTCopyright 2003 - 2009 Adam Kennedy.This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module.
Visit the GSP FreeBSD Man Page Interface. |