Presenter: Sub-Presenter auf Funktional geändert
authorSven Schöling <s.schoeling@linet-services.de>
Tue, 19 Dec 2017 14:23:35 +0000 (15:23 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Tue, 19 Dec 2017 14:37:19 +0000 (15:37 +0100)
commit0e5e350124f7eec8f67109fe4777bc2dae6c0ea6
treef187753aa71bcc33c9025ef809a1dd38890accf8
parent033c2bbc11c5c796fd3ee8c23bcf1eac97d5854f
Presenter: Sub-Presenter auf Funktional geändert

1. alle Sub-Presenter aus dem SL::Presenter Namespace geschmissen

2. Keine ungefragten @EXPORTs mehr, nur noch @EXPORT_OK

3. Alle Methoden sind auf Funktionen umgeschrieben (kein $self mehr)

4. Die benötigten Methoden von Sub-Presentern müssen jetzt direkt importiert
   werden (betrifft vor allem SL::Presenter::EscapedText und SL::Presenter::Tag)

5. Da die Funktionen in Tag/Text/EscapedText recht häufig gebraucht werden,
   exportieren die ihre Funktionen stattdessen nach SL::Presenter::Simple, und
   die Proxies in SL::Template::Plugin::L und SL::Template::Plugin::P
   dispatchen auf diesen Namespace statt auf SL::Presenter.

6. Die Sub-Namespaces sind in SL::Presenter::ALL registriert, und dort liegt
   auch der Proxymechanismus um vom Objekt aus zu der Funktion zu dispatchen.
   Das ist nur in SL::Template::Plugin::P registriert, nicht mehr in L.

7. Für Funktionen deren exportierter name mit Namespace präfixt war, gibt es
   einen Alias angelegt der nicht exportiert wird.
25 files changed:
SL/DB/Helper/Presenter.pm
SL/Presenter.pm
SL/Presenter/ALL.pm [new file with mode: 0644]
SL/Presenter/BankAccount.pm
SL/Presenter/Chart.pm
SL/Presenter/CustomerVendor.pm
SL/Presenter/DeliveryOrder.pm
SL/Presenter/EscapedText.pm
SL/Presenter/GL.pm
SL/Presenter/Invoice.pm
SL/Presenter/Letter.pm
SL/Presenter/Order.pm
SL/Presenter/Part.pm
SL/Presenter/Project.pm
SL/Presenter/Record.pm
SL/Presenter/RequirementSpec.pm
SL/Presenter/RequirementSpecItem.pm
SL/Presenter/RequirementSpecTextBlock.pm
SL/Presenter/SepaExport.pm
SL/Presenter/ShopOrder.pm
SL/Presenter/Simple.pm [new file with mode: 0644]
SL/Presenter/Tag.pm
SL/Presenter/Text.pm
SL/Template/Plugin/L.pm
SL/Template/Plugin/P.pm