Couch-DB
view release on metacpan or search on metacpan
lib/Couch/DB/Client.pm view on Meta::CPAN
891011121314151617181920212223242526272829303132333435363738394041424344454647package
Couch::DB::Client;{
our
$VERSION
=
'0.200'
;
}
use
Couch::DB::Result ();
my
$seqnr
= 0;
sub
new(@) { (
bless
{},
shift
)->init( {
@_
} ) }
sub
init($)
{
my
(
$self
,
$args
) =
@_
;
$self
->{CDC_server} =
my
$server
=
delete
$args
->{server} or panic
"Requires 'server'"
;
$self
->{CDC_name} =
delete
$args
->{name} ||
"$server"
;
$self
->{CDC_ua} =
delete
$args
->{user_agent} or panic
"Requires 'user_agent'"
;
$self
->{CDC_uuids} = [];
$self
->{CDC_seqnr} = ++
$seqnr
;
$self
->{CDC_couch} =
delete
$args
->{couch} or panic
"Requires 'couch'"
;
weaken
$self
->{CDC_couch};
$self
->{CDC_hdrs} =
my
$headers
=
delete
$args
->{headers} || {};
my
$username
=
delete
$args
->{username} //
''
;
$self
->login(
auth
=>
delete
$args
->{auth} ||
'BASIC'
,
username
=>
$username
,
password
=>
delete
$args
->{password},
)
if
length
$username
;
lib/Couch/DB/Cluster.pm view on Meta::CPAN
7891011121314151617181920212223242526272829303132333435363738package
Couch::DB::Cluster;{
our
$VERSION
=
'0.200'
;
}
sub
new(@) {
my
(
$class
,
%args
) =
@_
; (
bless
{},
$class
)->init(\
%args
) }
sub
init($)
{
my
(
$self
,
$args
) =
@_
;
$self
->{CDC_couch} =
delete
$args
->{couch} or panic
"Requires couch"
;
weaken
$self
->{CDC_couch};
$self
;
}
#-------------
sub
couch() {
$_
[0]->{CDC_couch} }
#-------------
lib/Couch/DB/Database.pm view on Meta::CPAN
91011121314151617181920212223242526272829303132333435363738394041424344our
$VERSION
=
'0.200'
;
}
use
Couch::DB::Document ();
use
Couch::DB::Design ();
use
JSON::PP ();
sub
new(@) {
my
(
$class
,
%args
) =
@_
; (
bless
{},
$class
)->init(\
%args
) }
sub
init($)
{
my
(
$self
,
$args
) =
@_
;
my
$name
=
$self
->{CDD_name} =
delete
$args
->{name} or panic
"Requires name"
;
$name
=~ m!^[a-z][a-z0-9_$()+/-]*$!
or error __x
"Illegal database name '{name}'."
,
name
=>
$name
;
$self
->{CDD_couch} =
delete
$args
->{couch} or panic
"Requires couch"
;
weaken
$self
->{CDD_couch};
$self
->{CDD_batch} =
delete
$args
->{batch};
$self
;
}
#-------------
sub
name() {
$_
[0]->{CDD_name} }
sub
couch() {
$_
[0]->{CDD_couch} }
sub
batch() {
$_
[0]->{CDD_batch} }
lib/Couch/DB/Document.pm view on Meta::CPAN
567891011121314151617181920212223242526272829303132333435363738394041424344454647484950# SPDX-FileCopyrightText: 2024 Mark Overmeer <mark@overmeer.net>
# SPDX-License-Identifier: Artistic-2.0
package
Couch::DB::Document;{
our
$VERSION
=
'0.200'
;
}
use
Couch::DB::Util;
sub
new(@) {
my
(
$class
,
%args
) =
@_
; (
bless
{},
$class
)->init(\
%args
) }
sub
init($)
{
my
(
$self
,
$args
) =
@_
;
$self
->{CDD_id} =
delete
$args
->{id};
$self
->{CDD_db} =
my
$db
=
delete
$args
->{db};
$self
->{CDD_info} = {};
$self
->{CDD_batch} =
exists
$args
->{batch} ?
delete
$args
->{batch} :
$db
->batch;
$self
->{CDD_revs} =
my
$revs
= {};
$self
->{CDD_local} =
delete
$args
->{
local
};
$self
->{CDD_couch} =
$db
->couch;
weaken
$self
->{CDD_couch};
if
(
my
$content
=
delete
$args
->{content})
{
$revs
->{_new} =
$content
;
}
# The Document is (for now) not linked to its Result source, because
# that might consume a lot of memory. Although it may help debugging.
# weaken $self->{CDD_result} = my $result = delete $args->{result};
$self
->row(
delete
$args
->{row});
$self
;
}
sub
DESTROY()
{
my
$self
=
shift
;
$self
->{CDD_revs}{_new} || ! in_global_destruction
or panic
"Unsaved new document."
;
}
lib/Couch/DB/Document.pm view on Meta::CPAN
107108109110111112113114115116117118119120121122123124125126{
my
(
$self
,
$id
,
$rev
,
$data
) =
@_
;
$self
->{CDD_id} ||=
$id
;
$self
->{CDD_revs}{
$rev
} =
$data
||
delete
$self
->{CDD_revs}{_new};
}
sub
row(;$)
{
my
$self
=
shift
;
@_
or
return
$self
->{CDD_row};
$self
->{CDD_row} =
shift
;
weaken(
$self
->{CDD_row});
$self
->{CDD_row};
}
#-------------
sub
isLocal() {
$_
[0]->{CDD_local} }
sub
isDeleted() {
$_
[0]->{CDD_deleted} }
lib/Couch/DB/Node.pm view on Meta::CPAN
78910111213141516171819202122232425262728293031323334353637package
Couch::DB::Node;{
our
$VERSION
=
'0.200'
;
}
use
Couch::DB::Util;
sub
new(@) {
my
(
$class
,
%args
) =
@_
; (
bless
{},
$class
)->init(\
%args
) }
sub
init($)
{
my
(
$self
,
$args
) =
@_
;
$self
->{CDN_name} =
delete
$args
->{name} // panic
"Node has no name"
;
$self
->{CDN_couch} =
delete
$args
->{couch} or panic
"Requires couch"
;
weaken
$self
->{CDN_couch};
$self
;
}
#-------------
sub
name() {
$_
[0]->{CDN_name} }
sub
couch() {
$_
[0]->{CDN_couch} }
#-------------
lib/Couch/DB/Result.pm view on Meta::CPAN
91011121314151617181920212223242526272829our
$VERSION
=
'0.200'
;
}
use
Couch::DB::Document ();
use
Couch::DB::Row ();
my
%couch_code_names
= ();
# I think I saw them somewhere. Maybe none
my
%default_code_texts
= (
# do not construct them all the time again
&HTTP_OK
=>
'Data collected successfully.'
,
&HTTP_CONTINUE
=>
'The data collection is delayed.'
,
&HTTP_MULTIPLE_CHOICES
=>
'The Result object does not know what to do, yet.'
,
);
my
$seqnr
= 0;
lib/Couch/DB/Result.pm view on Meta::CPAN
277278279280281282283284285286287288289290291292293294295296sub
isLastPage() {
$_
[0]->_thisPage->{end_reached} }
#-------------
sub
setFinalResult($%)
{
my
(
$self
,
$data
,
%args
) =
@_
;
my
$code
=
delete
$data
->{code} || HTTP_OK;
$self
->{CDR_client} =
my
$client
=
delete
$data
->{client} or panic
"No client"
;
weaken
$self
->{CDR_client};
$self
->{CDR_ready} = 1;
$self
->{CDR_request} =
delete
$data
->{request};
$self
->{CDR_response} =
delete
$data
->{response};
$self
->setStatus(
$code
,
delete
$data
->{message});
delete
$self
->{CDR_answer};
# remove cached while paging
delete
$self
->{CDR_values};
delete
$self
->{CDR_rows};
( run in 0.295 second using v1.01-cache-2.11-cpan-a9ef4e587e4 )