Skip Menu |

This queue is for tickets about the Algorithm-CheckDigits CPAN distribution.

Report information
The Basics
Id: 84769
Status: resolved
Worked: 1 min
Priority: 0/
Queue: Algorithm-CheckDigits

People
Owner: mamawe [...] cpan.org
Requestors:
Cc:
AdminCc:

Bug Information
Severity: Wishlist
Broken in: v1.2.1
Fixed in: (no value)



Subject: Add ability to plug other modules into Algorithm::CheckDigits framework
Sorry about the first post - browser / finger hiccup. At https://github.com/MidLifeXis/perl-algorithm-checkdigits/compare/plugin, you will find a proposed enhancement to allow other modules to plug into the Algorithm::CheckDigits framework. Would you be able to comment on the intent and implementation, and if you wish, apply the patch? Includes test files. Thanks, Brian
Subject: Correction to commit link
One more correction: https://github.com/MidLifeXis/perl-algorithm-checkdigits/commit/5aefd49a0cf4e291aaf61c9f99c97264629bb5f5 is the correct link to the commit. Brian On Sat Apr 20 16:08:17 2013, MLX wrote: Show quoted text
> Sorry about the first post - browser / finger hiccup. > > At https://github.com/MidLifeXis/perl-algorithm- > checkdigits/compare/plugin, you will find a proposed enhancement to > allow other modules to plug into the Algorithm::CheckDigits framework. > > Would you be able to comment on the intent and implementation, and if > you wish, apply the patch? > > Includes test files. > > Thanks, > Brian
Hello Brian, Show quoted text
> Would you be able to comment on the intent and implementation, and if > you wish, apply the patch?
thanks for your patch. A few weeks ago I thought about adding a plugin capability but had no time to think it through and implement it. Your plug_in() function seems perfect. I would suggest the namespace Algorithm::CheckDigits::Plugin for plugins by other authors on CPAN. That way they should be easier to find. Regards, Mathias
On Sat Apr 20 17:37:02 2013, MAMAWE wrote: Show quoted text
> I would suggest the namespace Algorithm::CheckDigits::Plugin for > plugins by other authors on CPAN. That way they should be easier to > find.
No problem at all with that. My intent was that what I have listed in the example as the ::Registry module would contain only the name to class mapping. I have seen the Module::Pluggable module (now core, I believe) in use with the ::Plugin suffix, and since the mechanism used is quite different, I intentionally tried to avoid that namespace. I am not adverse to the name for anything other than that reason. Do you want me to update the github repo, or do you want to do it? Brian
On Sat Apr 20 18:43:47 2013, MLX wrote: Show quoted text
> On Sat Apr 20 17:37:02 2013, MAMAWE wrote:
> > I would suggest the namespace Algorithm::CheckDigits::Plugin for > > plugins by other authors on CPAN. That way they should be easier to > > find.
> > [snip] > > Do you want me to update the github repo, or do you want to do it?
I have updated the examples and documentation to reflect your suggestion. Brian
On Sat Apr 20 20:35:47 2013, MLX wrote: Show quoted text
> I have updated the examples and documentation to reflect your suggestion.
There are some days I should just leave my tools on the table. Here is the link for the diff: https://github.com/MidLifeXis/perl-algorithm-checkdigits/compare/plugin
Having slept a night over the matter the following came to my mind this morning: Your plug_in() function could break existing code. Look at the attached example code and/or run it in the perl debugger. I think a better approach would be not to change the existing keys of %methods and instead have plug_in() return the key added. That would mean that you could only add one method per call to plug_in(). It would also mean that every plugged in module should provide one or more public variables that hold the keys with which the methods could be instantiated. I would like to take the discussion of this topic over to http://perlmonks.org/ to get some other opinions. It will take a few hours, since I have a few other commitments today. Regards, Mathias
Subject: hashadd.pl
#!/usr/bin/perl # vim: set ts=4 sw=4 tw=78 et si: my %methods; sub plug_in { %methods = ( %methods, @_ ); } plug_in( a => 'A', b => 'B', ); plug_in( b => 'C', d => 'D', ); exit;
On Sun Apr 21 03:49:50 2013, MAMAWE wrote: Show quoted text
> I would like to take the discussion of this topic over to > http://perlmonks.org/ to get some other opinions. > It will take a few hours, since I have a few other commitments today.
Sounds good. I actually was thinking about this when I was writing it. I have opened an SoPW: http://www.perlmonks.org/?node_id=1029751. Brian
I just uploaded Algorithm-CheckDigits-v1.3.0 to CPAN. It should be available soon. There are mainly two things changed: - The descriptions of the algorithms are (hopefully) slightly more meaningfull. - There is a plug_in() function to register plugin modules, together with some tests that should show how to use this. Could you please have a look if this is O.K. for you as it is or if something should be changed.
Closing since v1.3.0 contains a plugin interface.