IONS_ATTRIBUTES
= qw/format short repeatable negatable autosplit autorange doc long_doc order json hidden spacer_before spacer_after/;
sub import {
my ( undef, @import ) = @_;
my $options
ions{order} = 0 if !defined $options{order};
if ( $options{json}
|| ( defined $options{format} && $options{format} eq 'json' ) )
{
delete $options{repeatable};
delete
ange};
delete $options{negativable};
delete $options{negatable};
$options{json} = 1;
$options{format} = 's';
}
if ( $options{autorange} and not defined $opti
n option log_adapter => (is => "ro", required => 1, trigger => 1, json => 1 );
option connection => (is => "ro", required => 1, json => 1);
sub _trigger_log_adapter { my ( $self, $opts ) = @_; lo
format_doc->{$format} if defined $format;
$format_doc_str = 'JSON'
if defined $options_data{ $opt->{name} }{json};
my $spec
= ( defined $short ? "-" . $short .
format_doc->{$format} if defined $format;
$format_doc_str = 'JSON'
if defined $options_data{ $opt->{name} }{json};
push @message,
( defined $short ? "-" . $sh
{$format}
if defined $format;
$format_doc_str = 'JSON'
if defined $options_data{ $opt->{name} }{json};
my $opt_long_name
= "-" . ( length( $opt->{n
and convert the result for the "new" method.
It is use by "new_with_options".
=cut
my $decode_json;
sub parse_options {
my ( $class, %params ) = @_;
my %options_data = $class->_options
f ( $data{json} ) {
defined $decode_json
or $decode_json = eval {
use_module("JSON::MaybeXS");
JSON::MaybeXS
->can("decode_json");
};
defined $decode_json
or $decode_json = eval {
use_module("JSON::PP");