Group
Extension

Matches 8

Venus ( A/AW/AWNCORP/Venus-4.15.tar.gz, AWNCORP, 2023; MetaCPAN )
Venus/lib/Venus/Json.pm ( view source; MetaCPAN )
package Venus::Json;

use 5.018;

use strict;
use warnings;

use overload (
  '""' => 'explain',
  '~~' => 'explain',
  fallback => 1,
);

use Venus::Class 'attr', 'base', 'with';

base 'Venus::Kind::
($package->can('escape_slash')) {
    $package->escape_slash;
  }

  # Cpanel::JSON::XS
  if ($package->isa('Cpanel::JSON::XS')) {
    $self->decoder(sub {
      my ($text) = @_;
      $package->decod
coder(sub {
      my ($data) = @_;
      $package->encode($data);
    });
  }

  # JSON::XS
  if ($package->isa('JSON::XS')) {
    $self->decoder(sub {
      my ($text) = @_;
      $package->decode($t
Venus ( A/AW/AWNCORP/Venus-4.15.tar.gz, AWNCORP, 2023; MetaCPAN )
Venus/lib/Venus/Role/Printable.pm ( view source; MetaCPAN )
s) = @_;

  return $self->printer($self->dump(@args));
}

sub print_json {
  my ($self, $method, @args) = @_;

  require Venus::Json;

  my $value = $method ? scalar($self->$method(@args)) : $self;

 
) {
    $value = $value->value if $value->isa('Venus::Kind');
  }

  return $self->printer(Venus::Json->new($value)->encode);
}

sub print_pretty {
  my ($self, @args) = @_;

  return $self->printer($
 @_;

  return $self->printer($self->dump(@args), "\n");
}

sub say_json {
  my ($self, $method, @args) = @_;

  require Venus::Json;

  my $value = $method ? scalar($self->$method(@args)) : $self;

 
Venus ( A/AW/AWNCORP/Venus-4.15.tar.gz, AWNCORP, 2023; MetaCPAN )
Venus/lib/Venus/Run.pm ( view source; MetaCPAN )
$base = $FILE =~ s/\.\w+$//r;

  return $ENV{VENUS_FILE} || (grep -f, map "$base.$_", qw(yaml yml json js perl pl))[0]
}

state $footer = <<"EOF";
Config:

Here is an example configuration in YAML (e.
N

auto Venus::Run sub {
  my ($self) = @_;

  my $tryer = $self->tryer;

  $tryer->catch('Venus::Json::Error', sub {
    $self->log_error($_->render);
  });

  $tryer->catch('Venus::Path::Error', sub
 conf example 5

  # given: synopsis

  package main;

  # e.g. current directory has only a .vns.json file

  my $conf = $run->conf;

  # {...}

=back

=over 4

=item conf example 6

  # given: synop
Venus ( A/AW/AWNCORP/Venus-4.15.tar.gz, AWNCORP, 2023; MetaCPAN )
Venus/lib/Venus/Yaml.pm ( view source; MetaCPAN )
     local $YAML::XS::Boolean = 'JSON::PP';
      YAML::XS::Load($text);
    });
    $self->encoder(sub {
      my ($data) = @_;
      local $YAML::XS::Boolean = 'JSON::PP';
      YAML::XS::Dump($data
= @_;
      YAML::PP->new(boolean => 'JSON::PP')->load_string($text);
    });
    $self->encoder(sub {
      my ($data) = @_;
      YAML::PP->new(boolean => 'JSON::PP')->dump_string($data);
    });
  
= @_;
      YAML::PP->new(boolean => 'JSON::PP')->load_string($text);
    });
    $self->encoder(sub {
      my ($data) = @_;
      YAML::PP->new(boolean => 'JSON::PP')->dump_string($data);
    });
  
Venus ( A/AW/AWNCORP/Venus-4.15.tar.gz, AWNCORP, 2023; MetaCPAN )
Venus/lib/Venus/Config.pm ( view source; MetaCPAN )
read_json_file',
  json => 'read_json_file',
  perl => 'read_perl_file',
  pl => 'read_perl_file',
  yaml => 'read_yaml_file',
  yml => 'read_yaml_file',
};

state $writer = {
  js => 'write_json_file
',
  json => 'write_json_file',
  perl => 'write_perl_file',
  pl => 'write_perl_file',
  yaml => 'write_yaml_file',
  yml => 'write_yaml_file',
};

# BUILDERS

sub build_args {
  my ($self, $data) = 
elf->class->new;
  }
}

sub read_json {
  my ($self, $data) = @_;

  require Venus::Json;

  return $self->class->new(Venus::Json->new->decode($data));
}

sub read_json_file {
  my ($self, $file) = @_
Venus ( A/AW/AWNCORP/Venus-4.15.tar.gz, AWNCORP, 2023; MetaCPAN )
Venus/lib/Venus/Kind/Value.pm ( view source; MetaCPAN )
ub mutate {
  my ($self, $code, @args) = @_;

  return $self->set($self->$code(@args));
}

sub TO_JSON {
  my ($self) = @_;

  return $self->get;
}

1;



=head1 NAME

Venus::Kind::Value - Value Base 
Venus ( A/AW/AWNCORP/Venus-4.15.tar.gz, AWNCORP, 2023; MetaCPAN )
Venus/lib/Venus/Boolean.pm ( view source; MetaCPAN )
my ($value) = @_;

  require JSON::PP;

  my $isdual = Scalar::Util::isdual($value);

  if ($isdual && ("$value" && "$value" == "1" && ($value + 0) == 1)) {
    return JSON::PP::true();
  }
  elsif ($
isdual && (("$value" eq "") || ("$value" == "0" && ($value + 0) == 0))) {
    return JSON::PP::false();
  }
  else {
    return $value;
  }
}

sub TO_BOOL_TFO {
  my ($value) = @_;

  my $isdual = Sca
$value + 0) == 0))) {
    return Venus::False->new;
  }
  else {
    return $value;
  }
}

sub TO_JSON {
  my ($self) = @_;

  no strict 'refs';

  return $self->get ? $true_ref : $false_ref;
}

sub T
Venus ( A/AW/AWNCORP/Venus-4.15.tar.gz, AWNCORP, 2023; MetaCPAN )
Venus/lib/Venus.pm ( view source; MetaCPAN )
=> 1,
    hash => 1,
    hashref => 1,
    is_bool => 1,
    is_false => 1,
    is_true => 1,
    json => 1,
    list => 1,
    load => 1,
    log => 1,
    make => 1,
    match => 1,
    merge => 1,
>is_true;
}

sub json (;$$) {
  my ($code, $data) = @_;

  require Venus::Json;

  if (!$code) {
    return Venus::Json->new;
  }

  if (lc($code) eq 'decode') {
    return Venus::Json->new->decode($d
ata);
  }

  if (lc($code) eq 'encode') {
    return Venus::Json->new(value => $data)->encode;
  }

  return fault(qq(Invalid "json" action "$code"));
}

sub list (@) {
  my (@args) = @_;

  return ma

Powered by Groonga
Maintained by Kenichi Ishigaki <ishigaki@cpan.org>. If you find anything, submit it on GitHub.