Module: RESTFramework
- Defined in:
- lib/rest_framework.rb,
lib/rest_framework/version.rb
Defined Under Namespace
Modules: Errors, Filters, Generators, Mixins, Paginators, Serializers, Utils, Version Classes: Config, Engine
Constant Summary collapse
- BUILTIN_ACTIONS =
{ index: :get, new: :get, create: :post, }.freeze
- BUILTIN_MEMBER_ACTIONS =
{ show: :get, edit: :get, update: [ :put, :patch ].freeze, destroy: :delete, }.freeze
- RRF_BUILTIN_ACTIONS =
{ options: :options, }.freeze
- RRF_BUILTIN_BULK_ACTIONS =
{ update_all: [ :put, :patch ].freeze, destroy_all: :delete, }.freeze
- EXTRA_ACTION_ROUTES =
Storage for extra routes and associated metadata.
Set.new
- ROUTE_METADATA =
{}
- EXTERNAL_CSS_NAME =
We put most vendored external assets into these files to make precompilation and serving faster.
"rest_framework/external.min.css"- EXTERNAL_JS_NAME =
"rest_framework/external.min.js"- EXTERNAL_ASSETS =
We should always add the
.minextension prefix even if the assets are not minified, to avoid sprockets minifying the assets. We target propshaft, so we want these assets to just be passed through. rubocop:disable Layout/LineLength { # Bootstrap "bootstrap.min.css" => { url: "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css", sri: "sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH", }, "bootstrap.min.js" => { url: "https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js", sri: "sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz", }, # Bootstrap Icons "bootstrap-icons.min.css" => { url: "https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.css", inline_fonts: true, }, # Highlight.js "highlight.min.js" => { url: "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.0/highlight.min.js", sri: "sha512-6QBAC6Sxc4IF04SvIg0k78l5rP5YgVjmHX2NeArelbxM3JGj4imMqfNzEta3n+mi7iG3nupdLnl3QrbfjdXyTg==", }, "highlight-json.min.js" => { url: "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.0/languages/json.min.js", sri: "sha512-8JO7/pRnd1Ce8OBXWQg85e5wNPJdBaQdN8w4oDa+HelMXaLwCxTdbzdWHmJtWR9AmcI6dOln4FS5/KrzpxqqfQ==", }, "highlight-xml.min.js" => { url: "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.0/languages/xml.min.js", sri: "sha512-/vq6wbS2Qkv8Hj4mP3Jd/m6MbnIrquzZiUt9tIluQfe332IQeFDrSIK7j2cjAyn6/9Ntb2WMPbo1CAxu26NViA==", }, "highlight-a11y-dark.min.css" => { url: "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.0/styles/a11y-dark.min.css", sri: "sha512-Vj6gPCk8EZlqnoveEyuGyYaWZ1+jyjMPg8g4shwyyNlRQl6d3L9At02ZHQr5K6s5duZl/+YKMnM3/8pDhoUphg==", extra_tag_attrs: { class: "rrf-dark-mode" }, }, "highlight-a11y-light.min.css" => { url: "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.0/styles/a11y-light.min.css", sri: "sha512-WDk6RzwygsN9KecRHAfm9HTN87LQjqdygDmkHSJxVkVI7ErCZ8ZWxP6T8RvBujY1n2/E4Ac+bn2ChXnp5rnnHA==", extra_tag_attrs: { class: "rrf-light-mode" }, }, # NeatJSON "neatjson.min.js" => { url: "https://cdn.jsdelivr.net/npm/[email protected]/javascript/neatjson.min.js", exclude_from_docs: true, }, # Trix "trix.min.css" => { url: "https://unpkg.com/[email protected]/dist/trix.css", exclude_from_docs: true, }, "trix.min.js" => { url: "https://unpkg.com/[email protected]/dist/trix.umd.min.js", exclude_from_docs: true, }, }.map { |name, cfg| ext = File.extname(name) if ext == ".js" cfg[:place] = "javascripts" cfg[:extra_tag_attrs] ||= {} cfg[:tag_attrs] = { src: cfg[:url], integrity: cfg[:sri], crossorigin: "anonymous", referrerpolicy: "no-referrer", defer: true, **cfg[:extra_tag_attrs], } cfg[:tag] = ActionController::Base.helpers.tag.script(**cfg[:tag_attrs]) elsif ext == ".css" cfg[:place] = "stylesheets" cfg[:extra_tag_attrs] ||= {} cfg[:tag_attrs] = { rel: "stylesheet", href: cfg[:url], integrity: cfg[:sri], crossorigin: "anonymous", **cfg[:extra_tag_attrs], } cfg[:tag] = ActionController::Base.helpers.tag.link(**cfg[:tag_attrs]) else raise "Unknown asset extension: #{ext}." end [ name, cfg ] }.to_h.freeze
- EXTERNAL_UNSUMMARIZED_ASSETS =
rubocop:enable Layout/LineLength
EXTERNAL_ASSETS.select { |_, cfg| cfg[:extra_tag_attrs].present? }
- VERSION =
Version.get_version
- BaseError =
Alias for convenience.
RESTFramework::Errors::BaseError
- BaseFilter =
Alias for convenience.
RESTFramework::Filters::BaseFilter
- QueryFilter =
Alias for convenience.
RESTFramework::Filters::QueryFilter
- SearchFilter =
Alias for convenience.
RESTFramework::Filters::SearchFilter
- RansackFilter =
Alias for convenience.
RESTFramework::Filters::RansackFilter
- OrderingFilter =
Alias for convenience.
RESTFramework::Filters::OrderingFilter
- BasePaginator =
Alias for convenience.
RESTFramework::Paginators::BasePaginator
- UnknownModelError =
Alias for convenience.
RESTFramework::Errors::UnknownModelError
- BaseSerializer =
Alias for convenience.
RESTFramework::Serializers::BaseSerializer
- BaseControllerMixin =
Alias for convenience.
RESTFramework::Mixins::BaseControllerMixin
- BaseModelControllerMixin =
Aliases for convenience.
RESTFramework::Mixins::BaseModelControllerMixin
- ListModelMixin =
RESTFramework::Mixins::ListModelMixin
- ShowModelMixin =
RESTFramework::Mixins::ShowModelMixin
- CreateModelMixin =
RESTFramework::Mixins::CreateModelMixin
- UpdateModelMixin =
RESTFramework::Mixins::UpdateModelMixin
- DestroyModelMixin =
RESTFramework::Mixins::DestroyModelMixin
- ReadOnlyModelControllerMixin =
RESTFramework::Mixins::ReadOnlyModelControllerMixin
- ModelControllerMixin =
RESTFramework::Mixins::ModelControllerMixin
- NativeSerializer =
Alias for convenience.
RESTFramework::Serializers::NativeSerializer
- PageNumberPaginator =
Alias for convenience.
RESTFramework::Paginators::PageNumberPaginator
- BulkCreateModelMixin =
Aliases for convenience.
RESTFramework::Mixins::BulkCreateModelMixin
- BulkUpdateModelMixin =
RESTFramework::Mixins::BulkUpdateModelMixin
- BulkDestroyModelMixin =
RESTFramework::Mixins::BulkDestroyModelMixin
- BulkModelControllerMixin =
RESTFramework::Mixins::BulkModelControllerMixin
- NilPassedToRenderAPIError =
Alias for convenience.
RESTFramework::Errors::NilPassedToRenderAPIError
- ActiveModelSerializerAdapterFactory =
Alias for convenience. rubocop:disable Layout/LineLength
RESTFramework::Serializers::ActiveModelSerializerAdapterFactory
Class Method Summary collapse
Class Method Details
.config ⇒ Object
194 195 196 |
# File 'lib/rest_framework.rb', line 194 def self.config @config ||= Config.new end |
.configure {|self.config| ... } ⇒ Object
198 199 200 |
# File 'lib/rest_framework.rb', line 198 def self.configure yield(self.config) end |
.features ⇒ Object
202 203 204 |
# File 'lib/rest_framework.rb', line 202 def self.features @features ||= {} end |