Module: Locomotive::Steam

Defined in:
lib/locomotive/steam.rb,
lib/locomotive/steam/errors.rb,
lib/locomotive/steam/server.rb,
lib/locomotive/steam/version.rb,
lib/locomotive/steam/services.rb,
lib/locomotive/steam/middlewares.rb,
lib/locomotive/steam/models/pager.rb,
lib/locomotive/steam/models/scope.rb,
lib/locomotive/steam/repositories.rb,
lib/locomotive/steam/configuration.rb,
lib/locomotive/steam/entities/page.rb,
lib/locomotive/steam/entities/site.rb,
lib/locomotive/steam/liquid/errors.rb,
lib/locomotive/steam/models/entity.rb,
lib/locomotive/steam/models/mapper.rb,
lib/locomotive/steam/adapters/memory.rb,
lib/locomotive/steam/liquid/tags/nav.rb,
lib/locomotive/steam/liquid/tags/seo.rb,
lib/locomotive/steam/liquid/template.rb,
lib/locomotive/steam/adapters/mongodb.rb,
lib/locomotive/steam/entities/snippet.rb,
lib/locomotive/steam/liquid/tags/csrf.rb,
lib/locomotive/steam/middlewares/auth.rb,
lib/locomotive/steam/middlewares/page.rb,
lib/locomotive/steam/middlewares/path.rb,
lib/locomotive/steam/middlewares/site.rb,
lib/locomotive/steam/liquid/drops/base.rb,
lib/locomotive/steam/liquid/drops/page.rb,
lib/locomotive/steam/liquid/drops/site.rb,
lib/locomotive/steam/models/i18n_field.rb,
lib/locomotive/steam/models/repository.rb,
lib/locomotive/steam/liquid/tags/action.rb,
lib/locomotive/steam/liquid/tags/hybrid.rb,
lib/locomotive/steam/middlewares/locale.rb,
lib/locomotive/steam/middlewares/robots.rb,
lib/locomotive/steam/adapters/filesystem.rb,
lib/locomotive/steam/liquid/filters/base.rb,
lib/locomotive/steam/liquid/filters/date.rb,
lib/locomotive/steam/liquid/filters/html.rb,
lib/locomotive/steam/liquid/filters/json.rb,
lib/locomotive/steam/liquid/filters/misc.rb,
lib/locomotive/steam/liquid/filters/text.rb,
lib/locomotive/steam/liquid/tags/consume.rb,
lib/locomotive/steam/liquid/tags/extends.rb,
lib/locomotive/steam/liquid/tags/link_to.rb,
lib/locomotive/steam/liquid/tags/path_to.rb,
lib/locomotive/steam/liquid/tags/snippet.rb,
lib/locomotive/steam/middlewares/favicon.rb,
lib/locomotive/steam/middlewares/helpers.rb,
lib/locomotive/steam/middlewares/logging.rb,
lib/locomotive/steam/middlewares/sitemap.rb,
lib/locomotive/steam/entities/theme_asset.rb,
lib/locomotive/steam/entities/translation.rb,
lib/locomotive/steam/liquid/tags/paginate.rb,
lib/locomotive/steam/middlewares/renderer.rb,
lib/locomotive/steam/middlewares/timezone.rb,
lib/locomotive/steam/adapters/concerns/key.rb,
lib/locomotive/steam/adapters/memory/order.rb,
lib/locomotive/steam/adapters/memory/query.rb,
lib/locomotive/steam/entities/content_type.rb,
lib/locomotive/steam/liquid/filters/number.rb,
lib/locomotive/steam/liquid/filters/resize.rb,
lib/locomotive/steam/liquid/tags/authorize.rb,
lib/locomotive/steam/services/auth_service.rb,
lib/locomotive/steam/adapters/mongodb/query.rb,
lib/locomotive/steam/entities/content_entry.rb,
lib/locomotive/steam/initializers/dragonfly.rb,
lib/locomotive/steam/initializers/sprockets.rb,
lib/locomotive/steam/liquid/drops/i18n_base.rb,
lib/locomotive/steam/liquid/tags/fetch_page.rb,
lib/locomotive/steam/liquid/tags/model_form.rb,
lib/locomotive/steam/liquid/tags/with_scope.rb,
lib/locomotive/steam/services/email_service.rb,
lib/locomotive/steam/adapters/memory/dataset.rb,
lib/locomotive/steam/liquid/drops/metafields.rb,
lib/locomotive/steam/middlewares/default_env.rb,
lib/locomotive/steam/middlewares/redirection.rb,
lib/locomotive/steam/models/concerns/to_json.rb,
lib/locomotive/steam/services/action_service.rb,
lib/locomotive/steam/adapters/mongodb/command.rb,
lib/locomotive/steam/adapters/mongodb/dataset.rb,
lib/locomotive/steam/liquid/filters/translate.rb,
lib/locomotive/steam/services/textile_service.rb,
lib/locomotive/steam/adapters/memory/condition.rb,
lib/locomotive/steam/decorators/i18n_decorator.rb,
lib/locomotive/steam/decorators/page_decorator.rb,
lib/locomotive/steam/entities/editable_element.rb,
lib/locomotive/steam/liquid/filters/pagination.rb,
lib/locomotive/steam/liquid/tags/concerns/path.rb,
lib/locomotive/steam/liquid/tags/editable/base.rb,
lib/locomotive/steam/liquid/tags/editable/file.rb,
lib/locomotive/steam/liquid/tags/editable/text.rb,
lib/locomotive/steam/liquid/tags/inline_editor.rb,
lib/locomotive/steam/services/markdown_service.rb,
lib/locomotive/steam/services/no_cache_service.rb,
lib/locomotive/steam/liquid/drops/content_entry.rb,
lib/locomotive/steam/liquid/drops/content_types.rb,
lib/locomotive/steam/liquid/drops/session_proxy.rb,
lib/locomotive/steam/liquid/drops/uploaded_file.rb,
lib/locomotive/steam/liquid/tags/editable/model.rb,
lib/locomotive/steam/liquid/tags/session_assign.rb,
lib/locomotive/steam/middlewares/dynamic_assets.rb,
lib/locomotive/steam/middlewares/private_access.rb,
lib/locomotive/steam/models/concerns/validation.rb,
lib/locomotive/steam/entities/content_type_field.rb,
lib/locomotive/steam/liquid/tags/inherited_block.rb,
lib/locomotive/steam/liquid/tags/locale_switcher.rb,
lib/locomotive/steam/middlewares/url_redirection.rb,
lib/locomotive/steam/services/asset_host_service.rb,
lib/locomotive/steam/services/concerns/decorator.rb,
lib/locomotive/steam/services/translator_service.rb,
lib/locomotive/steam/liquid/tags/editable/control.rb,
lib/locomotive/steam/liquid/tags/google_analytics.rb,
lib/locomotive/steam/middlewares/entry_submission.rb,
lib/locomotive/steam/middlewares/templatized_page.rb,
lib/locomotive/steam/models/associations/embedded.rb,
lib/locomotive/steam/models/associations/has_many.rb,
lib/locomotive/steam/repositories/page_repository.rb,
lib/locomotive/steam/repositories/site_repository.rb,
lib/locomotive/steam/services/page_finder_service.rb,
lib/locomotive/steam/services/site_finder_service.rb,
lib/locomotive/steam/services/url_builder_service.rb,
lib/locomotive/steam/adapters/filesystem/sanitizer.rb,
lib/locomotive/steam/decorators/template_decorator.rb,
lib/locomotive/steam/services/external_api_service.rb,
lib/locomotive/steam/liquid/tags/concerns/i18n_page.rb,
lib/locomotive/steam/middlewares/locale_redirection.rb,
lib/locomotive/steam/models/associations/belongs_to.rb,
lib/locomotive/steam/models/associations/referenced.rb,
lib/locomotive/steam/services/content_entry_service.rb,
lib/locomotive/steam/services/image_resizer_service.rb,
lib/locomotive/steam/services/liquid_parser_service.rb,
lib/locomotive/steam/services/parent_finder_service.rb,
lib/locomotive/steam/adapters/filesystem/yaml_loader.rb,
lib/locomotive/steam/repositories/snippet_repository.rb,
lib/locomotive/steam/services/snippet_finder_service.rb,
lib/locomotive/steam/models/associations/many_to_many.rb,
lib/locomotive/steam/services/csrf_protection_service.rb,
lib/locomotive/steam/services/theme_asset_url_service.rb,
lib/locomotive/steam/services/editable_element_service.rb,
lib/locomotive/steam/services/entry_submission_service.rb,
lib/locomotive/steam/services/page_redirection_service.rb,
lib/locomotive/steam/adapters/filesystem/sanitizers/page.rb,
lib/locomotive/steam/adapters/filesystem/sanitizers/site.rb,
lib/locomotive/steam/repositories/theme_asset_repository.rb,
lib/locomotive/steam/repositories/translation_repository.rb,
lib/locomotive/steam/repositories/content_type_repository.rb,
lib/locomotive/steam/adapters/filesystem/sanitizers/simple.rb,
lib/locomotive/steam/adapters/filesystem/yaml_loaders/page.rb,
lib/locomotive/steam/adapters/filesystem/yaml_loaders/site.rb,
lib/locomotive/steam/liquid/drops/content_entry_collection.rb,
lib/locomotive/steam/repositories/content_entry_repository.rb,
lib/locomotive/steam/adapters/filesystem/sanitizers/snippet.rb,
lib/locomotive/steam/adapters/filesystem/simple_cache_store.rb,
lib/locomotive/steam/adapters/filesystem/yaml_loaders/snippet.rb,
lib/locomotive/steam/repositories/editable_element_repository.rb,
lib/locomotive/steam/repositories/content_type_field_repository.rb,
lib/locomotive/steam/adapters/filesystem/sanitizers/content_type.rb,
lib/locomotive/steam/adapters/filesystem/sanitizers/content_entry.rb,
lib/locomotive/steam/adapters/filesystem/yaml_loaders/theme_asset.rb,
lib/locomotive/steam/adapters/filesystem/yaml_loaders/translation.rb,
lib/locomotive/steam/adapters/filesystem/yaml_loaders/content_type.rb,
lib/locomotive/steam/adapters/filesystem/yaml_loaders/content_entry.rb,
lib/locomotive/steam/repositories/content_type_field_select_option_repository.rb

