App-Filite-Client
view release on metacpan or search on metacpan
"requires" : {
"Carp" : "0",
"Class::Tiny" : "0",
"File::XDG" : "0",
"Getopt::Long" : "0",
"HTTP::Tiny" : "0",
"HTTP::Tiny::Multipart" : "0",
"JSON::PP" : "0",
"MIME::Base64" : "0",
"Path::Tiny" : "0",
"namespace::autoclean" : "0",
"perl" : "5.010001"
}
},
"test" : {
"requires" : {
"Test2::Plugin::BailOnFail" : "0",
"Test2::Require::AuthorTesting" : "0",
"Test2::Require::Module" : "0",
"Test2::Tools::Spec" : "0",
"Test2::V0" : "0"
requires:
Carp: '0'
Class::Tiny: '0'
File::XDG: '0'
Getopt::Long: '0'
HTTP::Tiny: '0'
HTTP::Tiny::Multipart: '0'
JSON::PP: '0'
MIME::Base64: '0'
Path::Tiny: '0'
namespace::autoclean: '0'
perl: '5.010001'
resources:
Identifier: http://purl.org/NET/cpan-uri/dist/App-Filite-Client/project
bugtracker: https://github.com/tobyink/p5-app-filite-client/issues
homepage: https://metacpan.org/release/App-Filite-Client
license: http://dev.perl.org/licenses/
repository: git://github.com/tobyink/p5-app-filite-client.git
version: '0.001001'
x_provides_scripts:
filite-client:
Makefile.PL view on Meta::CPAN
runtime => {
requires => {
"Carp" => 0,
"Class::Tiny" => 0,
"File::XDG" => 0,
"Getopt::Long" => 0,
"HTTP::Tiny" => 0,
"HTTP::Tiny::Multipart" => 0,
"JSON::PP" => 0,
"MIME::Base64" => 0,
"namespace::autoclean" => 0,
"Path::Tiny" => 0,
"perl" => 5.010001,
},
},
test => {
requires => {
"Test2::Plugin::BailOnFail" => 0,
"Test2::Require::AuthorTesting" => 0,
"Test2::Require::Module" => 0,
"Test2::Tools::Spec" => 0,
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<http://dev.perl.org/licenses/>
dc:title "the same terms as the perl 5 programming language system itself".
<http://purl.org/NET/cpan-uri/dist/App-Filite-Client/project>
a doap:Project;
dc:contributor <http://purl.org/NET/cpan-uri/person/tobyink>;
doap-deps:develop-recommendation [ doap-deps:on "Dist::Inkt 0.001"^^doap-deps:CpanId ];
doap-deps:runtime-requirement [ doap-deps:on "perl 5.010001"^^doap-deps:CpanId ], [ doap-deps:on "Carp"^^doap-deps:CpanId ], [
doap-deps:on "namespace::autoclean"^^doap-deps:CpanId;
], [ doap-deps:on "File::XDG"^^doap-deps:CpanId ], [ doap-deps:on "Getopt::Long"^^doap-deps:CpanId ], [ doap-deps:on "HTTP::Tiny"^^doap-deps:CpanId ], [
doap-deps:on "HTTP::Tiny::Multipart"^^doap-deps:CpanId;
], [ doap-deps:on "JSON::PP"^^doap-deps:CpanId ], [ doap-deps:on "MIME::Base64"^^doap-deps:CpanId ], [ doap-deps:on "Path::Tiny"^^doap-deps:CpanId ], [ doap-deps:on "Class::Tiny"^^doap-deps:CpanId ];
doap-deps:test-requirement [ doap-deps:on "Test2::V0"^^doap-deps:CpanId ], [ doap-deps:on "Test2::Tools::Spec"^^doap-deps:CpanId ], [
doap-deps:on "Test2::Require::AuthorTesting"^^doap-deps:CpanId;
], [
doap-deps:on "Test2::Require::Module"^^doap-deps:CpanId;
], [
doap-deps:on "Test2::Plugin::BailOnFail"^^doap-deps:CpanId;
];
lib/App/Filite/Client.pm view on Meta::CPAN
use MIME::Base64 qw( encode_base64 );
use Path::Tiny qw( path );
use Class::Tiny {
password => sub { croak "Missing option: password" },
server => sub { croak "Missing option: server" },
useragent => sub { shift->_build_useragent },
errors => sub { 0 },
};
use namespace::autoclean;
sub new_from_config {
my ( $class ) = ( shift );
state $xdg = File::XDG->new( name => 'filite-client', api => 1 );
my $config_file = $ENV{FILITE_CLIENT_CONFIG} // $xdg->config_home->child( 'config.json' );
if ( not ref $config_file ) {
$config_file = path( $config_file );
}
croak "Expected config file: $config_file" unless $config_file->is_file;
t/00start.t view on Meta::CPAN
my @modules = qw(
Carp
Class::Tiny
File::XDG
Getopt::Long
HTTP::Tiny
HTTP::Tiny::Multipart
JSON::PP
MIME::Base64
Path::Tiny
namespace::autoclean
Test2::V0
);
diag "\n####";
for my $mod ( sort @modules ) {
eval "require $mod;";
diag sprintf( '%-20s %s', $mod, $mod->VERSION );
}
diag "####";
( run in 0.442 second using v1.01-cache-2.11-cpan-4d50c553e7e )