KubeBuilder
view release on metacpan or search on metacpan
lib/KubeBuilder.pm view on Meta::CPAN
name => $def_name,
);
#$self->_get_subobjects_in(\%objects, $def_name, $objects{ $ob_name });
}
return \%objects;
}
);
has method_groups => (is => 'ro', isa => 'HashRef[KubeBuilder::Group]', lazy => 1, default => sub {
my $self = shift;
my %groups = ();
foreach my $m (@{ $self->method_list }) {
my $group_name = $m->group;
$groups{ $group_name } = KubeBuilder::Group->new(methods => [], name => $group_name) if (not defined $groups{ $group_name });
push @{ $groups{ $group_name }->methods }, $m;
}
return \%groups;
});
has method_groups_list => (is => 'ro', isa => 'ArrayRef[KubeBuilder::Group]', lazy => 1, default => sub {
my $self = shift;
[ map { $self->method_groups->{ $_ } } sort keys %{ $self->method_groups } ];
});
has method_list => (is => 'ro', isa => 'ArrayRef[KubeBuilder::Method]', lazy => 1, default => sub {
my $self = shift;
[ map { $self->methods->{ $_ } } sort keys %{ $self->methods } ];
});
has methods => (
is => 'ro',
isa => 'HashRef[KubeBuilder::Method]',
lazy => 1,
default => sub {
my $self = shift;
lib/KubeBuilder/Group.pm view on Meta::CPAN
package KubeBuilder::Group;
use Moose;
has name => (is => 'ro', isa => 'Str', required => 1);
has methods => (is => 'ro', isa => 'ArrayRef[KubeBuilder::Method]', required => 1);
# method_list only contains one method for each
has method_list => (is => 'ro', isa => 'ArrayRef[KubeBuilder::Method]', lazy => 1, default => sub {
my $self = shift;
my %methods = ();
foreach my $method (@{ $self->methods }) {
$methods{ $method->call_classname } = $method;
}
return [ map { $methods{ $_ } } sort keys %methods ];
});
1;
lib/KubeBuilder/Method.pm view on Meta::CPAN
return 'Int';
} elsif ($type eq 'boolean') {
return 'Bool';
} elsif ($type eq 'number') {
return 'Num';
} else {
die "Unknown type $type";
}
}
has common_parameters => (is => 'ro', isa => 'ArrayRef', default => sub { [] });
has parameters => (is => 'ro', isa => 'ArrayRef[HashRef]', lazy => 1, default => sub {
my $self = shift;
my @params;
my @parameters = (defined $self->operation->parameters) ? @{ $self->operation->parameters } : ();
my @common_parameters = (defined $self->common_parameters) ? @{ $self->common_parameters } : ();
foreach my $param (@parameters, @common_parameters) {
push @params, {
name => $param->{ name },
required => $param->{ required },
perl_type => $self->swagger_to_perltype($param),
in => $param->{ in },
};
}
return \@params;
});
has type_list => (is => 'ro', isa => 'ArrayRef[Str]', lazy => 1, default => sub {
my $self = shift;
my %types = ( map { ($_->{ perl_type } => 1) } @{ $self->parameters } );
return [ sort keys %types ];
});
sub filter_parameters {
my $type = shift;
return sub {
my $self = shift;
return [
grep { $_->{ in } eq $type } @{ $self->parameters }
];
}
}
has query_params => (is => 'ro', isa => 'ArrayRef[HashRef]', lazy => 1, default => filter_parameters('query'));
has url_params => (is => 'ro', isa => 'ArrayRef[HashRef]', lazy => 1, default => filter_parameters('path'));
has body_params => (is => 'ro', isa => 'ArrayRef[HashRef]', lazy => 1, default => filter_parameters('body'));
1;
lib/KubeBuilder/Object.pm view on Meta::CPAN
pop @ns;
@ns = map {
my $ns = $_;
$ns = (defined $ns_mappings->{ $ns }) ? $ns_mappings->{ $ns } : $ns;
substr($ns, 0, 1) = uc substr($ns, 0, 1);
$ns;
} @ns;
return join '::', @ns;
});
has _split_name => (is => 'ro', isa => 'ArrayRef[Str]', lazy => 1, default => sub {
my $self = shift;
my @parts = split /\./, $self->name;
return \@parts;
});
has fully_namespaced => (is => 'ro', lazy => 1, isa => 'Str', default => sub {
my $self = shift;
return join '::', $self->namespace, $self->object_name;
});
( run in 0.685 second using v1.01-cache-2.11-cpan-5f2e87ce722 )