Module: RESTFramework
- Defined in:
- lib/rest_framework.rb,
lib/rest_framework/version.rb
Defined Under Namespace
Modules: Controller, Errors, Filters, Paginators, Serializers, Utils, Version Classes: Config, Engine
Constant Summary collapse
- 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/bootstrap@5.3.7/dist/css/bootstrap.min.css", sri: "sha384-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr", }, "bootstrap.min.js" => { url: "https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.bundle.min.js", sri: "sha384-ndDqU0Gzau9qJ1lfW4pNLlhNTkCfHzAVBReH9diLvGRem5+R9g2FzA8ZGN954O5Q", }, # Bootstrap Icons "bootstrap-icons.min.css" => { url: "https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css", sri: "sha384-XGjxtQfXaH2tnPFa9x+ruJTuLE3Aa6LhHSWRr1XeTyhezb4abCG4ccI5AkVDxqC+", 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. The package publishes no minified build; jsdelivr's `neatjson.min.js` is synthesized # on the fly (so its bytes/SRI aren't stable), so we pin the published `neatjson.js` instead. "neatjson.min.js" => { url: "https://cdn.jsdelivr.net/npm/neatjson@0.10.6/javascript/neatjson.js", sri: "sha384-7yRMvyGBuBnnlsgFwUDx7wY7Y/kXt7Irg5xppXVAI0yp3R0870lWaXNP/JE2rbFA", exclude_from_docs: true, }, # Trix "trix.min.css" => { url: "https://unpkg.com/trix@2.0.8/dist/trix.css", sri: "sha384-Cgg84c/W0Q5VrTzc4ITmV88Ocx4Pn1YlTXPvSTJjX6+lxJRLYrZ4chaighxlqOY1", exclude_from_docs: true, }, "trix.min.js" => { url: "https://unpkg.com/trix@2.0.8/dist/trix.umd.min.js", sri: "sha384-Ki3zDe3whjAHK/GOksrYLGCU8m0SkmiJQ4Kqm3jQlM3YCl2hFBf17s9bzjVYmXWX", 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? }
- BaseError =
Aliases for convenience.
RESTFramework::Errors::BaseError
- NilPassedToRenderAPIError =
RESTFramework::Errors::NilPassedToRenderAPIError
- InvalidBulkParametersError =
RESTFramework::Errors::InvalidBulkParametersError
- DelegatedMethodError =
RESTFramework::Errors::DelegatedMethodError
- BulkRecordErrorsError =
RESTFramework::Errors::BulkRecordErrorsError
- VERSION =
Version.get_version(skip_git: true)
- 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
- BaseSerializer =
Alias for convenience.
RESTFramework::Serializers::BaseSerializer
- NativeSerializer =
Alias for convenience.
RESTFramework::Serializers::NativeSerializer
- PageNumberPaginator =
Alias for convenience.
RESTFramework::Paginators::PageNumberPaginator
- ActiveModelSerializerAdapterFactory =
Alias for convenience. rubocop:disable Layout/LineLength
RESTFramework::Serializers::ActiveModelSerializerAdapterFactory
Class Method Summary collapse
Class Method Details
.config ⇒ Object
174 175 176 |
# File 'lib/rest_framework.rb', line 174 def self.config @config ||= Config.new end |
.configure {|self.config| ... } ⇒ Object
178 179 180 |
# File 'lib/rest_framework.rb', line 178 def self.configure yield(self.config) end |
.deprecator ⇒ Object
186 187 188 |
# File 'lib/rest_framework.rb', line 186 def self.deprecator @deprecator ||= ActiveSupport::Deprecation.new("2.0", "REST Framework") end |
.features ⇒ Object
182 183 184 |
# File 'lib/rest_framework.rb', line 182 def self.features @features ||= {} end |