I've created some modules that'll enable me to do simple file
operations between the local machine and a remote MS Sharepoint server
(http or https via SOAP), and I need help naming my modules. As it
stands, the modules come in three parts:
When I was first writing my module, it was simply SharePoint::SPSOAP.
But then I realized that a lot of copy operations can be generic (my
copy function is very analogous to the linux cp -rf), whether it's an
operation on localhost or on Sharepoint. Therefore, I moved all the
generic copy steps into Copy::GenericServiceProviderCopy, and
separated location specific connector methods into Copy::LocalFileOp
and SharePoint::SPSOAP. The advantage of this is that when anyone
comes up with a entirely different proprietary server, all I have to
do is write a different connector module that provides methods for
some very basic copy functions, and Copy::GenericServiceProviderCopy
will handle the rest.
To clarify it more, by basic functions I mean file test / dir test,
single file retrieve, single file post, single file delete, and dir
creation. From these 'basic' functions,
Copy::GenericServiceProviderCopy can provide more complicated
operations like copying a directly to a directory, files and
directories into directories, file into a different file name (i.e. a
move operation), so on and so forth. Theoretically, Copy::LocalFileOp
is redundant - the file tests are the same as -f and -d in perl. I
wrote these functions into a module so that everything under
Copy::GenericServiceProviderCopy uses the same method names.
I'm sure this module will be obsolete as soon as the writers of
nautilus / konquerer come up with their own mounting mechanism for
Sharepoint services, but in the mean time, it's how I automate file
transfers, and I'm sure it will benefit a lot of sysadmins who are
policy forced to use sharepoint as an enterprise tool.
I'm looking forward to some feedback about my (in)decision in
namespace, and I welcome any comments, including mockery and disdain
for supporting proprietary vendors. If I could write a module that'll
make managers choose open source, trust me, I would.