module ActionParamsPermitter::Builders::Concerns::ResourceRequiring

Public Class Methods

new(*params) click to toggle source
Calls superclass method
# File lib/action_params_permitter/builders/concerns/resource_requiring.rb, line 11
def initialize(*params)
  @is_required = false
  super(*params)
end
prepended(base) click to toggle source
# File lib/action_params_permitter/builders/concerns/resource_requiring.rb, line 5
def self.prepended(base)
  base.instance_eval do
    attr_reader :is_required
  end
end

Public Instance Methods

resource(name, options = {}, &block) click to toggle source
Calls superclass method
# File lib/action_params_permitter/builders/concerns/resource_requiring.rb, line 16
def resource(name, options = {}, &block)
  check_double_requiring(options)
  @is_required = true if options.fetch(:required, false)
  super
end

Private Instance Methods

check_double_requiring(options) click to toggle source
# File lib/action_params_permitter/builders/concerns/resource_requiring.rb, line 24
def check_double_requiring(options)
  return if !top_level_builder?
  return if !is_required
  return if !options[:required]
  raise ActionParamsPermitter::DoubleRequireError, 'You may define only one required top level resource!'
end