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_FORM_ACTIONS =
%i[new edit].freeze
- 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-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr", }, "bootstrap.min.js" => { url: "https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js", sri: "sha384-ndDqU0Gzau9qJ1lfW4pNLlhNTkCfHzAVBReH9diLvGRem5+R9g2FzA8ZGN954O5Q", }, # 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
201 202 203 |
# File 'lib/rest_framework.rb', line 201 def self.config @config ||= Config.new end |
.configure {|self.config| ... } ⇒ Object
205 206 207 |
# File 'lib/rest_framework.rb', line 205 def self.configure yield(self.config) end |
.features ⇒ Object
209 210 211 |
# File 'lib/rest_framework.rb', line 209 def self.features @features ||= {} end |