You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Created an issue to track the discussion of a change I plan to work on.
I'm writing a new parser plugin. I see 50-100 lines of email notification code duplicated across most plugins. I'd like to factor that out into a reusable utility.
I plan to use Role::Tiny. It has been around for years, has few dependencies, and was recently updated. I initially investigated a solution that didn't require additional modules, but there was no clean and easy way to execute code after init and other parent methods. I also didn't want to introduce another base class, PluginErrorReporter.
I will also create a more generic Mailer role to be used by ErrorMailer and Completeness.
I'll plan on creating a PR for the above enhancements plus Serge::Engine::Plugin::parse_csv.
Feedback is appreciated.
The text was updated successfully, but these errors were encountered:
Yes, emailing code needs to be separated — thanks for looking into this. I don't think we need to start with Role::Tiny, since this task can be done by the means of interfaces — something Serge is already using — see https://github.com/evernote/serge/tree/master/lib/Serge/Interface. This is basically a way to add common functionality to different plugins without adding new concepts or dependencies. So you can create a new interface that will implement emailing functionality and make plugins reuse it.
Created an issue to track the discussion of a change I plan to work on.
I'm writing a new parser plugin. I see 50-100 lines of email notification code duplicated across most plugins. I'd like to factor that out into a reusable utility.
I plan to use Role::Tiny. It has been around for years, has few dependencies, and was recently updated. I initially investigated a solution that didn't require additional modules, but there was no clean and easy way to execute code after init and other parent methods. I also didn't want to introduce another base class, PluginErrorReporter.
I will also create a more generic Mailer role to be used by ErrorMailer and Completeness.
I'll plan on creating a PR for the above enhancements plus Serge::Engine::Plugin::parse_csv.
Feedback is appreciated.
The text was updated successfully, but these errors were encountered: