Module: Scrivito
- Defined in:
- lib/scrivito_sdk.rb,
lib/scrivito/diff.rb,
lib/scrivito/link.rb,
lib/scrivito/user.rb,
lib/scrivito/cache.rb,
lib/scrivito/binary.rb,
lib/scrivito/errors.rb,
lib/scrivito/cms_env.rb,
lib/scrivito/gem_info.rb,
lib/scrivito/obj_data.rb,
lib/scrivito/revision.rb,
lib/scrivito/basic_obj.rb,
lib/scrivito/image_tag.rb,
lib/scrivito/text_link.rb,
lib/scrivito/ui_config.rb,
lib/scrivito/workspace.rb,
lib/scrivito/comparison.rb,
lib/scrivito/membership.rb,
lib/scrivito/migrations.rb,
lib/scrivito/sdk_engine.rb,
lib/scrivito/widget_tag.rb,
lib/scrivito/cms_backend.rb,
lib/scrivito/cms_routing.rb,
lib/scrivito/deprecation.rb,
lib/scrivito/html_string.rb,
lib/scrivito/layout_tags.rb,
lib/scrivito/link_parser.rb,
lib/scrivito/page_config.rb,
lib/scrivito/parent_path.rb,
lib/scrivito/basic_widget.rb,
lib/scrivito/client_error.rb,
lib/scrivito/cms_rest_api.rb,
lib/scrivito/modification.rb,
lib/scrivito/tag_renderer.rb,
lib/scrivito/test_request.rb,
lib/scrivito/access_denied.rb,
lib/scrivito/backend/index.rb,
lib/scrivito/backend_error.rb,
lib/scrivito/cms_field_tag.rb,
lib/scrivito/configuration.rb,
lib/scrivito/content_state.rb,
lib/scrivito/model_library.rb,
lib/scrivito/network_error.rb,
lib/scrivito/type_computer.rb,
lib/scrivito/binary_rewrite.rb,
lib/scrivito/binary_routing.rb,
lib/scrivito/child_list_tag.rb,
lib/scrivito/cms_data_cache.rb,
lib/scrivito/date_attribute.rb,
lib/scrivito/log_subscriber.rb,
lib/scrivito/model_identity.rb,
lib/scrivito/obj_collection.rb,
lib/scrivito/string_tagging.rb,
lib/scrivito/workspace_data.rb,
lib/scrivito/cache/chainable.rb,
lib/scrivito/cache/ram_store.rb,
lib/scrivito/content_service.rb,
lib/scrivito/editing_context.rb,
lib/scrivito/restriction_set.rb,
lib/scrivito/uploaded_binary.rb,
lib/scrivito/user_definition.rb,
lib/scrivito/backend/obj_load.rb,
lib/scrivito/cache/file_store.rb,
lib/scrivito/cache_middleware.rb,
lib/scrivito/class_collection.rb,
lib/scrivito/generator_helper.rb,
lib/scrivito/request_homepage.rb,
lib/scrivito/attribute_content.rb,
lib/scrivito/backend/obj_query.rb,
lib/scrivito/controller_helper.rb,
lib/scrivito/obj_params_parser.rb,
lib/scrivito/widget_collection.rb,
lib/scrivito/backend/path_index.rb,
lib/scrivito/connection_manager.rb,
lib/scrivito/content_conversion.rb,
lib/scrivito/controller_actions.rb,
lib/scrivito/controller_runtime.rb,
lib/scrivito/dialog_size_helper.rb,
lib/scrivito/obj_data_from_hash.rb,
lib/scrivito/obj_search_builder.rb,
lib/scrivito/communication_error.rb,
lib/scrivito/migrations/migrator.rb,
lib/scrivito/rate_limit_exceeded.rb,
lib/scrivito/attribute_definition.rb,
lib/scrivito/attribute_serializer.rb,
lib/scrivito/meta_data_collection.rb,
lib/scrivito/migrations/migration.rb,
lib/scrivito/text_link_conversion.rb,
app/models/scrivito/content_widget.rb,
lib/scrivito/binary_param_verifier.rb,
lib/scrivito/content_state_caching.rb,
lib/scrivito/content_state_visitor.rb,
lib/scrivito/membership_collection.rb,
lib/scrivito/obj_data_from_service.rb,
lib/scrivito/obj_search_enumerator.rb,
lib/scrivito/attribute_deserializer.rb,
lib/scrivito/backend/obj_data_cache.rb,
lib/scrivito/migrations/cms_backend.rb,
lib/scrivito/backend/permalink_index.rb,
lib/scrivito/cache_garbage_collector.rb,
lib/scrivito/cms_rest_api/rate_limit.rb,
lib/scrivito/obj_create_params_parser.rb,
lib/scrivito/obj_update_params_parser.rb,
app/controllers/scrivito/ui_controller.rb,
lib/scrivito/backend/parent_path_index.rb,
lib/scrivito/migrations/workspace_lock.rb,
lib/scrivito/widget_garbage_collection.rb,
lib/scrivito/workspace/publish_checker.rb,
lib/scrivito/backend/content_state_node.rb,
lib/scrivito/backend/obj_data_from_rest.rb,
lib/scrivito/cms_rest_api/request_timer.rb,
lib/scrivito/editing_context_middleware.rb,
lib/scrivito/migrations/migration_store.rb,
app/controllers/scrivito/objs_controller.rb,
lib/scrivito/client_attribute_serializer.rb,
lib/scrivito/workspace_data_from_service.rb,
app/controllers/scrivito/blobs_controller.rb,
app/controllers/scrivito/tasks_controller.rb,
app/controllers/scrivito/users_controller.rb,
lib/scrivito/cms_rest_api/widget_extractor.rb,
lib/generators/scrivito/page/page_generator.rb,
lib/scrivito/workspace_selection_middleware.rb,
lib/scrivito/attribute_definition_collection.rb,
app/controllers/scrivito/webservice_controller.rb,
app/controllers/scrivito/workspaces_controller.rb,
app/controllers/scrivito/default_cms_controller.rb,
lib/generators/scrivito/widget/widget_generator.rb,
lib/generators/scrivito/install/install_generator.rb,
app/controllers/scrivito/binary_redirect_controller.rb,
lib/generators/scrivito/migration/migration_generator.rb
Defined Under Namespace
Modules: AttributeContent, BinaryRewrite, ControllerHelper, TestRequest Classes: AttributeDefinition, AttributeDefinitionCollection, BasicObj, BasicWidget, Binary, CacheGarbageCollector, ClassCollection, Configuration, Link, Membership, MembershipCollection, ModelLibrary, ObjClassNotFound, ObjCollection, ObjSearchEnumerator, ResourceNotFound, ScrivitoError, TransformationDefinitionError, TransformationError, TransformationSourceError, User, UserDefinition, WidgetCollection, Workspace
Class Method Summary collapse
-
.configure {|Configuration| ... } ⇒ Object
Configures the Scrivito SDK.
-
.models ⇒ Object
Configures which models Scrivito regards as pages and widgets.
Class Method Details
.configure {|Configuration| ... } ⇒ Object
Configures the Scrivito SDK. The tenant and api_key configuration keys must be provided.
17 18 19 |
# File 'lib/scrivito_sdk.rb', line 17 def self.configure yield Configuration end |
.models ⇒ Object
Configures which models Scrivito regards as pages and widgets.
In order to display a page class selection dialog and a widget class selection dialog, Scrivito needs to know which page models and widget models are available. These models can be defined in the Rails application itself or in 3rd-party gems.
Scrivito assumes that all the classes descending from BasicObj, whose class names end with Page are pages (e.g. MyPage, HomePage, BlogPostPage etc.). It also assumes that all the classes descending from BasicWidget, whose class names end with Widget are widgets (e.g. TextWidget, ImageWdidget etc.).
Scrivito recursively scans for such models in all directories from Scrivito.models.paths, which is an array of strings. By default, Scrivito includes the app/models directory of the Rails application when searching for models. It will, for example, find the following page and widget models:
app/models/my_page.rb
app/models/my_widget.rb
app/models/my_namespace/my_other_page.rb
app/models/my_namespace/my_other_widget.rb
app/models/my_namespace/my_other_namespace/my_other_special_page.rb
app/models/my_namespace/my_other_namespace/my_other_special_widget.rb
Also, Scrivito.models.paths includes all app/models directories of any available Rails engine, provided that these directories are included in the autoload paths of Rails (which is the default). For example, it will find the following page and widget models in an engine:
/../some_engine/app/models/my_page.rb
/../some_engine/app/models/my_widget.rb
/../some_engine/app/models/my_namespace/my_other_page.rb
/../some_engine/app/models/my_namespace/my_other_widget.rb
/../some_engine/app/models/my_namespace/my_other_namespace/my_other_special_page.rb
/../some_engine/app/models/my_namespace/my_other_namespace/my_other_special_widget.rb
You can add custom directories to scan for models and register single page and widget models using Scrivito.models.define (see examples below).
The loaded pages can be inspected with Scrivito.models.pages, which will return a ClassCollection containing the available pages. The loaded widgets can be inspected with Scrivito.models.widgets, which will return a ClassCollection containing the available widgets.
The scan results are cached. If Rails.application.config.cache_classes is false, the cache is cleared on every request. Otherwise, the cache is kept between the requests. You can clear the cache using Scrivito.models.clear_cache.
111 112 113 |
# File 'lib/scrivito_sdk.rb', line 111 def self.models @models ||= ModelLibrary.new end |