diff --git a/MANIFEST b/MANIFEST index 9dc8f86b910f69f3bea87cb8495eadfd56e6b836..81188d91bb1c6b90acf3e56fe3a7bba79a9c1923 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,6 +1,11 @@ Changes Makefile.PL MANIFEST -README -t/RedMiner-API.t -lib/RedMiner/API.pm +README.md +t/00-use.t +t/01-dispatching.t +t/02-realworld.t +t/03-realworld-no-wrapping.t +t/04-pod.t +t/05-pod-coverage.t +lib/Redminer.pm diff --git a/Makefile.PL b/Makefile.PL index cd80fa46c1a772c71dde4aaa64f66286c8aa03c0..ed5a7b3fcaebf83af1f9edf24b4f87df94db8470 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -2,8 +2,8 @@ use 5.010; use ExtUtils::MakeMaker; WriteMakefile( - NAME => 'RedMiner::API', - VERSION_FROM => 'lib/RedMiner/API.pm', + NAME => 'Redminer', + VERSION_FROM => 'lib/Redminer.pm', PREREQ_PM => { 'URI' => 0, 'URI::QueryParam' => 0, @@ -11,7 +11,7 @@ WriteMakefile( 'JSON::XS' => 0, }, ($] >= 5.005 ? ( ## Add these new keywords supported since 5.005 - ABSTRACT_FROM => 'lib/RedMiner/API.pm', + ABSTRACT_FROM => 'lib/Redminer.pm', AUTHOR => 'Anton Soldatov <igelhaus@gmail.com>') : ()), ); diff --git a/README.md b/README.md index e786bfb582abf5f914875226671ce420c4c7ece7..1d55a44a08c3edd6091d054bdd28f268cf9951af 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,8 @@ Currently the project consists of two parts: 1. `redminer` script itself. For now it supports only creating projects with subprojects from a given layout, but in the future it's aimed for various RedMine automation tasks -2. `RedMiner::API` module, a Perl binding to [RedMine REST API](http://www.redmine.org/projects/redmine/wiki/Rest_api). -Please refer to [built-in POD documentation](../master/lib/RedMiner/API.pm) for more details +2. `Redminer` module, a Perl binding to [RedMine REST API](http://www.redmine.org/projects/redmine/wiki/Rest_api). +Please refer to [built-in POD documentation](../master/lib/Redminer.pm) for more details ## Non-core Dependencies diff --git a/lib/RedMiner/API.pm b/lib/Redminer.pm similarity index 95% rename from lib/RedMiner/API.pm rename to lib/Redminer.pm index d851bb1cc629d919a27bdbfec556a935103c68eb..0c6285517237a0e7d388b57bb24ca506004b1216 100644 --- a/lib/RedMiner/API.pm +++ b/lib/Redminer.pm @@ -1,4 +1,4 @@ -package RedMiner::API; +package Redminer; use 5.010; use strict; @@ -18,17 +18,17 @@ use Encode qw/decode/; =head1 NAME -RedMiner::API - Wrapper for RedMine REST API (http://www.redmine.org/projects/redmine/wiki/Rest_api). +Redminer - Wrapper for RedMine REST API (http://www.redmine.org/projects/redmine/wiki/Rest_api). =head1 SYNOPSIS - use RedMiner::API; - my $redminer = RedMiner::API->new( + use Redminer; + my $redminer = Redminer->new( host => 'example.com/redmine', key => 'xxx', ); # password-based auth is also supported: - #my $redminer = RedMiner::API->new( + #my $redminer = Redminer->new( # host => 'example.com/redmine', # user => 'redminer', # pass => 'p@s$w0rD', @@ -37,7 +37,7 @@ RedMiner::API - Wrapper for RedMine REST API (http://www.redmine.org/projects/re my $project = $redminer->createProject({ identifier => 'my-project', name => 'My Project', - description => 'My project, created with *RedMiner::API*', + description => 'My project, created with *Redminer*', }); if (!$project) { say STDERR 'Error(s) creating project: ', join("\n", map { $_ } $redminer->errorDetails->{errors}); @@ -52,7 +52,7 @@ RedMiner::API - Wrapper for RedMine REST API (http://www.redmine.org/projects/re my $issue = $redminer->createIssue({ project_id => $project_id, - subject => 'Test issue for RedMiner::API', + subject => 'Test issue for Redminer', description => 'Issue description', }); @@ -145,7 +145,7 @@ be retrieved like this: =head2 new - my $redminer = RedMiner::API->new(%options); + my $redminer = Redminer->new(%options); Following options are recognized: @@ -188,7 +188,7 @@ By default RedMine API requires you to wrap you object data like this: By default this module follows this convention. However, if you specify something like - my $redminer = RedMiner::API->new( + my $redminer = Redminer->new( host => 'example.com/redmine', key => 'xxx', no_wrapper_object => 1, @@ -510,13 +510,13 @@ between this module and Redmine::API are: =item * B<Dependencies>. Redmine::API depends on Moo and REST::Client which in turn depends on -LWP::UserAgent, URI and possibly others. RedMiner::API uses pure Perl OOP and +LWP::UserAgent, URI and possibly others. Redminer uses pure Perl OOP and depends directly on LWP::UserAgent and URI. =item * B<Call conventions>. Although both modules use dynamic dispatching for building actual HTTP -requests, they do it in a different manner. In particular, RedMiner::API tries to +requests, they do it in a different manner. In particular, Redminer tries to dispatch a single method name without using chains of interrim objects as Redmine::API does. =back diff --git a/redminer b/redminer index d3b81c5c080a7802ae4f6865a1e05b89c554de83..d7d8592bfb4096933be763ef3e3c08f9c50ddf6e 100755 --- a/redminer +++ b/redminer @@ -11,7 +11,7 @@ use Encode qw/encode/; use Getopt::Long; use Config::IniFiles; -use RedMiner::API; +use Redminer; my $conf_fname = $ENV{HOME} . '/.redminer/redminer.conf'; my $layout_fname = $ENV{HOME} . '/.redminer/default-layout.conf'; @@ -44,7 +44,7 @@ if (!$layout) { warn 'Unable to access layout config'; } -my $redminer = RedMiner::API->new( +my $redminer = Redminer->new( host => $conf->val('redmine', 'host') // '', user => $conf->val('redmine', 'user') // '', pass => $conf->val('redmine', 'pass') // '', diff --git a/t/00-use.t b/t/00-use.t index 30126e48ac539444c90136a9e5f5a64dacb26512..6648bec1b8dc32c7d8b27b757a3c8e8e13e8aff9 100644 --- a/t/00-use.t +++ b/t/00-use.t @@ -3,6 +3,6 @@ use warnings; use Test::More tests => 1; -BEGIN { use_ok('RedMiner::API') }; +BEGIN { use_ok('Redminer') }; exit; diff --git a/t/01-dispatching.t b/t/01-dispatching.t index f12bbf9169be53c3a58c8b35526604b377eed591..aa8f32a92b9a6f12fddda0f157430112903ae5d3 100644 --- a/t/01-dispatching.t +++ b/t/01-dispatching.t @@ -3,12 +3,12 @@ use warnings; use Test::More tests => 29; -eval 'use RedMiner::API'; +eval 'use Redminer'; # # Testing internal name dispatching with a dummy object # -my $redminer = RedMiner::API->new( +my $redminer = Redminer->new( host => '', key => '', ); diff --git a/t/02-realworld.t b/t/02-realworld.t index 0c827ba1168c5ef0d50cab4297f98524e6566303..f8290f6f7859fa132f405d6ff348cadfb0af2dfc 100644 --- a/t/02-realworld.t +++ b/t/02-realworld.t @@ -4,13 +4,13 @@ use warnings; use Test::More; use JSON::XS qw/encode_json/; -if ($ENV{REDMINER_API_DEVEL}) { - plan tests => 5; +if ($ENV{REDMINER_DEVEL}) { + plan tests => 5; } else{ - plan skip_all => 'Development tests (REDMINER_API_DEVEL not set)'; + plan skip_all => 'Development tests (REDMINER_DEVEL not set)'; } -eval 'use RedMiner::API'; +eval 'use Redminer'; # # Read API key from a simple config file in the format 'host;key' @@ -20,7 +20,7 @@ my $key = ''; my $key_fname = $ENV{HOME} . '/.redminer/key'; if (!-e $key_fname) { - BAIL_OUT('REDMINER_API_DEVEL set, but key file is not accessible'); + BAIL_OUT('REDMINER_DEVEL set, but key file is not accessible'); } open my $FH_key, '<', $key_fname; @@ -29,7 +29,7 @@ my $key_data = <$FH_key>; chomp $key_data; close $FH_key; -my $redminer = RedMiner::API->new( +my $redminer = Redminer->new( host => $host, key => $key, ); @@ -50,7 +50,7 @@ ok($redminer->updateProject($project_id, { project => { inherit_members => 1 } } my $issue = $redminer->createIssue({ issue => { project_id => $project_id, - subject => 'Test issue for RedMiner::API', + subject => 'Test issue for Redminer', description => 'Test description', }}); ok(defined $issue->{issue}{id}, 'Issue created with ID #' . $issue->{issue}{id}); diff --git a/t/03-realworld-no-wrapping.t b/t/03-realworld-no-wrapping.t index 6650f30a1344bce29c02c72a8dd7e2d84af87cc3..c18d8f46efcbf9d563ae1e9a24161581fff8401a 100644 --- a/t/03-realworld-no-wrapping.t +++ b/t/03-realworld-no-wrapping.t @@ -4,13 +4,13 @@ use warnings; use Test::More; use JSON::XS qw/encode_json/; -if ($ENV{REDMINER_API_DEVEL}) { - plan tests => 5; +if ($ENV{REDMINER_DEVEL}) { + plan tests => 5; } else{ - plan skip_all => 'Development tests (REDMINER_API_DEVEL not set)'; + plan skip_all => 'Development tests (REDMINER_DEVEL not set)'; } -eval 'use RedMiner::API'; +eval 'use Redminer'; # # Read API key from a simple config file in the format 'host;key' @@ -20,7 +20,7 @@ my $key = ''; my $key_fname = $ENV{HOME} . '/.redminer/key'; if (!-e $key_fname) { - BAIL_OUT('REDMINER_API_DEVEL set, but key file is not accessible'); + BAIL_OUT('REDMINER_DEVEL set, but key file is not accessible'); } open my $FH_key, '<', $key_fname; @@ -29,7 +29,7 @@ my $key_data = <$FH_key>; chomp $key_data; close $FH_key; -my $redminer = RedMiner::API->new( +my $redminer = Redminer->new( host => $host, key => $key, no_wrapper_object => 1, @@ -51,7 +51,7 @@ ok($redminer->updateProject($project_id, { inherit_members => 1 }), 'Project upd my $issue = $redminer->createIssue({ project_id => $project_id, - subject => 'Test issue for RedMiner::API', + subject => 'Test issue for Redminer', description => 'Test description', }); ok(defined $issue->{id}, 'Issue created with ID #' . $issue->{id}); diff --git a/t/05-pod-coverage.t b/t/05-pod-coverage.t index a71fd673febb2852581d634d2757c963758ac009..61f6bd1a26cdb5f5ce994753bb1b020ee4400686 100644 --- a/t/05-pod-coverage.t +++ b/t/05-pod-coverage.t @@ -8,4 +8,4 @@ plan skip_all => 'Test::Pod::Coverage required for testing pod coverage' if $@; plan tests => 1; -pod_coverage_ok('RedMiner::API', 'RedMiner::API POD ok'); +pod_coverage_ok('Redminer', 'Redminer POD ok');