The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Net::API::CPAN::Module - Meta CPAN API Module Class

SYNOPSIS

    use Net::API::CPAN::Module;
    my $obj = Net::API::CPAN::Module->new( {
      abstract => "Japan Folklore Object Class",
      author => "MOMOTARO",
      authorized => \1,
      binary => \0,
      date => "2023-07-29T05:10:12",
      deprecated => \0
    ,
      description => "Folklore::Japan is a totally fictious perl 5 module designed to serve as an example for the MetaCPAN API.",
      directory => \0
    ,
      dist_fav_count => 1,
      distribution => "Folklore::Japan",
      documentation => "Folklore::Japan",
      download_url => "https://cpan.metacpan.org/authors/id/M/MO/MOMOTARO/Folklore-Japan-v1.2.3.tar.gz",
      id => "l0tsOf1192fuN100",
      indexed => \1
    ,
      level => 1,
      maturity => "released",
      mime => "text/x-script.perl-module",
      module => [
        {
          associated_pod => "MOMOTARO/Folklore-Japan-v1.2.3/lib/Folklore/Japan.pm",
          authorized => \1
    ,
          indexed => \1
    ,
          name => "Folklore::Japan",
          version => "v1.2.3",
          version_numified => "1.002003",
        },
      ],
      name => "Japan.pm",
      path => "lib/Folklore/Japan.pm",
      pod => "NAME Folklore::Japan - Japan Folklore Object Class VERSION version v1.2.3 SYNOPSIS use Folklore::Japan; my \$fun = Folklore::Japan->new; DESCRIPTION This is an imaginary class object to Japan folklore to only serve as dummy example AUTHOR Momo Taro <momo.taro\@example.jp> COPYRIGHT AND LICENSE This software is copyright (c) 2023 by Okayama, Inc.. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.",
      pod_lines => [
        [
          1192,
          1868,
        ],
      ],
      release => "Folklore-Japan-v1.2.3",
      sloc => 202,
      slop => 637,
      stat => {
        gid => 12345,
        mode => 33188,
        mtime => 1690618397,
        size => 10240,
        uid => 16790,
      },
      status => "latest",
      suggest => {
        input => [
          "Folklore::Japan",
        ],
        payload => {
          doc_name => "Folklore::Japan",
        },
        weight => 985,
      },
      version => "v1.2.3",
      version_numified => "1.002003",
    } ) || die( Net::API::CPAN::Module->error );
    
    my $string = $obj->abstract;
    my $string = $obj->author;
    my $bool = $obj->authorized;
    my $bool = $obj->binary;
    my $date = $obj->date;
    my $bool = $obj->deprecated;
    my $string = $obj->description;
    my $string = $obj->dir;
    my $bool = $obj->directory;
    my $num = $obj->dist_fav_count;
    my $string = $obj->distribution;
    my $string = $obj->documentation;
    my $uri = $obj->download_url;
    my $string = $obj->id;
    my $bool = $obj->indexed;
    my $num = $obj->level;
    my $string = $obj->maturity;
    my $uri = $obj->metacpan_url;
    my $string = $obj->mime;
    my $array = $obj->module;
    foreach my $this ( @$array )
    {
        my $scalar = $this->associated_pod;
        my $boolean = $this->authorized;
        my $boolean = $this->indexed;
        my $scalar = $this->name;
        my $scalar = $this->version;
        my $number = $this->version_numified;
    }
    my $string = $obj->name;
    my $str = $obj->object;
    my $this = $obj->package;
    my $string = $obj->path;
    my $this = $obj->permission;
    my $string = $obj->pod;
    my $string = $obj->pod_lines;
    my $string = $obj->release;
    my $num = $obj->sloc;
    my $num = $obj->slop;
    my $this = $obj->stat;
    my $integer = $obj->stat->gid;
    my $integer = $obj->stat->mode;
    my $datetime = $obj->stat->mtime;
    my $integer = $obj->stat->size;
    my $integer = $obj->stat->uid;
    my $string = $obj->status;
    my $this = $obj->suggest;
    my $array = $obj->suggest->input;
    my $hash = $obj->suggest->payload;
    my $integer = $obj->suggest->weight;
    my $vers = $obj->version;
    my $num = $obj->version_numified;

