module ServiceActor::NilCheckable::PrependedMethods

Public Instance Methods

_call() click to toggle source
Calls superclass method
# File lib/service_actor/nil_checkable.rb, line 18
def _call
  check_context_for_nil(self.class.inputs, origin: 'input')

  super

  check_context_for_nil(self.class.outputs, origin: 'output')
end

Private Instance Methods

allow_nil?(options) click to toggle source
# File lib/service_actor/nil_checkable.rb, line 38
def allow_nil?(options)
  if options.key?(:allow_nil)
    options[:allow_nil]
  elsif options.key?(:default) && options[:default].nil?
    true
  elsif options[:type]
    false
  else
    true
  end
end
check_context_for_nil(definitions, origin:) click to toggle source
# File lib/service_actor/nil_checkable.rb, line 28
def check_context_for_nil(definitions, origin:)
  definitions.each do |name, options|
    next if !result[name].nil? || allow_nil?(options)

    raise ArgumentError,
          "The #{origin} \"#{name}\" on #{self.class} does not allow " \
          'nil values'
  end
end