Class: RESTFramework::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/rest_framework.rb

Overview

Global configuration should be kept minimal, as controller-level configurations allows multiple APIs to be defined to behave differently.

Constant Summary collapse

DEFAULT_EXCLUDE_ASSOCIATION_CLASSES =
%w(
  ActionText::RichText
  ActiveStorage::Attachment
  ActiveStorage::Blob
).freeze
DEFAULT_LABEL_FIELDS =
%w(name label login title email username url).freeze
DEFAULT_SEARCH_COLUMNS =
DEFAULT_LABEL_FIELDS + %w(description note).freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig

Returns a new instance of Config.



64
65
66
67
68
69
# File 'lib/rest_framework.rb', line 64

def initialize
  self.show_backtrace = Rails.env.development?
  self.exclude_association_classes = DEFAULT_EXCLUDE_ASSOCIATION_CLASSES
  self.label_fields = DEFAULT_LABEL_FIELDS
  self.search_columns = DEFAULT_SEARCH_COLUMNS
end

Instance Attribute Details

#disable_auto_finalizeObject

Do not run ‘rrf_finalize` on controllers automatically using a `TracePoint` hook. This is a performance option and must be global because we have to determine this before any controller-specific configuration is set. If this is set to `true`, then you must manually call `rrf_finalize` after any configuration on each controller that needs to participate in:

- Model delegation, for the helper methods to be defined dynamically.
- Websockets, for `::Channel` class to be defined dynamically.
- Controller configuration freezing.


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

def disable_auto_finalize
  @disable_auto_finalize
end

#disable_rescue_fromObject

Disable ‘rescue_from` on the controller mixins.



53
54
55
# File 'lib/rest_framework.rb', line 53

def disable_rescue_from
  @disable_rescue_from
end

#exclude_association_classesObject

Exclude certain classes from being added by default as association fields.



56
57
58
# File 'lib/rest_framework.rb', line 56

def exclude_association_classes
  @exclude_association_classes
end

#freeze_configObject

Freeze configuration attributes during finalization to prevent accidental mutation.



43
44
45
# File 'lib/rest_framework.rb', line 43

def freeze_config
  @freeze_config
end

#label_fieldsObject

The default label fields to use when generating labels for ‘has_many` associations.



59
60
61
# File 'lib/rest_framework.rb', line 59

def label_fields
  @label_fields
end

#large_reverse_association_tablesObject

Specify reverse association tables that are typically very large, andd therefore should not be added to fields by default.



47
48
49
# File 'lib/rest_framework.rb', line 47

def large_reverse_association_tables
  @large_reverse_association_tables
end

#search_columnsObject

The default search columns to use when generating search filters.



62
63
64
# File 'lib/rest_framework.rb', line 62

def search_columns
  @search_columns
end

#show_backtraceObject

Whether the backtrace should be shown in rescued errors.



50
51
52
# File 'lib/rest_framework.rb', line 50

def show_backtrace
  @show_backtrace
end