VERSION

    v0.1.0

DESCRIPTION

This class serves to retrieve and manipulate modules.

It inherits from Net::API::CPAN::Generic

CONSTRUCTOR

new

Provided with an hash or hash reference of parameters, and this instantiates a new Net::API::CPAN::Module object.

The parameters that can be provided bear the same name and supports the same values as the methods below.

METHODS

abstract

    $obj->abstract( "Japan Folklore Object Class" );
    my $string = $obj->abstract;

Sets or gets a string and returns a scalar object, even if there is no value.

author

    $obj->author( "MOMOTARO" );
    my $string = $obj->author;

Sets or gets a string and returns a scalar object, even if there is no value.

authorized

    $obj->authorized(1);
    my $bool = $obj->authorized;

Sets or gets a boolean value, and returns a boolean object or undef if no value is set.

binary

    $obj->binary(1);
    my $bool = $obj->binary;

Sets or gets a boolean value, and returns a boolean object or undef if no value is set.

date

    $obj->date( "2023-07-29T05:10:12" );
    my $datetime_obj = $obj->date;

Sets or gets a datetime value, and returns a DateTime object that stringifies to the format that was provided with the string set (usally an ISO 8601 datetime format) or undef if no value is set.

deprecated

    $obj->deprecated(1);
    my $bool = $obj->deprecated;

Sets or gets a boolean value, and returns a boolean object or undef if no value is set.

description

    $obj->description( "Folklore::Japan is a totally fictious perl 5 module designed to serve as an example for the MetaCPAN API." );
    my $string = $obj->description;

Sets or gets a string and returns a scalar object, even if there is no value.

dir

Sets or gets a string and returns a scalar object, even if there is no value.

directory

    $obj->directory(1);
    my $bool = $obj->directory;

Sets or gets a boolean value, and returns a boolean object or undef if no value is set.

dist_fav_count

    $obj->dist_fav_count(1);
    my $number = $obj->dist_fav_count;

Sets or gets an integer value, and returns a number object or undef if no value is set.

distribution

    $obj->distribution( "Folklore::Japan" );
    my $string = $obj->distribution;

Sets or gets a string and returns a scalar object, even if there is no value.

documentation

    $obj->documentation( "Folklore::Japan" );
    my $string = $obj->documentation;

Sets or gets a string and returns a scalar object, even if there is no value.

download_url

    $obj->download_url( "https://cpan.metacpan.org/authors/id/M/MO/MOMOTARO/Folklore-Japan-v1.2.3.tar.gz" );
    my $uri = $obj->download_url;

Sets or gets an URI, and returns an URI object or undef if no value is set.

id

    $obj->id( "l0tsOf1192fuN100" );
    my $string = $obj->id;

Sets or gets a string and returns a scalar object, even if there is no value.

indexed

    $obj->indexed(1);
    my $bool = $obj->indexed;

Sets or gets a boolean value, and returns a boolean object or undef if no value is set.

level

    $obj->level(1);
    my $number = $obj->level;

Sets or gets an integer value, and returns a number object or undef if no value is set.

maturity

    $obj->maturity( "released" );
    my $string = $obj->maturity;

Sets or gets a string and returns a scalar object, even if there is no value.

metacpan_url

Returns a link, as an URI object, to the module's page on MetaCPAN, or undef if no module author, release. or path is currently set.

mime

    $obj->mime( "text/x-script.perl-module" );
    my $string = $obj->mime;

Sets or gets a string and returns a scalar object, even if there is no value.

