Der Fiona 7 release_collector
ermöglicht es, kundenspezifische Veröffentlichungsmuster zu definieren.
Wenn beispielsweise bei der Freigabe einer Seite auch eine andere (zum Beispiel nicht referenzierte) Seite freigegeben werden soll, kann diese Funktion verwendet werden, um das gewünschte Verhalten herbeizuführen.
Der release_collector
akzeptiert alles, was über die call
Methode aufgerufen werden kann und erwartet einen Parameter: obj_id
Damit ist es möglich, eine Lambda-Funktion wie diese zu definieren:
Fiona7.release_collector = lambda do |obj_id| # ... end
Alternativ kann auch eine klassenbasierte Implementation zur Verfügung gestellt werden.
Der Release-Collector muss ein Array aus Hashes in folgendem Format zurückgeben:
[ { # this is a title for a group of objects title: 'This title will be shown in the dialog', # this is the list of objects presented underneath objs: [ { # the ID of the object to be released id: 2001, # the object's title to be displayed title: 'Root', # the object's description, typically obj_class description: 'RootObj', # if "checked" is true, the release checkbox is checked, # and no further user input is required for the release # to be performed checked: true } ] } ]
Es ist möglich, mehrere Gruppen zu definieren, die auch mehrere Objekte enthalten können.
Eigene Implementierungen sollten vom Fiona7::ReleaseCollector
erben oder an diesen delegieren, da er die voreingestellte Implementierung darstellt.