Defined Under Namespace

Modules: Adapters, Decorators, Initializers, Liquid, Memory, Middlewares, Models, Server, Services Classes: ActionError, ActionService, AssetHostService, AuthService, Configuration, ContentEntry, ContentEntryRepository, ContentEntryService, ContentType, ContentTypeField, ContentTypeFieldRepository, ContentTypeFieldSelectOptionRepository, ContentTypeRepository, CsrfProtectionService, EditableElement, EditableElementRepository, EditableElementService, EmailService, EntrySubmissionService, ExternalAPIService, FilesystemAdapter, ImageResizerService, LiquidParserService, MarkdownService, MemoryAdapter, MongoDBAdapter, NoCacheService, NoSiteException, Page, PageFinderService, PageRedirectionService, PageRepository, ParentFinderService, ParsingRenderingError, RedirectionException, RenderError, Repositories, Site, SiteFinderService, SiteRepository, Snippet, SnippetFinderService, SnippetRepository, SprocketsEnvironment, TextileService, ThemeAsset, ThemeAssetRepository, ThemeAssetUrlService, Translation, TranslationRepository, TranslatorService, UrlBuilderService

Constant Summary collapse

FRONTMATTER_REGEXP =
/^(?<yaml>(---\s*\n.*?\n?)^(---\s*$\n?))?(?<template>.*)/mo.freeze
WILDCARD =
'content_type_template'.freeze
CONTENT_ENTRY_ENGINE_CLASS_NAME =
/^Locomotive::ContentEntry(.*)$/o.freeze
IsHTTP =
/\Ahttps?:\/\//o.freeze
IsLAYOUT =
/\Alayouts(\/|\z)/o.freeze
VERSION =
'1.4.1'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject



31
32
33
# File 'lib/locomotive/steam.rb', line 31

def self.configuration
  @configuration ||= Configuration.new
end

.extension_configurationsObject

Returns the value of attribute extension_configurations.



28
29
30
# File 'lib/locomotive/steam.rb', line 28

def extension_configurations
  @extension_configurations
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



39
40
41
42
43
# File 'lib/locomotive/steam.rb', line 39

def self.configure
  yield(configuration)

  require_relative 'steam/initializers'
end

.configure_extension(&block) ⇒ Object



45
46
47
# File 'lib/locomotive/steam.rb', line 45

def self.configure_extension(&block)
  (@extension_configurations ||= []) << block
end

.resetObject



35
36
37
# File 'lib/locomotive/steam.rb', line 35

def self.reset
  @configuration = Configuration.new
end

.to_appObject

Shortcut to build the Rack stack



50
51
52
53
54
55
56
57
# File 'lib/locomotive/steam.rb', line 50

def self.to_app
  (@extension_configurations || []).each do |block|
    block.call(@configuration)
  end

  require_relative 'steam/server'
  Server.to_app
end