module

    $obj->module( [
      {
        associated_pod => "MOMOTARO/Folklore-Japan-v1.2.3/lib/Folklore/Japan.pm",
        authorized => \1,
        indexed => $VAR1->[0]{authorized},
        name => "Folklore::Japan",
        version => "v1.2.3",
        version_numified => "1.002003",
      },
    ] );
    my $array = $obj->module;
    foreach my $this ( @$array )
    {
        $this->associated_pod( "MOMOTARO/Folklore-Japan-v1.2.3/lib/Folklore/Japan.pm" );
        my $scalar = $this->associated_pod;
        $this->authorized( \1 );
        my $boolean = $this->authorized;
        $this->indexed( \1 );
        my $boolean = $this->indexed;
        $this->name( "Folklore::Japan" );
        my $scalar = $this->name;
        $this->version( "v1.2.3" );
        my $scalar = $this->version;
        $this->version_numified( 1.002003 );
        my $number = $this->version_numified;
    }

Sets or gets an array of dynamic class objects with class name Net::API::CPAN::Module::Module and having the folowing properties also accessible as methods, and returns an array object even if there is no value.

A Net::API::CPAN::Module::Module object will be instantiated with each value from the array provided and replace said value.

  • associated_pod scalar_as_object

  • authorized boolean (boolean object)

  • indexed boolean (boolean object)

  • name scalar_as_object

  • version scalar_as_object

  • version_numified number

name

    $obj->name( "Japan.pm" );
    my $string = $obj->name;

Sets or gets a string and returns a scalar object, even if there is no value.

object

Returns the object type for this class, which is module

package

Returns an Net::API::CPAN::Package object for this module, or upon error, sets an error object and returns undef in scalar context or an empty list in list context.

An error is returned if the documentation property is not set.

path

    $obj->path( "lib/Folklore/Japan.pm" );
    my $string = $obj->path;

Sets or gets a string and returns a scalar object, even if there is no value.

permission

Returns an Net::API::CPAN::Permission object for this module, or upon error, sets an error object and returns undef in scalar context or an empty list in list context.

An error is returned if the documentation property is not set.

pod

    $obj->pod( "NAME Folklore::Japan - Japan Folklore Object Class VERSION version v1.2.3 SYNOPSIS use Folklore::Japan; my \$fun = Folklore::Japan->new; DESCRIPTION This is an imaginary class object to Japan folklore to only serve as dummy example AUTHOR Momo Taro <momo.taro\@example.jp> COPYRIGHT AND LICENSE This software is copyright (c) 2023 by Okayama, Inc.. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself." );
    my $string = $obj->pod;

Sets or gets a string and returns a scalar object, even if there is no value.

pod_lines

    $obj->pod_lines( [
      [
        1192,
        1868,
      ],
    ] );
    my $string = $obj->pod_lines;

Sets or gets a string and returns a scalar object, even if there is no value.

release

    $obj->release( "Folklore-Japan-v1.2.3" );
    my $string = $obj->release;

Sets or gets a string and returns a scalar object, even if there is no value.

sloc

    $obj->sloc(202);
    my $number = $obj->sloc;

Sets or gets an integer value, and returns a number object or undef if no value is set.

slop

    $obj->slop(637);
    my $number = $obj->slop;

Sets or gets an integer value, and returns a number object or undef if no value is set.

stat

    $obj->stat( {
      gid => 12345,
      mode => 33188,
      mtime => 1690618397,
      size => 10240,
      uid => 16790,
    } );
    my $this = $obj->stat;
    $obj->stat->gid( 12345 );
    my $integer = $obj->stat->gid;
    $obj->stat->mode( 33188 );
    my $integer = $obj->stat->mode;
    $obj->stat->mtime( 1690618397 );
    my $datetime = $obj->stat->mtime;
    $obj->stat->size( 10240 );
    my $integer = $obj->stat->size;
    $obj->stat->uid( 16790 );
    my $integer = $obj->stat->uid;

Sets or gets a dynamic class object with class name Net::API::CPAN::Module::Stat and having the folowing properties also accessible as methods, and returns an object from such class, or undef if no value was provided.

status

    $obj->status( "latest" );
    my $string = $obj->status;

Sets or gets a string and returns a scalar object, even if there is no value.

