![]() |
![]()
| ![]() |
![]()
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.
|