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

WebService::MorphIO - Perl class to communication with morph.io.

SYNOPSIS

 use WebService::MorphIO;

 my $obj = WebService::MorphIO->new(%parameters);
 $obj->csv('output.csv');
 $obj->sqlite('output.sqlite');

METHODS

new(%parameters)

Constructor.

  • api_key

     Morph.io API key.
     It is required.
     Default value is undef.
  • project

     Project.
     It is required.
     Default value is undef.
  • select

     Select.
     It is usable for csv() method.
     Default value is 'SELECT * FROM data'.
  • web_uri

     Web URI of service.
     Default value is 'https://morph.io/'.
csv($output_file)
 Get CSV file and save to output file.
 It is affected by 'select' parameter.
 Returns undef.
sqlite($output_file)
 Get sqlite file and save to output file.
 Returns undef.

ERRORS

 new():
         Parameter 'api_key' is required.
         Parameter 'project' is required.
         From Class::Utils::set_params():
                 Unknown parameter '%s'.

 csv():
         Cannot get '%s'.

 sqlite():
         Cannot get '%s'.

EXAMPLE

 use strict;
 use warnings;

 use File::Temp qw(tempfile);
 use Perl6::Slurp qw(slurp);
 use WebService::MorphIO;

 # Arguments.
 if (@ARGV < 2) {
         print STDERR "Usage: $0 api_key project\n";
         exit 1;
 }
 my $api_key = $ARGV[0];
 my $project = $ARGV[1];

 # Temp file.
 my (undef, $temp_file) = tempfile();

 # Object.
 my $obj = WebService::MorphIO->new(
         'api_key' => $api_key,
         'project' => $project,
 );

 # Save CSV file.
 $obj->csv($temp_file);

 # Print to output.
 print slurp($temp_file);

 # Clean.
 unlink $temp_file;

 # Output:
 # Usage: ./examples/ex1.pl api_key project

DEPENDENCIES

Class::Utils, Encode, Error::Pure, IO::Barf, LWP::Simple, URI, URI::Escape.

REPOSITORY

https://github.com/michal-josef-spacek/WebService-MorphIO

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

© 2014-2020 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.04