module SnFoil::Controller::Concerns::SetupControllerConcern

Public Instance Methods

context(klass = nil) click to toggle source
# File lib/sn_foil/controller/concerns/setup_controller_concern.rb, line 14
def context(klass = nil)
  @i_context = klass
end
current_context(**options) click to toggle source
# File lib/sn_foil/controller/concerns/setup_controller_concern.rb, line 30
def current_context(**options)
  @current_context ||= context(**options).new(context_entity)
end
setup_options(**options) click to toggle source
# File lib/sn_foil/controller/concerns/setup_controller_concern.rb, line 23
def setup_options(**options)
  options = inject_params(**options)
  options = inject_id(**options)
  options = inject_includes(**options)
  inject_controller_action(**options)
end

Protected Instance Methods

pundit_not_authorized() click to toggle source
# File lib/sn_foil/controller/concerns/setup_controller_concern.rb, line 36
def pundit_not_authorized
  head :forbidden
end

Private Instance Methods

context_entity() click to toggle source
# File lib/sn_foil/controller/concerns/setup_controller_concern.rb, line 78
def context_entity
  return current_entity if defined? current_entity
  return current_user if defined? current_user
end
inject_controller_action(**options) click to toggle source
# File lib/sn_foil/controller/concerns/setup_controller_concern.rb, line 70
def inject_controller_action(**options)
  return options if options[:controller_action]
  return options unless options.dig(:params, :action)

  options[:controller_action] = options[:params][:action]
  options
end
inject_id(**options) click to toggle source
# File lib/sn_foil/controller/concerns/setup_controller_concern.rb, line 52
def inject_id(**options)
  return options if options[:id]

  options[:id] = id if defined? id
  options[:id] ||= options[:params][:id]
  options
end
inject_includes(**options) click to toggle source
# File lib/sn_foil/controller/concerns/setup_controller_concern.rb, line 60
def inject_includes(**options)
  return options if options[:include]
  return options unless options.dig(:params, :include)

  options[:include] = options.dig(:params, :include)
                             .split(',')
                             .map { |item| item.underscore.to_sym }
  options
end
inject_params(**options) click to toggle source

Grab the rails params and inject them into the options

# File lib/sn_foil/controller/concerns/setup_controller_concern.rb, line 43
def inject_params(**options)
  return options if options[:params]
  return options unless params

  options[:params] = params.to_unsafe_h.deep_symbolize_keys
  options[:controller_params] = options[:params]
  options
end