amartel / redmine_webdav

WebDav plugin for redmine
Other
35 stars 8 forks source link

Pluggable module structure #14

Open danmunn opened 11 years ago

danmunn commented 11 years ago

Morning,

Although I don't have the time to simply fork the plugin and submit changes (unfortunately) - as I progress through re-factoring another redmine plugin it draws on me that although it provides webdav functionality at present through another gem, that the correct approach instead should be to allow multiple vectors to achieve the desired functionality. Whats the point in providing 2 webdav engines if they've got your plugin already installed for example.

That being said, the structure of your code allows for a bulk work to achieve outcomes however allows absolutely nothing in the way of patching/hooking to allow other modules to make use of your work. The structures are overly complicated/long and are not currently patch-able without adhering to a similar format to run the same level of testing that you do as you progress through its execution.

My question is more a "is it considered/feasible" for the plugin to take a more rational approach to its code - so that it can be made to be extensible?

amartel commented 11 years ago

Well,

To be honest, you're absolutely right!! This plugin was just a POC, at the beginning, and I just wanted to access repository over WebDAV. I didn't remove all the code about documents and attached files because some other people are using it but it's true that, now, my code is not very easy to understand ;-) Ruby is not my favorite language and I'm not familiar with all the tasks required to produce a good rails product (unit tests, IDE, etc...). It would be different if redmine was a .NET application but it's another story... Several times, I was about rewriting everything but I don't really have time, it's a huge work, and I already have to manage a very customized/patched version of REDMINE (to provide collaborative platform for scientists). I'm really sorry for this situation because I would like to create a better plugin so the best thing may be that someone else forks this plugin and implements a more modular approach to allow a better integration with other objects/plugins in redmine (boards, faqs, etc...)...