der::Ext::json;
$Ubic::ServiceLoader::Ext::json::VERSION = '1.60';
# ABSTRACT: loader for json-style configs
use strict;
use warnings;
use parent qw( Ubic::ServiceLoader::Base );
use JSON;
{
with JSON.pm v1 just because we can
# see also: Ubic::Persistent
no strict;
no warnings;
sub jsonToObj; *jsonToObj = (*{JSON::from_json}{CODE}) ? \&JSON::from_json : \&JSON::jsonToObj
= do { local $/; <$fh> };
close $fh or die "Can't close $file: $!";
my $config = eval { jsonToObj $content };
unless ($config) {
die "Failed to parse $file: $@";
}
my $m
tence object
use JSON;
use Ubic::Lockf;
use Ubic::AtomicFile;
{
# support the compatibility with JSON.pm v1 just because we can
# see also: Ubic::ServiceLoader::Ext::json
no strict;
sub jsonToObj; *jsonToObj = (*{JSON::from_json}{CODE}) ? \&JSON::from_json : \&JSON::jsonToObj;
sub objToJson; *objToJson = (*{JSON::to_json}{CODE}) ? \&JSON::to_json : \&JSON::objToJson;
}
my
+)};
$data = { status => $status, enabled => $enabled };
}
else {
$data = jsonToObj($str);
}
return $data;
}
sub load {
my ($class, $fname) = @_;
return _load