Der Fiona 7 Release Collector

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.