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 )