Module: ActionFigure

Extended by:
Configuration, ErrorRegistry, FormatRegistry
Defined in:
lib/action_figure.rb,
lib/action_figure/core.rb,
lib/action_figure/version.rb,
lib/action_figure/formatter.rb,
lib/action_figure/configuration.rb,
lib/action_figure/testing/rspec.rb,
lib/action_figure/error_registry.rb,
lib/action_figure/format_registry.rb,
lib/action_figure/formatters/jsend.rb,
lib/action_figure/testing/minitest.rb,
lib/action_figure/testing/statuses.rb,
lib/action_figure/formatters/default.rb,
lib/action_figure/formatters/wrapped.rb,
lib/action_figure/formatters/json_api.rb,
lib/action_figure/formatters/rfc_9457.rb,
lib/action_figure/formatters/json_api/resource.rb,
sig/action_figure.rbs

Overview

ActionFigure provides explicit, purpose-driven operation classes for Rails controller actions.

Defined Under Namespace

Modules: Configuration, Core, ErrorRegistry, FormatRegistry, Formatter, Formatters, Testing Classes: IndeterminateEntryPointError, InitializationNotSupportedError

Constant Summary collapse

VERSION =

Returns:

  • (String)
"0.7.0"

Constants included from ErrorRegistry

ErrorRegistry::DEFAULTS, ErrorRegistry::STATUS_CODE_FALLBACKS

Class Method Summary collapse

Methods included from Configuration

configuration, configure

Methods included from FormatRegistry

fetch, register_formatter

Methods included from ErrorRegistry

define_helper, error_statuses, extended, register_error, status_code_for

Class Method Details

.[](format = configuration.format) ⇒ Module

Parameters:

  • format (Symbol) (defaults to: configuration.format)

Returns:

  • (Module)


36
37
38
# File 'lib/action_figure.rb', line 36

def self.[](format = configuration.format)
  format_modules.compute_if_absent(format) { build_format_module(format, fetch(format)) }
end

.clear_format_module_cache(name) ⇒ void

This method returns an undefined value.

Parameters:

  • name (Symbol)


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

def self.clear_format_module_cache(name)
  format_modules.delete(name)
end

.error_statusesHash[Symbol, Symbol]

Returns:

  • (Hash[Symbol, Symbol])


26
# File 'sig/action_figure.rbs', line 26

def self.error_statuses: () -> Hash[Symbol, Symbol]

.included(base) ⇒ void

This method returns an undefined value.

Parameters:

  • base (Module)


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

def self.included(base)
  base.include(self[])
end

.register_errorSymbol

Parameters:

  • name (Symbol, String)
  • status_symbol (Symbol, String)

Returns:

  • (Symbol)


27
# File 'sig/action_figure.rbs', line 27

def self.register_error: (Symbol | String name, Symbol | String status_symbol) -> Symbol

.register_formatter(**formatters) ⇒ void

This method returns an undefined value.

Parameters:

  • formatters (Module)


44
45
46
47
48
49
50
51
# File 'lib/action_figure.rb', line 44

def self.register_formatter(**formatters)
  formatters.each_value do |mod|
    missing = Formatter::REQUIRED_METHODS.reject { |m| mod.method_defined?(m) }
    raise ArgumentError, "#{mod} is missing formatter methods: #{missing.join(", ")}" if missing.any?
  end
  formatters.each_key { |name| clear_format_module_cache(name) }
  super
end

.status_code_forInteger

Parameters:

  • status_symbol (Symbol)

Returns:

  • (Integer)


28
# File 'sig/action_figure.rbs', line 28

def self.status_code_for: (Symbol status_symbol) -> Integer