File Coverage

blib/lib/Neo4j/Bolt/NeoValue.pm
Criterion Covered Total %
statement 5 17 29.4
branch n/a
condition n/a
subroutine 1 5 20.0
pod 4 4 100.0
total 10 26 38.4


line stmt bran cond sub pod time code
1             package Neo4j::Bolt::NeoValue;
2              
3             BEGIN {
4 3     3   206958 our $VERSION = "0.4200";
5 3         913 require Neo4j::Bolt::CTypeHandlers;
6 3         788 require Neo4j::Bolt::CResultStream;
7 3         18 require XSLoader;
8 3         2053 XSLoader::load();
9             }
10              
11             sub of {
12 0     0 1   my ($class, @args) = @_;
13 0           my @ret;
14 0           for (@args) {
15 0           push @ret, $class->_new_from_perl($_);
16             }
17 0           return @ret;
18             }
19              
20             sub is {
21 0     0 1   my ($class, @args) = @_;
22 0           my @ret;
23 0           for (@args) {
24 0           push @ret, $_->_as_perl;
25             }
26 0           return @ret;
27             }
28              
29 0     0 1   sub new {shift->of(@_)}
30 0     0 1   sub are {shift->is(@_)}
31              
32             =head1 NAME
33              
34             Neo4j::Bolt::NeoValue - Container to hold Bolt-encoded values
35              
36             =head1 SYNOPSIS
37              
38             use Neo4j::Bolt::NeoValue;
39            
40             $neo_int = Neo4j::Bolt::NeoValue->of( 42 );
41             $i = $neo_int->_as_perl;
42             $neo_node = Neo4j::Bolt::NeoValue->of(
43             bless { id => 1,
44             labels => ['thing','chose'],
45             properties => {
46             texture => 'crunchy',
47             consistency => 'gooey',
48             },
49             }, 'Neo4j::Bolt::Node' );
50             if ($neo_node->_neotype eq 'Node') {
51             print "Yep, that's a node all right."
52             }
53              
54             %node = %{ Neo4j::Bolt::NeoValue->is($neo_node)->as_simple };
55            
56             ($h,$j) = Neo4j::Bolt::NeoValue->are($neo_node, $neo_int);
57              
58             =head1 DESCRIPTION
59              
60             L is an interface to convert Perl values to
61             Bolt protocol byte structures via
62             L. It's
63             useful for testing the package, but you may find it useful in other
64             ways.
65              
66             =head1 METHODS
67              
68             =over
69              
70             =item of($thing), new($thing)
71              
72             Class method. Creates a NeoValue from a Perl scalar, arrayref, or
73             hashref.
74              
75             =item _as_perl()
76              
77             Returns a Perl scalar, arrayref, or hashref representing the underlying
78             Bolt data stored in the object.
79              
80             =item _neotype()
81              
82             Returns a string indicating the type of object that
83             L thinks
84             the Bolt data represents.
85              
86             =item is($neovalue), are(@neovalues)
87              
88             Class method. Syntactic sugar; runs L on the arguments.
89              
90             =back
91              
92             =head1 AUTHOR
93              
94             Mark A. Jensen
95             CPAN: MAJENSEN
96             majensen -at- cpan -dot- org
97              
98             =head1 LICENSE
99              
100             This software is Copyright (c) 2019-2020 by Mark A. Jensen.
101              
102             This is free software, licensed under:
103              
104             The Apache License, Version 2.0, January 2004
105              
106             =cut
107              
108              
109              
110              
111             1;
112