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/section.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/middlewares/cache.rb,
lib/locomotive/steam/models/i18n_field.rb,
lib/locomotive/steam/models/repository.rb,
lib/locomotive/steam/liquid/file_system.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/drops/params.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/section.rb,
lib/locomotive/steam/liquid/tags/snippet.rb,
lib/locomotive/steam/middlewares/favicon.rb,
lib/locomotive/steam/middlewares/logging.rb,
lib/locomotive/steam/middlewares/section.rb,
lib/locomotive/steam/middlewares/sitemap.rb,
lib/locomotive/steam/entities/theme_asset.rb,
lib/locomotive/steam/entities/translation.rb,
lib/locomotive/steam/liquid/drops/section.rb,
lib/locomotive/steam/liquid/filters/array.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/liquid/tags/redirect_to.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/services/cookie_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/section_block.rb,
lib/locomotive/steam/liquid/drops/session_proxy.rb,
lib/locomotive/steam/liquid/drops/uploaded_file.rb,
lib/locomotive/steam/liquid/tags/alt_page_links.rb,
lib/locomotive/steam/liquid/tags/editable/model.rb,
lib/locomotive/steam/liquid/tags/global_section.rb,
lib/locomotive/steam/liquid/tags/page_not_found.rb,
lib/locomotive/steam/liquid/tags/session_assign.rb,
lib/locomotive/steam/middlewares/dynamic_assets.rb,
lib/locomotive/steam/middlewares/page_not_found.rb,
lib/locomotive/steam/middlewares/private_access.rb,
lib/locomotive/steam/models/concerns/validation.rb,
lib/locomotive/steam/services/recaptcha_service.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/services/url_finder_service.rb,
lib/locomotive/steam/liquid/drops/inherited_block.rb,
lib/locomotive/steam/liquid/tags/editable/control.rb,
lib/locomotive/steam/liquid/tags/google_analytics.rb,
lib/locomotive/steam/middlewares/concerns/helpers.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/liquid/tags/sections_dropzone.rb,
lib/locomotive/steam/services/external_api_service.rb,
lib/locomotive/steam/liquid/tags/concerns/i18n_page.rb,
lib/locomotive/steam/middlewares/concerns/recaptcha.rb,
lib/locomotive/steam/middlewares/concerns/rendering.rb,
lib/locomotive/steam/middlewares/impersonated_entry.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/liquid/tags/concerns/attributes.rb,
lib/locomotive/steam/repositories/section_repository.rb,
lib/locomotive/steam/repositories/snippet_repository.rb,
lib/locomotive/steam/services/section_finder_service.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/middlewares/concerns/auth_helpers.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/liquid/drops/section_content_proxy.rb,
lib/locomotive/steam/adapters/filesystem/sanitizers/page.rb,
lib/locomotive/steam/adapters/filesystem/sanitizers/site.rb,
lib/locomotive/steam/middlewares/concerns/liquid_context.rb,
lib/locomotive/steam/repositories/theme_asset_repository.rb,
lib/locomotive/steam/repositories/translation_repository.rb,
lib/locomotive/steam/middlewares/encoded_link_redirection.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/section.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/section.rb,
lib/locomotive/steam/adapters/filesystem/yaml_loaders/snippet.rb,
lib/locomotive/steam/liquid/drops/section_editor_setting_data.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, CookieService, CsrfProtectionService, EditableElement, EditableElementRepository, EditableElementService, EmailService, EntrySubmissionService, ExternalAPIService, FilesystemAdapter, ImageResizerService, JsonParsingError, LiquidError, LiquidParserService, MarkdownService, MemoryAdapter, MongoDBAdapter, NoCacheService, NoSiteException, Page, PageFinderService, PageNotFoundException, PageRedirectionService, PageRepository, ParentFinderService, RecaptchaService, RedirectionException, RenderError, Repositories, Section, SectionFinderService, SectionRepository, Site, SiteFinderService, SiteRepository, Snippet, SnippetFinderService, SnippetRepository, SprocketsEnvironment, TemplateError, TextileService, ThemeAsset, ThemeAssetRepository, ThemeAssetUrlService, Translation, TranslationRepository, TranslatorService, UrlBuilderService, UrlFinderService

Constant Summary collapse

FRONTMATTER_REGEXP =
/^(?<yaml>(---\s*\n.*?\n?)^(---\s*$\n?))?(?<template>.*)/mo.freeze
YAML_FRONTMATTER_REGEXP =
/^---\s*\n(?<yaml>(.*?\n?))?^(---\s*$\n?)(?<template>.*)/mo.freeze
JSON_FRONTMATTER_REGEXP =
/^---\s*\n(?<json>\s*\{(.*?\n?))?^(---\s*$\n?)(?<template>.*)/mo.freeze
WILDCARD =
'content_type_template'.freeze
CONTENT_ENTRY_ENGINE_CLASS_NAME =
/^Locomotive::ContentEntry(.*)$/o.freeze
SECTIONS_SETTINGS_VARIABLE_REGEXP =
/^\s*([a-z]+\.)?settings\.(?<id>.*)\s*$/o.freeze
SECTIONS_BLOCK_FORLOOP_REGEXP =
/(?<name>.+)-section\.blocks$/o.freeze
/[^\"]+\/_locomotive-link\/(?<link>[^\"]+)/mo.freeze
ASSET_URL_REGEXP =
/("|')(https:\/\/[^\/]+)?\/(sites|steam)\/(\S+)("|')/.freeze
IsHTTP =
/\Ahttps?:\/\//o.freeze
IsLAYOUT =
/\Alayouts(\/|\z)/o.freeze
VERSION =
'1.5.1'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject



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

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

.extension_configurationsObject

Returns the value of attribute extension_configurations.



37
38
39
# File 'lib/locomotive/steam.rb', line 37

def extension_configurations
  @extension_configurations
end

Class Method Details

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

Yields:



48
49
50
51
52
# File 'lib/locomotive/steam.rb', line 48

def self.configure
  yield(configuration)

  require_relative 'steam/initializers'
end

.configure_extension(&block) ⇒ Object



54
55
56
# File 'lib/locomotive/steam.rb', line 54

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

.resetObject



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

def self.reset
  @configuration = Configuration.new
end

.to_appObject

Shortcut to build the Rack stack



59
60
61
62
63
64
65
66
# File 'lib/locomotive/steam.rb', line 59

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

  require_relative 'steam/server'
  Server.to_app
end