JSON-GRDDL

 view release on metacpan or  search on metacpan

lib/JSON/GRDDL.pm  view on Meta::CPAN

		$T = $self->_resolve_relative_ref($document->{'$schema'}->{'$schemaTransformation'}, $uri);
	}
	elsif (defined $document->{'$schema'}->{'$ref'})
	{
		my $s = $self->_resolve_relative_ref($document->{'$schema'}->{'$ref'}, $uri);
		my $r  = $self->_fetch($s,
			Accept => 'application/schema+json, application/x-schema+json, application/json');
		
		if (defined $r
		&&  $r->code == 200
		&&  $r->header('content-type') =~ m#^\s*(((application|text)/(x-)?json)|(application/(x-)?schema\+json))\b#)
		{
			my $schema = from_json($r->decoded_content);
			if (defined $schema->{'$schemaTransformation'})
			{
				$T = $self->_resolve_relative_ref($schema->{'$schemaTransformation'}, $s);
			}
		}
	}
	return ($T);
}

lib/JSON/GRDDL.pm  view on Meta::CPAN

sub transform_by_uri
{
	my ($self, $document, $uri, $transformation_uri, %options) = @_;
	
	my ($name) = ($transformation_uri =~ /\#(.+)$/);
	
	my $r = $self->_fetch($transformation_uri,
		Accept => 'application/ecmascript, application/javascript, text/ecmascript, text/javascript, application/x-ecmascript');
	if (defined $r
	&&  $r->code == 200
	&&  $r->header('content-type') =~ m#^\s*((application|text)/(x-)?(java|ecma)script)\b#)
	{
		return $self->transform_by_jsont($document, $uri, $r->decoded_content, $name, %options);
	}
	
	return;
}

sub transform_by_jsont
{
	my ($self, $document, $uri, $transformation, $name, %options) = @_;



( run in 1.084 second using v1.01-cache-2.11-cpan-d7f47b0818f )