Module: Alchemy
- Extended by:
- ConfigMissing
- Includes:
- ConfigMissing
- Defined in:
- lib/alchemy/paths.rb,
lib/alchemy.rb,
lib/alchemy/i18n.rb,
lib/alchemy/hints.rb,
lib/alchemy/shell.rb,
lib/alchemy/engine.rb,
lib/alchemy/errors.rb,
lib/alchemy/logger.rb,
lib/alchemy/seeder.rb,
lib/alchemy/modules.rb,
lib/alchemy/tinymce.rb,
lib/alchemy/version.rb,
lib/alchemy/taggable.rb,
lib/alchemy/upgrader.rb,
lib/alchemy/filetypes.rb,
app/models/alchemy/tag.rb,
lib/alchemy/tasks/tidy.rb,
app/models/alchemy/node.rb,
app/models/alchemy/page.rb,
app/models/alchemy/site.rb,
lib/alchemy/deprecation.rb,
lib/alchemy/permissions.rb,
lib/alchemy/tasks/usage.rb,
lib/alchemy/admin/locale.rb,
lib/alchemy/svg_scrubber.rb,
lib/alchemy/test_support.rb,
app/jobs/alchemy/base_job.rb,
lib/alchemy/configuration.rb,
lib/alchemy/forms/builder.rb,
lib/alchemy/install/tasks.rb,
app/models/alchemy/current.rb,
app/models/alchemy/element.rb,
app/models/alchemy/message.rb,
app/models/alchemy/picture.rb,
lib/alchemy/auth_accessors.rb,
lib/alchemy/config_missing.rb,
lib/alchemy/error_tracking.rb,
lib/alchemy/on_page_layout.rb,
app/models/alchemy/language.rb,
app/models/alchemy/resource.rb,
lib/alchemy/elements_finder.rb,
lib/generators/alchemy/base.rb,
lib/alchemy/name_conversions.rb,
app/models/alchemy/attachment.rb,
app/models/alchemy/ingredient.rb,
app/models/alchemy/page_mutex.rb,
lib/alchemy/admin/preview_url.rb,
app/helpers/alchemy/url_helper.rb,
app/models/alchemy/base_record.rb,
app/models/alchemy/folded_page.rb,
app/models/alchemy/site/layout.rb,
app/services/alchemy/copy_page.rb,
lib/alchemy/controller_actions.rb,
app/helpers/alchemy/base_helper.rb,
app/mailers/alchemy/base_mailer.rb,
app/models/alchemy/page_version.rb,
lib/alchemy/configurations/main.rb,
lib/alchemy/routing_constraints.rb,
lib/alchemy/upgrader/eight_zero.rb,
app/helpers/alchemy/pages_helper.rb,
app/models/alchemy/eager_loading.rb,
app/models/alchemy/page/url_path.rb,
app/models/alchemy/picture_thumb.rb,
app/components/alchemy/admin/icon.rb,
app/jobs/alchemy/publish_page_job.rb,
app/models/alchemy/page/publisher.rb,
lib/alchemy/configuration_methods.rb,
lib/alchemy/configurations/mailer.rb,
app/models/alchemy/element_to_page.rb,
app/models/alchemy/page_definition.rb,
app/models/alchemy/picture_variant.rb,
app/models/alchemy/storage_adapter.rb,
lib/alchemy/configurations/preview.rb,
lib/alchemy/configurations/sitemap.rb,
app/helpers/alchemy/elements_helper.rb,
app/jobs/alchemy/delete_picture_job.rb,
app/mailers/alchemy/messages_mailer.rb,
app/models/alchemy/ingredients/file.rb,
app/models/alchemy/ingredients/html.rb,
app/models/alchemy/ingredients/link.rb,
app/models/alchemy/ingredients/node.rb,
app/models/alchemy/ingredients/page.rb,
app/models/alchemy/ingredients/text.rb,
app/models/alchemy/page/definitions.rb,
app/models/alchemy/page/page_naming.rb,
app/models/alchemy/page/page_scopes.rb,
app/models/concerns/alchemy/dom_ids.rb,
app/services/alchemy/update_checker.rb,
lib/alchemy/configurations/uploader.rb,
lib/alchemy/propshaft/tinymce_asset.rb,
app/components/alchemy/admin/message.rb,
app/helpers/alchemy/resources_helper.rb,
app/models/alchemy/ingredients/audio.rb,
app/models/alchemy/ingredients/video.rb,
app/models/alchemy/page/page_natures.rb,
app/models/alchemy/picture_thumb/uid.rb,
app/services/alchemy/delete_elements.rb,
app/services/alchemy/tag_validations.rb,
lib/alchemy/configurations/importmap.rb,
app/decorators/alchemy/element_editor.rb,
app/helpers/alchemy/admin/base_helper.rb,
app/helpers/alchemy/admin/form_helper.rb,
app/helpers/alchemy/admin/tags_helper.rb,
app/models/alchemy/admin/filters/base.rb,
app/models/alchemy/element/presenters.rb,
app/models/alchemy/element_definition.rb,
app/models/alchemy/ingredients/number.rb,
app/models/alchemy/ingredients/select.rb,
app/models/alchemy/page/page_elements.rb,
lib/alchemy/configuration/base_option.rb,
lib/alchemy/configurations/page_cache.rb,
app/helpers/alchemy/admin/pages_helper.rb,
app/models/alchemy/admin/resource_name.rb,
app/models/alchemy/element/definitions.rb,
app/models/alchemy/elements_repository.rb,
app/models/alchemy/ingredients/boolean.rb,
app/models/alchemy/ingredients/picture.rb,
app/models/alchemy/picture_description.rb,
app/models/alchemy/searchable_resource.rb,
app/services/alchemy/duplicate_element.rb,
lib/alchemy/configuration/class_option.rb,
app/controllers/alchemy/base_controller.rb,
app/models/alchemy/admin/filters/select.rb,
app/models/alchemy/ingredient_validator.rb,
app/models/alchemy/ingredients/datetime.rb,
app/models/alchemy/ingredients/headline.rb,
app/models/alchemy/ingredients/richtext.rb,
app/models/alchemy/picture_thumb/create.rb,
app/serializers/alchemy/base_serializer.rb,
app/serializers/alchemy/node_serializer.rb,
app/serializers/alchemy/page_serializer.rb,
app/serializers/alchemy/site_serializer.rb,
lib/alchemy/configuration/regexp_option.rb,
lib/alchemy/configuration/string_option.rb,
lib/alchemy/configuration/symbol_option.rb,
lib/alchemy/configurations/default_site.rb,
lib/alchemy/error_tracking/error_logger.rb,
app/components/alchemy/admin/list_filter.rb,
app/components/alchemy/admin/node_select.rb,
app/components/alchemy/admin/page_select.rb,
app/controllers/alchemy/pages_controller.rb,
app/decorators/alchemy/ingredient_editor.rb,
app/models/alchemy/ingredient_definition.rb,
app/models/alchemy/page/fixed_attributes.rb,
lib/alchemy/configuration/boolean_option.rb,
lib/alchemy/configuration/integer_option.rb,
lib/alchemy/test_support/config_stubbing.rb,
app/components/alchemy/admin/update_check.rb,
app/helpers/alchemy/admin/pictures_helper.rb,
app/helpers/alchemy/elements_block_helper.rb,
app/models/alchemy/admin/filters/checkbox.rb,
app/models/alchemy/image_cropper_settings.rb,
lib/alchemy/configuration/pathname_option.rb,
lib/alchemy/test_support/capybara_helpers.rb,
app/components/alchemy/admin/locale_select.rb,
app/components/alchemy/admin/resource/cell.rb,
app/models/alchemy/picture_thumb/signature.rb,
app/models/concerns/alchemy/touch_elements.rb,
app/serializers/alchemy/element_serializer.rb,
app/serializers/alchemy/picture_serializer.rb,
lib/alchemy/cache_digests/template_tracker.rb,
lib/alchemy/configurations/format_matchers.rb,
lib/alchemy/dragonfly/processors/thumbnail.rb,
app/components/alchemy/admin/element_select.rb,
app/components/alchemy/admin/resource/table.rb,
app/components/alchemy/admin/toolbar_button.rb,
app/controllers/alchemy/api/base_controller.rb,
app/controllers/alchemy/messages_controller.rb,
app/helpers/alchemy/admin/navigation_helper.rb,
app/models/alchemy/admin/filters/datepicker.rb,
app/models/alchemy/picture_thumb/file_store.rb,
app/serializers/alchemy/language_serializer.rb,
lib/alchemy/configuration/collection_option.rb,
lib/alchemy/configurations/default_language.rb,
lib/alchemy/dev_support/live_reload_watcher.rb,
lib/alchemy/on_page_layout/callbacks_runner.rb,
app/components/alchemy/admin/resource/action.rb,
app/components/alchemy/admin/resource/header.rb,
app/components/alchemy/ingredients/base_view.rb,
app/components/alchemy/ingredients/file_view.rb,
app/components/alchemy/ingredients/html_view.rb,
app/components/alchemy/ingredients/link_view.rb,
app/components/alchemy/ingredients/node_view.rb,
app/components/alchemy/ingredients/page_view.rb,
app/components/alchemy/ingredients/text_view.rb,
app/controllers/alchemy/api/nodes_controller.rb,
app/controllers/alchemy/api/pages_controller.rb,
app/helpers/alchemy/admin/attachments_helper.rb,
app/helpers/alchemy/admin/ingredients_helper.rb,
app/models/alchemy/storage_adapter/dragonfly.rb,
app/serializers/alchemy/page_node_serializer.rb,
app/serializers/alchemy/page_tree_serializer.rb,
app/services/alchemy/update_checks/ruby_gems.rb,
lib/alchemy/dragonfly/processors/auto_orient.rb,
lib/alchemy/dragonfly/processors/crop_resize.rb,
lib/alchemy/test_support/integration_helpers.rb,
lib/generators/alchemy/menus/menus_generator.rb,
lib/generators/alchemy/views/views_generator.rb,
app/components/alchemy/admin/link_dialog/tabs.rb,
app/components/alchemy/ingredients/audio_view.rb,
app/components/alchemy/ingredients/video_view.rb,
app/controllers/alchemy/admin/base_controller.rb,
app/controllers/alchemy/admin/tags_controller.rb,
app/serializers/alchemy/attachment_serializer.rb,
app/serializers/alchemy/ingredient_serializer.rb,
app/components/alchemy/admin/attachment_select.rb,
app/components/alchemy/admin/tags_autocomplete.rb,
app/components/alchemy/ingredients/number_view.rb,
app/components/alchemy/ingredients/select_view.rb,
app/controllers/alchemy/admin/nodes_controller.rb,
app/controllers/alchemy/admin/pages_controller.rb,
app/controllers/alchemy/admin/sites_controller.rb,
app/controllers/alchemy/attachments_controller.rb,
app/models/alchemy/element/element_ingredients.rb,
app/models/concerns/alchemy/picture_thumbnails.rb,
app/models/concerns/alchemy/relatable_resource.rb,
app/services/alchemy/update_checks/alchemy_app.rb,
lib/alchemy/configuration/configuration_option.rb,
lib/generators/alchemy/module/module_generator.rb,
app/components/alchemy/ingredients/boolean_view.rb,
app/components/alchemy/ingredients/picture_view.rb,
app/controllers/alchemy/api/elements_controller.rb,
app/controllers/concerns/alchemy/site_redirects.rb,
app/components/alchemy/ingredients/datetime_view.rb,
app/components/alchemy/ingredients/headline_view.rb,
app/components/alchemy/ingredients/richtext_view.rb,
lib/generators/alchemy/install/install_generator.rb,
app/components/alchemy/admin/link_dialog/base_tab.rb,
app/components/alchemy/admin/link_dialog/file_tab.rb,
app/controllers/alchemy/admin/elements_controller.rb,
app/controllers/alchemy/admin/pictures_controller.rb,
app/models/alchemy/storage_adapter/active_storage.rb,
app/controllers/alchemy/admin/clipboard_controller.rb,
app/controllers/alchemy/admin/dashboard_controller.rb,
app/controllers/alchemy/admin/languages_controller.rb,
app/controllers/alchemy/admin/resources_controller.rb,
app/controllers/alchemy/api/attachments_controller.rb,
app/controllers/alchemy/api/ingredients_controller.rb,
app/controllers/concerns/alchemy/admin/crop_action.rb,
app/services/alchemy/dragonfly_to_image_processing.rb,
lib/generators/alchemy/elements/elements_generator.rb,
app/components/alchemy/admin/link_dialog/anchor_tab.rb,
app/components/alchemy/admin/resource/select_filter.rb,
app/controllers/alchemy/admin/styleguide_controller.rb,
app/components/alchemy/admin/resource/applied_filter.rb,
app/controllers/alchemy/admin/attachments_controller.rb,
app/controllers/alchemy/admin/ingredients_controller.rb,
app/controllers/alchemy/admin/layoutpages_controller.rb,
app/components/alchemy/admin/link_dialog/external_tab.rb,
app/components/alchemy/admin/link_dialog/internal_tab.rb,
app/components/alchemy/admin/resource/checkbox_filter.rb,
app/controllers/alchemy/admin/update_checks_controller.rb,
app/controllers/concerns/alchemy/admin/archive_overlay.rb,
app/controllers/concerns/alchemy/admin/resource_filter.rb,
app/controllers/concerns/alchemy/legacy_page_redirects.rb,
lib/generators/alchemy/ingredient/ingredient_generator.rb,
app/components/alchemy/admin/resource/datepicker_filter.rb,
app/components/concerns/alchemy/ingredients/link_target.rb,
app/controllers/concerns/alchemy/admin/current_language.rb,
app/models/alchemy/storage_adapter/dragonfly/picture_url.rb,
app/controllers/alchemy/admin/legacy_page_urls_controller.rb,
app/controllers/concerns/alchemy/admin/uploader_responses.rb,
app/models/alchemy/storage_adapter/dragonfly/preprocessor.rb,
lib/generators/alchemy/page_layouts/page_layouts_generator.rb,
lib/generators/alchemy/site_layouts/site_layouts_generator.rb,
app/models/alchemy/storage_adapter/dragonfly/attachment_url.rb,
app/controllers/alchemy/admin/picture_descriptions_controller.rb,
app/models/alchemy/storage_adapter/active_storage/picture_url.rb,
app/models/alchemy/storage_adapter/active_storage/preprocessor.rb,
app/jobs/alchemy/storage_adapter/active_storage/sanitize_svg_job.rb,
app/models/alchemy/storage_adapter/active_storage/attachment_url.rb,
app/controllers/concerns/alchemy/admin/picture_descriptions_form_helper.rb
Overview
This is the main Alchemy controller all other controllers inherit from.
Defined Under Namespace
Modules: AbilityHelper, Admin, BaseHelper, CacheDigests, ConfigMissing, ConfigurationMethods, Configurations, ControllerActions, DomIds, Dragonfly, DragonflyToImageProcessing, ElementsBlockHelper, ElementsHelper, ErrorTracking, Filetypes, Forms, Generators, Hints, I18n, Ingredients, Install, LegacyPageRedirects, Logger, Modules, NameConversions, OnPageLayout, PagesHelper, PictureThumbnails, Propshaft, RelatableResource, ResourcesHelper, SearchableResource, Shell, SiteRedirects, Taggable, Tasks, TestSupport, Tinymce, TouchElements, UpdateChecks, UrlHelper
Classes: Attachment, AttachmentSerializer, AttachmentsController, BaseController, BaseJob, BaseMailer, BaseRecord, BaseSerializer, Configuration, CopyPage, Current, DefaultLanguageNotFoundError, DefaultSiteNotFoundError, DeleteElements, DeletePictureJob, DuplicateElement, EagerLoading, Element, ElementDefinition, ElementDefinitionError, ElementEditor, ElementSerializer, ElementToPage, ElementsFinder, ElementsRepository, Engine, FoldedPage, ImageCropperSettings, Ingredient, IngredientDefinition, IngredientEditor, IngredientSerializer, IngredientValidator, Language, LanguageSerializer, LegacyPageUrl, LiveReloadWatcher, Message, MessagesController, MessagesMailer, MissingActiveRecordAssociation, MissingImageFileError, NoCurrentUserFoundError, Node, NodeSerializer, NotMountedError, Page, PageDefinition, PageMutex, PageNodeSerializer, PageSerializer, PageTreeSerializer, PageVersion, PagesController, Permissions, Picture, PictureDescription, PictureInUseError, PictureSerializer, PictureThumb, PictureVariant, PublishPageJob, Resource, RoutingConstraints, Seeder, Site, SiteSerializer, StorageAdapter, SvgScrubber, Tag, TagValidations, Tidy, TinymceError, UnsupportedPageVersion, UpdateChecker, UpdateServiceUnavailable, Upgrader, WrongImageFormatError
Constant Summary
collapse
- YAML_PERMITTED_CLASSES =
%w[Symbol Date Regexp]
- VERSION =
"8.0.0"
- Deprecation =
ActiveSupport::Deprecation.new("9.0", "Alchemy")
- @@admin_path =
"admin"
- @@admin_constraints =
{}
- @@user_class_name =
"User"
- @@user_class_primary_key =
:id
- @@current_user_method =
"current_user"
- @@signup_path =
"/signup"
- @@login_path =
"/login"
- @@logout_path =
"/logout"
- @@logout_method =
"delete"
- @@unauthorized_path =
"/"
Instance Attribute Summary collapse
Class Method Summary
collapse
const_missing
Instance Attribute Details
#importmap ⇒ Object
15
16
17
|
# File 'lib/alchemy.rb', line 15
def importmap
@importmap
end
|
Class Method Details
25
26
27
|
# File 'lib/alchemy.rb', line 25
def configure(&blk)
yield config
end
|
.enable_searchable ⇒ Object
30
|
# File 'lib/alchemy.rb', line 30
def enable_searchable = config.show_page_searchable_checkbox
|
.enable_searchable=(other) ⇒ Object
33
34
35
|
# File 'lib/alchemy.rb', line 33
def enable_searchable=(other)
config.show_page_searchable_checkbox = other
end
|
.gem_version ⇒ Object
10
11
12
|
# File 'lib/alchemy/version.rb', line 10
def self.gem_version
Gem::Version.new(VERSION)
end
|
.register_ability(klass) ⇒ Object
Register a CanCan Ability class
124
125
126
127
|
# File 'lib/alchemy/auth_accessors.rb', line 124
def self.register_ability(klass)
@abilities ||= []
@abilities << klass
end
|
.registered_abilities ⇒ Object
All CanCan Ability classes registered to Alchemy
131
132
133
|
# File 'lib/alchemy/auth_accessors.rb', line 131
def self.registered_abilities
@abilities ||= []
end
|
.t(msg, **kwargs) ⇒ Object
Alchemy shortcut translation method
Instead of having to call:
Alchemy::I18n.translate(:hello)
You can use this shortcut method:
Alchemy.t(:hello)
15
16
17
|
# File 'lib/alchemy/i18n.rb', line 15
def t(msg, **kwargs)
Alchemy::I18n.translate(msg, **kwargs)
end
|
.table_name_prefix ⇒ Object
4
5
6
|
# File 'app/models/alchemy/base_record.rb', line 4
def self.table_name_prefix
"alchemy_"
end
|
.user_class ⇒ Object
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
# File 'lib/alchemy/auth_accessors.rb', line 94
def self.user_class
@@user_class ||= begin
@@user_class_name.constantize
rescue NameError => e
if /#{Regexp.escape(@@user_class_name)}/.match?(e.message)
Rails.logger.warn <<~MSG
#{e.message}
#{e.backtrace.join("\n")}
AlchemyCMS cannot find any user class!
Please add a user class and tell Alchemy about it:
# config/initializers/alchemy.rb
Alchemy.user_class_name = 'MyUser'
Or add the `alchemy-devise` gem to your Gemfile:
bundle add alchemy-devise
MSG
nil
else
raise e
end
end
end
|
.user_class_name ⇒ Object
- Prefix with
-
when getting to avoid constant name conflicts
82
83
84
85
86
87
88
|
# File 'lib/alchemy/auth_accessors.rb', line 82
def self.user_class_name
if !@@user_class_name.is_a?(String)
raise TypeError, "Alchemy.user_class_name must be a String, not a Class."
end
"::#{@@user_class_name}"
end
|
.user_class_name=(user_class_name) ⇒ Object
90
91
92
|
# File 'lib/alchemy/auth_accessors.rb', line 90
def self.user_class_name=(user_class_name)
@@user_class_name = user_class_name
end
|
.version ⇒ Object
6
7
8
|
# File 'lib/alchemy/version.rb', line 6
def self.version
VERSION
end
|