Two Operation Modes

The Fiona 7 gem can be operated in two modes, “legacy” and “standalone”. If you wish to migrate an existing RailsConnector or FionaConnector application to Fiona 7, the legacy mode should be used. This mode may also be useful with new Rails applications intended to be attached to an existing Fiona instance.

The standalone mode has been designed for new Rails applications operating on an initially empty instance. This mode offers the best possible compatibility with Scrivito, causing the development of the application to follow almost the same patterns as with a Scrivito application.

Differences between “legacy” and “standalone”

In contrast to the standalone mode, the legacy mode allows mixing RailsConnector and FionaConnector operation.

Adding the Fiona 7 gem to an existing RailsConnector or FionaConnector application initially doesn't change the behavior of the application, allowing you to step-by-step migrate it to Fiona 7. This lets you enjoy the benefits of Fiona 7 technology and gradually replace edit markers with in-place editing, for example. Additionally, the existing object classes and attributes can be edited and applied using the new technology.

In standalone mode, attribute names are extended with the name of the object class in which they are used. This makes it possible to use attributes the way Scrivito lets you use them: individually (with an individual respective type) for each object class. As a side effect, attributes such as “title_navigation” need to be created for every object class that uses them although their type is the same.

Software developers should keep in mind hat APIs such as “fiona7_tag” and “fiona7_tag_list” are only available in legacy mode.

Technical background

Choosing between the legacy and the standalone mode comes down to deciding whether the RailsConnector or Fiona 7 should play the leading role in the application.

There are three functional aspects of the application that depend on the chosen component.

  1. A global class named “Obj”
  2. A global “CmsController”
  3. The “/:id/:name” and “/:permalink” routes

In legacy mode it is assumed that “Obj” inherits from “RailsConnector::BasicObj,” and “CmsController” from “RailsConnector::DefaultCmsController.” Furthermore, the “/:id/:name” and “/:permalink” routes are served by the RailsConnector. As a consequence, integrating Fiona 7 into an existing application does not have any immediate (negative) effects – everything remains as it was.

In standalone mode, on the other hand, Fiona 7 takes full control and deactivates most of the RailsConnector's functionality.

The global “Obj” class also determines what the “@obj” instance variable stands for: in legacy mode, “@obj” is an ordinary RailsConnector object, while in standalone mode it's an instance of “Scrivito::BasicObj.”