App-MBUtiny
view release on metacpan or search on metacpan
lib/App/MBUtiny.pm view on Meta::CPAN
rstdir => $rstdir,
});
# Set VoidFile
$self->{voidfile} = File::Spec->catfile($self->tempdir(), VOIDFILE);
touch($self->{voidfile});
# Set DBI
$self->{_dbi} = undef;
return $self->SUPER::again;
}
sub excdir {shift->{excdir}}
sub objdir {shift->{objdir}}
sub rstdir {shift->{rstdir}}
sub getdbi {shift->{_dbi}}
__PACKAGE__->register_handler(
handler => "configure",
description => sprintf("Configure %s", PROJECTNAME),
code => sub { shift->configure });
lib/App/MBUtiny/Collector/Client.pm view on Meta::CPAN
};
sub new {
my $class = shift;
my %params = @_;
$params{sr_attrs} ||= SR_ATTRS;
$params{ua_opts} ||= { agent => "MBUtiny/$VERSION" };
$params{format} ||= SERIALIZE_FORMAT;
$params{content_type} ||= CONTENT_TYPE;
$params{no_check_redirect} //= 1;
return $class->SUPER::new(%params);
}
sub request {
my $self = shift;
my $data = $self->SUPER::request(@_);
my $state = $self->status;
if ($state) {
my $err = _check_response($data);
if ($err) {
$self->status(0);
$self->error($err);
}
}
return $data if is_hash($data);
if ($data) {
lib/App/MBUtiny/Collector/Server.pm view on Meta::CPAN
};
return HTTP_NO_CONTENT; # HTTP RC
});
return 1;
}
sub again {
my $self = shift;
$self->SUPER::again;
# Serializer
my $sr = new CTK::Serializer(SERIALIZE_FORMAT, attrs => SR_ATTRS);
unless ($sr->status) {
$self->error(sprintf("Can't create json serializer: %s", $sr->error));
$self->{status} = 0;
}
$self->{sr} = $sr;
# DBI object
lib/App/MBUtiny/Collector/Server.pm view on Meta::CPAN
return HTTP_OK;
}
sub response {
my $self = shift;
my $q = shift;
my $rc = $self->code; # RC HTTP code (from yuor methods)
my $head = $self->head || {}; # HTTP Headers (hashref)
my $data = $self->data; # The working data
my $msg = $self->message || HTTP::Status::status_message($rc) || "Unknown code";
$data = {status => 0, error => $self->error || "Unknown error"} if !$self->status && (is_void($data) || $data eq "");
return $self->SUPER::response unless $data && ref($data);
return $self->SUPER::response unless value($self->info("attrs"), "serialize");
#binmode STDOUT, ":raw:utf8"; # Disabled, by encoding reasons. See SUPER::response (utf8::encode($content))
# Set debug time
$data->{'time'} = sprintf("%.4f", sprintf("%.4f", $self->tms(1))*1 - $self->{_time})*1;
# Set status and response
$data->{status} = $self->status;
$data->{error} = $self->error;
# Headers
$head->{Server} = sprintf("%s/%s", __PACKAGE__, $VERSION);
lib/App/MBUtiny/Collector/Server.pm view on Meta::CPAN
$errmsg =~ s/\'/\\\'/g;
$self->data(sprintf('{"status": 0, "error": "%s"}', $errmsg));
$self->code(HTTP_INTERNAL_SERVER_ERROR);
}
#my @res = (sprintf("Status: %s %s", $rc, $msg));
#push @res, sprintf("Content-Type: %s", "text/plain; charset=utf-8");
#push @res, "", $data // "";
#return join("\015\012", @res);
return $self->SUPER::response;
}
sub _get_name_from_path {
my $request_uri = shift // '';
my $uri = new URI(sprintf("http://localhost%s", $request_uri));
my $str = $uri->path() // "";
return "" unless length($str);
return "" if index($str, $BASE_URL_PATH_PREFIX, 0);
my $sfx = substr($str, length($BASE_URL_PATH_PREFIX)) || "";
$sfx =~ s/^\/+//;
lib/App/MBUtiny/Storage/HTTP.pm view on Meta::CPAN
use constant {
CONTENT_TYPE => "application/octet-stream",
};
sub new {
my $class = shift;
my %params = @_;
$params{ua_opts} ||= { agent => "MBUtiny/$VERSION" };
$params{content_type} ||= CONTENT_TYPE;
$params{no_check_redirect} //= 1;
return $class->SUPER::new(%params);
}
sub check {
my $self = shift;
$self->request("HEAD");
return $self->status;
}
sub filelist {
my $self = shift;
my %args = @_;
my $string_ret = $self->request(GET => $self->_merge_path_query($args{path}, $args{host})) || "";
( run in 1.352 second using v1.01-cache-2.11-cpan-49f99fa48dc )