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_LABEL_FIELDS =
%w[name label login title email username url].freeze
DEFAULT_SEARCH_COLUMNS =
DEFAULT_LABEL_FIELDS + %w[description note].freeze
DEFAULT_READ_ONLY_FIELDS =
%w[
  created_at
  created_by
  created_by_id
  updated_at
  updated_by
  updated_by_id
  _method
  utf8
  authenticity_token
].freeze
DEFAULT_WRITE_ONLY_FIELDS =
%w[
  password
  password_confirmation
].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig

Returns a new instance of Config.



188
189
190
191
192
193
194
195
196
197
198
# File 'lib/rest_framework.rb', line 188

def initialize
  self.register_api_renderer = true
  self.auto_finalize = true

  self.show_backtrace = Rails.env.development?

  self.label_fields = DEFAULT_LABEL_FIELDS
  self.search_columns = DEFAULT_SEARCH_COLUMNS
  self.read_only_fields = DEFAULT_READ_ONLY_FIELDS
  self.write_only_fields = DEFAULT_WRITE_ONLY_FIELDS
end

Instance Attribute Details

#auto_finalizeObject

Run rrf_finalize on controllers automatically using a TracePoint hook. This is true by default, and can be disabled for performance, and must be global because we have to determine this before any controller-specific configuration is set. If this is set to false, 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.


159
160
161
# File 'lib/rest_framework.rb', line 159

def auto_finalize
  @auto_finalize
end

#disable_rescue_fromObject

Disable rescue_from on the controller mixins.



172
173
174
# File 'lib/rest_framework.rb', line 172

def disable_rescue_from
  @disable_rescue_from
end

#freeze_configObject

Freeze configuration attributes during finalization to prevent accidental mutation.



162
163
164
# File 'lib/rest_framework.rb', line 162

def freeze_config
  @freeze_config
end

#label_fieldsObject

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



175
176
177
# File 'lib/rest_framework.rb', line 175

def label_fields
  @label_fields
end

#large_reverse_association_tablesObject

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



166
167
168
# File 'lib/rest_framework.rb', line 166

def large_reverse_association_tables
  @large_reverse_association_tables
end

#read_only_fieldsObject

Helper to set global read/write only fields.



181
182
183
# File 'lib/rest_framework.rb', line 181

def read_only_fields
  @read_only_fields
end

#register_api_rendererObject

Permits use of ‘render(api: obj)` syntax over `render_api(obj)`; true by default.



149
150
151
# File 'lib/rest_framework.rb', line 149

def register_api_renderer
  @register_api_renderer
end

#search_columnsObject

The default search columns to use when generating search filters.



178
179
180
# File 'lib/rest_framework.rb', line 178

def search_columns
  @search_columns
end

#show_backtraceObject

Whether the backtrace should be shown in rescued errors.



169
170
171
# File 'lib/rest_framework.rb', line 169

def show_backtrace
  @show_backtrace
end

#use_vendored_assetsObject

Option to use vendored assets (requires sprockets or propshaft) rather than linking to external assets (the default).



186
187
188
# File 'lib/rest_framework.rb', line 186

def use_vendored_assets
  @use_vendored_assets
end

#write_only_fieldsObject

Returns the value of attribute write_only_fields.



182
183
184
# File 'lib/rest_framework.rb', line 182

def write_only_fields
  @write_only_fields
end