suggest

    $obj->suggest( {
      input => [
        "Folklore::Japan",
      ],
      payload => {
        doc_name => "Folklore::Japan",
      },
      weight => 985,
    } );
    my $this = $obj->suggest;
    $obj->suggest->input( [
      "Folklore::Japan",
    ] );
    my $array = $obj->suggest->input;
    $obj->suggest->payload( {
      doc_name => "Folklore::Japan",
    } );
    my $hash = $obj->suggest->payload;
    $obj->suggest->weight( 985 );
    my $integer = $obj->suggest->weight;

Sets or gets a dynamic class object with class name Net::API::CPAN::Module::Suggest and having the folowing properties also accessible as methods, and returns an object from such class, or undef if no value was provided.

version

    $obj->version( "v1.2.3" );
    my $version = $obj->version;

Sets or gets a version value and returns a version object using Changes::Version.

version_numified

    $obj->version_numified("1.002003");
    my $number = $obj->version_numified;

Sets or gets a float value, and returns a number object or undef if no value is set.

API SAMPLE

    {
       "abstract" : "Japan Folklore Object Class",
       "author" : "MOMOTARO",
       "authorized" : true,
       "binary" : false,
       "date" : "2023-07-29T05:10:12",
       "deprecated" : false,
       "description" : "Folklore::Japan is a totally fictious perl 5 module designed to serve as an example for the MetaCPAN API.",
       "directory" : false,
       "dist_fav_count" : 1,
       "distribution" : "Folklore::Japan",
       "documentation" : "Folklore::Japan",
       "download_url" : "https://cpan.metacpan.org/authors/id/M/MO/MOMOTARO/Folklore-Japan-v1.2.3.tar.gz",
       "id" : "l0tsOf1192fuN100",
       "indexed" : true,
       "level" : 1,
       "maturity" : "released",
       "mime" : "text/x-script.perl-module",
       "module" : [
          {
             "associated_pod" : "MOMOTARO/Folklore-Japan-v1.2.3/lib/Folklore/Japan.pm",
             "authorized" : true,
             "indexed" : true,
             "name" : "Folklore::Japan",
             "version" : "v1.2.3",
             "version_numified" : 1.002003
          }
       ],
       "name" : "Japan.pm",
       "path" : "lib/Folklore/Japan.pm",
       "pod" : "NAME Folklore::Japan - Japan Folklore Object Class VERSION version v1.2.3 SYNOPSIS use Folklore::Japan; my $fun = Folklore::Japan->new; DESCRIPTION This is an imaginary class object to Japan folklore to only serve as dummy example AUTHOR Momo Taro <momo.taro@example.jp> COPYRIGHT AND LICENSE This software is copyright (c) 2023 by Okayama, Inc.. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.",
       "pod_lines" : [
          [
             1192,
             1868
          ]
       ],
       "release" : "Folklore-Japan-v1.2.3",
       "sloc" : 202,
       "slop" : 637,
       "stat" : {
          "gid" : 12345,
          "mode" : 33188,
          "mtime" : 1690618397,
          "size" : 10240,
          "uid" : 16790
       },
       "status" : "latest",
       "suggest" : {
          "weight" : 985,
          "payload" : {
             "doc_name" : "Folklore::Japan"
          },
          "input" : [
             "Folklore::Japan"
          ]
       },
       "version" : "v1.2.3",
       "version_numified" : "1.002003"
    }

AUTHOR

Jacques Deguest <jack@deguest.jp>

SEE ALSO

Net::API::CPAN, Net::API::CPAN::Activity, Net::API::CPAN::Author, Net::API::CPAN::Changes, Net::API::CPAN::Changes::Release, Net::API::CPAN::Contributor, Net::API::CPAN::Cover, Net::API::CPAN::Diff, Net::API::CPAN::Distribution, Net::API::CPAN::DownloadUrl, Net::API::CPAN::Favorite, Net::API::CPAN::File, Net::API::CPAN::Module, Net::API::CPAN::Package, Net::API::CPAN::Permission, Net::API::CPAN::Rating, Net::API::CPAN::Release

MetaCPAN::API, MetaCPAN::Client

https://github.com/metacpan/metacpan-api/blob/master/docs/API-docs.md

COPYRIGHT & LICENSE

Copyright(c) 2023 DEGUEST Pte. Ltd.

All rights reserved

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.