| Any-Renderer documentation | Contained in the Any-Renderer distribution. |
Any::Renderer::JavaScript - render as a JavaScript object
use Any::Renderer; my %options = ( 'VariableName' => 'myvariable' ); my $format = "JavaScript"; my $r = new Any::Renderer ( $format, \%options ); my $data_structure = [...]; # arbitrary structure code my $string = $r->render ( $data_structure );
You can get a list of all formats that this module handles using the following syntax:
my $list_ref = Any::Renderer::JavaScript::available_formats ();
Also, determine whether or not a format requires a template with requires_template:
my $bool = Any::Renderer::JavaScript::requires_template ( $format );
Any::Renderer::JavaScript renders any Perl data structure passed to it as a sequence of JavaScript statements to create the corresponding data structure in JavaScript. For example:
perl -MAny::Renderer -e "print Any::Renderer->new('JavaScript')->render({a => 1, b => [2,3]})"
results in:
var script_output = new Object;script_output['a'] = 1;script_output['b'] = new Array;script_output['b'][0] = 2;script_output['b'][1] = 3;
See FORMATS for a description of valid values for $format.
See OPTIONS for a description of valid %options.
The main method.
False in this case.
See FORMATS for a list.
Name of the javascript variable that the new data structure is to be assigned to. Defaults to script_output.
$Revision: 1.8 $ on $Date: 2006/08/21 08:30:23 $ by $Author: johna $
Matt Wilson <cpan _at_ bbc _dot_ co _dot_ uk>
(c) BBC 2006. This program is free software; you can redistribute it and/or modify it under the GNU GPL.
See the file COPYING in this distribution, or http://www.gnu.org/licenses/gpl.txt
| Any-Renderer documentation | Contained in the Any-Renderer distribution. |
package Any::Renderer::JavaScript; # $Id: JavaScript.pm,v 1.8 2006/08/21 08:30:23 johna Exp $ use strict; use vars qw($VERSION %Formats); use Data::JavaScript; $VERSION = sprintf"%d.%03d", q$Revision: 1.8 $ =~ /: (\d+)\.(\d+)/; %Formats = map {$_ => 1} @{available_formats()}; sub new { my ( $class, $format, $options ) = @_; die("The format '$format' isn't supported") unless($Formats{$format}); my $self = { 'options' => $options, }; bless $self, $class; return $self; } sub render { my ( $self, $data ) = @_; TRACE ( "Rendering w/Data::JavaScript" ); DUMP ( $data ); my $variable_name = $self->{ 'options' }->{ 'VariableName' } || 'script_output'; return Data::JavaScript::jsdump ( $variable_name, $data ); } sub requires_template { return 0; } sub available_formats { return [ 'JavaScript', 'Javascript' ]; } sub TRACE {} sub DUMP {} 1;